react-native-paper-dates 0.11.11 → 0.11.12
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/lib/commonjs/Date/Calendar.js +4 -0
- package/lib/commonjs/Date/Calendar.js.map +1 -1
- package/lib/commonjs/Date/CalendarHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalContent.js +1 -1
- package/lib/commonjs/Date/DatePickerModalContent.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalContentHeader.js +15 -11
- package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalHeader.js +5 -4
- package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
- package/lib/commonjs/Date/Day.js +4 -4
- package/lib/commonjs/Date/Day.js.map +1 -1
- package/lib/commonjs/Date/DayName.js +3 -2
- package/lib/commonjs/Date/DayName.js.map +1 -1
- package/lib/commonjs/Date/Month.js +4 -3
- package/lib/commonjs/Date/Month.js.map +1 -1
- package/lib/commonjs/Date/YearPicker.js +6 -4
- package/lib/commonjs/Date/YearPicker.js.map +1 -1
- package/lib/commonjs/Time/timeUtils.js +5 -1
- package/lib/commonjs/Time/timeUtils.js.map +1 -1
- package/lib/commonjs/utils.js +11 -0
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/Date/Calendar.js +4 -0
- package/lib/module/Date/Calendar.js.map +1 -1
- package/lib/module/Date/CalendarHeader.js.map +1 -1
- package/lib/module/Date/DatePickerModalContent.js +1 -1
- package/lib/module/Date/DatePickerModalContent.js.map +1 -1
- package/lib/module/Date/DatePickerModalContentHeader.js +15 -11
- package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
- package/lib/module/Date/DatePickerModalHeader.js +6 -5
- package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
- package/lib/module/Date/Day.js +4 -4
- package/lib/module/Date/Day.js.map +1 -1
- package/lib/module/Date/DayName.js +3 -2
- package/lib/module/Date/DayName.js.map +1 -1
- package/lib/module/Date/Month.js +4 -3
- package/lib/module/Date/Month.js.map +1 -1
- package/lib/module/Date/YearPicker.js +6 -4
- package/lib/module/Date/YearPicker.js.map +1 -1
- package/lib/module/Time/timeUtils.js +5 -1
- package/lib/module/Time/timeUtils.js.map +1 -1
- package/lib/module/utils.js +11 -0
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/utils.d.ts +1 -1
- package/package.json +1 -1
- package/src/Date/Calendar.tsx +3 -0
- package/src/Date/CalendarHeader.tsx +0 -1
- package/src/Date/DatePickerModalContent.tsx +1 -4
- package/src/Date/DatePickerModalContentHeader.tsx +41 -12
- package/src/Date/DatePickerModalHeader.tsx +4 -3
- package/src/Date/Day.tsx +24 -10
- package/src/Date/DayName.tsx +8 -2
- package/src/Date/Month.tsx +19 -6
- package/src/Date/YearPicker.tsx +8 -2
- package/src/Time/timeUtils.ts +4 -1
- package/src/utils.ts +7 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","StyleSheet","IconButton","Text","useTheme","useHeaderTextColor","Color","getTranslation","getLabel","locale","mode","configuredLabel","DatePickerModalContentHeader","props","onToggle","collapsed","moreLabel","uppercase","editIcon","calendarIcon","theme","label","color","allowEditing","textFont","isV3","fonts","bodyLarge","medium","styles","header","toUpperCase","headerContentContainer","fill","HeaderContentSingle","state","emptyLabel","lighterColor","fade","rgb","toString","dateColor","date","formatter","useMemo","Intl","DateTimeFormat","month","day","singleHeaderText","format","HeaderContentMulti","dateCount","dates","length","map","join","HeaderContentRange","headerSeparator","startLabel","endLabel","startColor","startDate","endColor","endDate","rangeHeaderText","create","flex","animated","paddingBottom","elevation","safeContent","height","alignItems","flexDirection","paddingLeft","paddingRight","marginTop","letterSpacing","fontSize","excludeInRangeHeaderText","excludeInRangeHeaderTextSmall","marginLeft","appbarHeader","column","row"],"sources":["DatePickerModalContentHeader.tsx"],"sourcesContent":["import * as React from 'react'\nimport { View, StyleSheet } from 'react-native'\nimport { IconButton, MD2Theme, Text, useTheme } from 'react-native-paper'\nimport type { ModeType } from './Calendar'\nimport type { LocalState } from './DatePickerModalContent'\nimport { useHeaderTextColor } from '../utils'\nimport Color from 'color'\nimport { getTranslation } from '../translations/utils'\n\nexport interface HeaderPickProps {\n moreLabel?: string\n label?: string\n emptyLabel?: string\n saveLabel?: string\n uppercase?: boolean\n headerSeparator?: string\n startLabel?: string\n endLabel?: string\n editIcon?: string\n calendarIcon?: string\n closeIcon?: string\n}\n\nexport interface HeaderContentProps extends HeaderPickProps {\n state: LocalState\n mode: ModeType\n collapsed: boolean\n onToggle: () => any\n locale: string | undefined\n}\n\nfunction getLabel(\n locale: string | undefined,\n mode: ModeType,\n configuredLabel?: string\n) {\n if (configuredLabel) {\n return configuredLabel\n }\n if (mode === 'range') {\n return getTranslation(locale, 'selectRange')\n }\n if (mode === 'multiple') {\n return getTranslation(locale, 'selectMultiple')\n }\n if (mode === 'single') {\n return getTranslation(locale, 'selectSingle')\n }\n return '...?'\n}\n\nexport default function DatePickerModalContentHeader(\n props: HeaderContentProps\n) {\n const {\n onToggle,\n collapsed,\n mode,\n moreLabel,\n uppercase,\n editIcon = 'pencil',\n calendarIcon = 'calendar',\n } = props\n const theme = useTheme()\n const label = getLabel(props.locale, props.mode, props.label)\n\n const color = useHeaderTextColor()\n const allowEditing = mode !== 'multiple'\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.header]}>\n <View>\n <Text style={[styles.label, { color, ...textFont }]}>\n {uppercase ? label.toUpperCase() : label}\n </Text>\n <View style={styles.headerContentContainer}>\n {mode === 'range' ? (\n <HeaderContentRange {...props} color={color} />\n ) : null}\n {mode === 'single' ? (\n <HeaderContentSingle {...props} color={color} />\n ) : null}\n {mode === 'multiple' ? (\n <HeaderContentMulti\n {...props}\n color={color}\n moreLabel={moreLabel}\n />\n ) : null}\n </View>\n </View>\n <View style={styles.fill} />\n {allowEditing ? (\n <IconButton\n icon={collapsed ? editIcon : calendarIcon}\n accessibilityLabel={\n collapsed\n ? getTranslation(props.locale, 'typeInDate')\n : getTranslation(props.locale, 'pickDateFromCalendar')\n }\n iconColor={color}\n onPress={onToggle}\n />\n ) : null}\n </View>\n )\n}\n\nexport function HeaderContentSingle({\n state,\n emptyLabel = ' ',\n color,\n locale,\n}: HeaderContentProps & { color: string }) {\n const lighterColor = Color(color).fade(0.5).rgb().toString()\n const dateColor = state.date ? color : lighterColor\n\n const formatter = React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric',\n })\n }, [locale])\n\n return (\n <Text style={[styles.singleHeaderText, { color: dateColor }]}>\n {state.date ? formatter.format(state.date) : emptyLabel}\n </Text>\n )\n}\n\nexport function HeaderContentMulti({\n state,\n emptyLabel = ' ',\n moreLabel = 'more',\n color,\n locale,\n}: HeaderContentProps & { color: string; moreLabel: string | undefined }) {\n const dateCount = state.dates?.length || 0\n const lighterColor = Color(color).fade(0.5).rgb().toString()\n const dateColor = dateCount ? color : lighterColor\n\n const formatter = React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric',\n })\n }, [locale])\n\n let label = emptyLabel\n if (dateCount) {\n if (dateCount <= 2) {\n label = state.dates!.map((date) => formatter.format(date)).join(', ')\n } else {\n label =\n formatter.format(state.dates![0]) + ` (+ ${dateCount - 1} ${moreLabel})`\n }\n }\n\n return (\n <Text style={[styles.singleHeaderText, { color: dateColor }]}>{label}</Text>\n )\n}\n\nexport function HeaderContentRange({\n locale,\n state,\n headerSeparator = '-',\n startLabel = 'Start',\n endLabel = 'End',\n color,\n}: HeaderContentProps & { color: string }) {\n const formatter = React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric',\n })\n }, [locale])\n\n const lighterColor = Color(color).fade(0.5).rgb().toString()\n const startColor = state.startDate ? color : lighterColor\n const endColor = state.endDate ? color : lighterColor\n\n return (\n <>\n <Text style={[styles.rangeHeaderText, { color: startColor }]}>\n {state.startDate ? formatter.format(state.startDate) : startLabel}\n </Text>\n <Text style={[styles.headerSeparator, { color }]}>{headerSeparator}</Text>\n <Text style={[styles.rangeHeaderText, { color: endColor }]}>\n {state.endDate ? formatter.format(state.endDate) : endLabel}\n </Text>\n </>\n )\n}\n\nconst styles = StyleSheet.create({\n fill: {\n flex: 1,\n },\n animated: {\n paddingBottom: 0,\n elevation: 4,\n },\n safeContent: {\n paddingBottom: 0,\n },\n header: {\n height: 75,\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 24,\n paddingRight: 12,\n },\n headerContentContainer: { marginTop: 5, flexDirection: 'row' },\n label: { color: '#fff', letterSpacing: 1, fontSize: 13 },\n singleHeaderText: { color: '#fff', fontSize: 25 },\n rangeHeaderText: { color: '#fff', fontSize: 25 },\n excludeInRangeHeaderText: { fontSize: 25 },\n excludeInRangeHeaderTextSmall: {\n fontSize: 14,\n marginTop: -3,\n marginLeft: 3,\n },\n\n headerSeparator: {\n color: 'rgba(255,255,255,1)',\n fontSize: 25,\n paddingLeft: 6,\n paddingRight: 6,\n },\n appbarHeader: {\n elevation: 0,\n },\n column: { flexDirection: 'column' },\n row: { flexDirection: 'row' },\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","View","StyleSheet","IconButton","Text","useTheme","useHeaderTextColor","Color","getTranslation","getLabel","locale","mode","configuredLabel","DatePickerModalContentHeader","props","onToggle","collapsed","moreLabel","uppercase","editIcon","calendarIcon","theme","label","color","supportingTextColor","isV3","colors","onSurfaceVariant","allowEditing","textFont","fonts","labelMedium","medium","styles","header","toUpperCase","headerContentContainer","fill","onSurface","HeaderContentSingle","state","emptyLabel","lighterColor","fade","rgb","toString","dateColor","date","formatter","useMemo","Intl","DateTimeFormat","month","day","singleHeaderText","format","HeaderContentMulti","dateCount","dates","length","map","join","HeaderContentRange","headerSeparator","startLabel","endLabel","startColor","startDate","endColor","endDate","rangeHeaderText","create","flex","animated","paddingBottom","elevation","safeContent","height","alignItems","flexDirection","paddingLeft","paddingRight","marginTop","letterSpacing","fontSize","excludeInRangeHeaderText","excludeInRangeHeaderTextSmall","marginLeft","appbarHeader","column","row"],"sources":["DatePickerModalContentHeader.tsx"],"sourcesContent":["import * as React from 'react'\nimport { View, StyleSheet } from 'react-native'\nimport { IconButton, MD2Theme, Text, useTheme } from 'react-native-paper'\nimport type { ModeType } from './Calendar'\nimport type { LocalState } from './DatePickerModalContent'\nimport { useHeaderTextColor } from '../utils'\nimport Color from 'color'\nimport { getTranslation } from '../translations/utils'\n\nexport interface HeaderPickProps {\n moreLabel?: string\n label?: string\n emptyLabel?: string\n saveLabel?: string\n uppercase?: boolean\n headerSeparator?: string\n startLabel?: string\n endLabel?: string\n editIcon?: string\n calendarIcon?: string\n closeIcon?: string\n}\n\nexport interface HeaderContentProps extends HeaderPickProps {\n state: LocalState\n mode: ModeType\n collapsed: boolean\n onToggle: () => any\n locale: string | undefined\n}\n\nfunction getLabel(\n locale: string | undefined,\n mode: ModeType,\n configuredLabel?: string\n) {\n if (configuredLabel) {\n return configuredLabel\n }\n if (mode === 'range') {\n return getTranslation(locale, 'selectRange')\n }\n if (mode === 'multiple') {\n return getTranslation(locale, 'selectMultiple')\n }\n if (mode === 'single') {\n return getTranslation(locale, 'selectSingle')\n }\n return '...?'\n}\n\nexport default function DatePickerModalContentHeader(\n props: HeaderContentProps\n) {\n const {\n onToggle,\n collapsed,\n mode,\n moreLabel,\n uppercase,\n editIcon,\n calendarIcon,\n } = props\n const theme = useTheme()\n const label = getLabel(props.locale, props.mode, props.label)\n\n const color = useHeaderTextColor()\n const supportingTextColor = theme.isV3 ? theme.colors.onSurfaceVariant : color\n const allowEditing = mode !== 'multiple'\n\n let textFont = theme?.isV3\n ? theme.fonts.labelMedium\n : (theme as any as MD2Theme).fonts.medium\n\n return (\n <View style={styles.header}>\n <View>\n <Text\n style={[styles.label, { color: supportingTextColor, ...textFont }]}\n >\n {uppercase ? label.toUpperCase() : label}\n </Text>\n <View style={styles.headerContentContainer}>\n {mode === 'range' ? (\n <HeaderContentRange {...props} color={color} />\n ) : null}\n {mode === 'single' ? (\n <HeaderContentSingle {...props} color={color} />\n ) : null}\n {mode === 'multiple' ? (\n <HeaderContentMulti\n {...props}\n color={color}\n moreLabel={moreLabel}\n />\n ) : null}\n </View>\n </View>\n <View style={styles.fill} />\n {allowEditing ? (\n <IconButton\n icon={\n collapsed\n ? editIcon ?? theme.isV3\n ? 'pencil-outline'\n : 'pencil'\n : calendarIcon ?? theme.isV3\n ? 'calendar-blank'\n : 'calendar'\n }\n accessibilityLabel={\n collapsed\n ? getTranslation(props.locale, 'typeInDate')\n : getTranslation(props.locale, 'pickDateFromCalendar')\n }\n iconColor={theme.isV3 ? theme.colors.onSurface : color}\n onPress={onToggle}\n />\n ) : null}\n </View>\n )\n}\n\nexport function HeaderContentSingle({\n state,\n emptyLabel = ' ',\n color,\n locale,\n}: HeaderContentProps & { color: string }) {\n const theme = useTheme()\n const lighterColor = Color(color).fade(0.5).rgb().toString()\n const dateColor = state.date\n ? theme.isV3\n ? theme.colors.onSurface\n : color\n : lighterColor\n\n const formatter = React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric',\n })\n }, [locale])\n\n return (\n <Text style={[styles.singleHeaderText, { color: dateColor }]}>\n {state.date ? formatter.format(state.date) : emptyLabel}\n </Text>\n )\n}\n\nexport function HeaderContentMulti({\n state,\n emptyLabel = ' ',\n moreLabel = 'more',\n color,\n locale,\n}: HeaderContentProps & { color: string; moreLabel: string | undefined }) {\n const theme = useTheme()\n const dateCount = state.dates?.length || 0\n const lighterColor = Color(color).fade(0.5).rgb().toString()\n const dateColor = dateCount\n ? theme.isV3\n ? theme.colors.onSurface\n : color\n : lighterColor\n\n const formatter = React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric',\n })\n }, [locale])\n\n let label = emptyLabel\n if (dateCount) {\n if (dateCount <= 2) {\n label = state.dates!.map((date) => formatter.format(date)).join(', ')\n } else {\n label =\n formatter.format(state.dates![0]) + ` (+ ${dateCount - 1} ${moreLabel})`\n }\n }\n\n return (\n <Text style={[styles.singleHeaderText, { color: dateColor }]}>{label}</Text>\n )\n}\n\nexport function HeaderContentRange({\n locale,\n state,\n headerSeparator = '-',\n startLabel = 'Start',\n endLabel = 'End',\n color,\n}: HeaderContentProps & { color: string }) {\n const theme = useTheme()\n const formatter = React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric',\n })\n }, [locale])\n\n const lighterColor = Color(color).fade(0.5).rgb().toString()\n const startColor = state.startDate\n ? theme.isV3\n ? theme.colors.onSurface\n : color\n : lighterColor\n const endColor = state.endDate\n ? theme.isV3\n ? theme.colors.onSurface\n : color\n : lighterColor\n\n return (\n <>\n <Text style={[styles.rangeHeaderText, { color: startColor }]}>\n {state.startDate ? formatter.format(state.startDate) : startLabel}\n </Text>\n <Text style={[styles.headerSeparator, { color }]}>{headerSeparator}</Text>\n <Text style={[styles.rangeHeaderText, { color: endColor }]}>\n {state.endDate ? formatter.format(state.endDate) : endLabel}\n </Text>\n </>\n )\n}\n\nconst styles = StyleSheet.create({\n fill: {\n flex: 1,\n },\n animated: {\n paddingBottom: 0,\n elevation: 4,\n },\n safeContent: {\n paddingBottom: 0,\n },\n header: {\n height: 75,\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 24,\n paddingRight: 12,\n },\n headerContentContainer: { marginTop: 5, flexDirection: 'row' },\n label: { color: '#fff', letterSpacing: 1, fontSize: 13 },\n singleHeaderText: { color: '#fff', fontSize: 25 },\n rangeHeaderText: { color: '#fff', fontSize: 25 },\n excludeInRangeHeaderText: { fontSize: 25 },\n excludeInRangeHeaderTextSmall: {\n fontSize: 14,\n marginTop: -3,\n marginLeft: 3,\n },\n headerSeparator: {\n color: 'rgba(255,255,255,1)',\n fontSize: 25,\n paddingLeft: 6,\n paddingRight: 6,\n },\n appbarHeader: {\n elevation: 0,\n },\n column: { flexDirection: 'column' },\n row: { flexDirection: 'row' },\n})\n"],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Animated, StyleSheet } from 'react-native';
|
|
3
|
-
import { Appbar, Button } from 'react-native-paper';
|
|
3
|
+
import { Appbar, Button, useTheme } from 'react-native-paper';
|
|
4
4
|
import { useHeaderTextColor } from '../utils';
|
|
5
5
|
import { getTranslation } from '../translations/utils';
|
|
6
6
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
7
7
|
export default function DatePickerModalHeader(props) {
|
|
8
|
+
const theme = useTheme();
|
|
8
9
|
const {
|
|
9
10
|
disableSafeTop,
|
|
10
11
|
locale,
|
|
@@ -14,7 +15,8 @@ export default function DatePickerModalHeader(props) {
|
|
|
14
15
|
const color = useHeaderTextColor();
|
|
15
16
|
const insets = useSafeAreaInsets();
|
|
16
17
|
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
17
|
-
style: [styles.animated,
|
|
18
|
+
style: [styles.animated, // eslint-disable-next-line react-native/no-inline-styles
|
|
19
|
+
{
|
|
18
20
|
paddingTop: disableSafeTop ? 0 : insets.top,
|
|
19
21
|
paddingLeft: insets.left,
|
|
20
22
|
paddingRight: insets.right
|
|
@@ -31,7 +33,7 @@ export default function DatePickerModalHeader(props) {
|
|
|
31
33
|
title: ''
|
|
32
34
|
}), /*#__PURE__*/React.createElement(Button, {
|
|
33
35
|
color: color,
|
|
34
|
-
textColor: color,
|
|
36
|
+
textColor: theme.isV3 ? theme.colors.primary : color,
|
|
35
37
|
onPress: props.onSave,
|
|
36
38
|
disabled: props.saveLabelDisabled ?? false,
|
|
37
39
|
uppercase: props.uppercase ?? true,
|
|
@@ -83,8 +85,7 @@ const styles = StyleSheet.create({
|
|
|
83
85
|
},
|
|
84
86
|
appbarHeader: {
|
|
85
87
|
elevation: 0,
|
|
86
|
-
backgroundColor: 'transparent'
|
|
87
|
-
|
|
88
|
+
backgroundColor: 'transparent'
|
|
88
89
|
}
|
|
89
90
|
});
|
|
90
91
|
//# sourceMappingURL=DatePickerModalHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Animated","StyleSheet","Appbar","Button","useHeaderTextColor","getTranslation","useSafeAreaInsets","DatePickerModalHeader","props","disableSafeTop","locale","closeIcon","saveLabel","color","insets","styles","animated","paddingTop","top","paddingLeft","left","paddingRight","right","appbarHeader","onDismiss","onSave","saveLabelDisabled","uppercase","create","fill","flex","elevation","header","height","alignItems","flexDirection","headerContentContainer","marginTop","label","letterSpacing","fontSize","singleHeaderText","rangeHeaderText","headerTextFilled","headerTextEmpty","headerSeparator","backgroundColor"],"sources":["DatePickerModalHeader.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Animated, StyleSheet } from 'react-native'\nimport { Appbar, Button } from 'react-native-paper'\n\nimport { useHeaderTextColor } from '../utils'\nimport { getTranslation } from '../translations/utils'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\n\nexport interface DatePickerModalHeaderProps {\n disableSafeTop?: boolean\n saveLabel?: string\n saveLabelDisabled?: boolean\n uppercase?: boolean\n onDismiss: () => void\n onSave: () => void\n locale: string | undefined\n closeIcon?: string\n}\n\nexport default function DatePickerModalHeader(\n props: DatePickerModalHeaderProps\n) {\n const { disableSafeTop, locale, closeIcon = 'close' } = props\n const saveLabel = props.saveLabel || getTranslation(locale, 'save')\n const color = useHeaderTextColor()\n const insets = useSafeAreaInsets()\n\n return (\n <Animated.View\n style={[\n styles.animated,\n {\n paddingTop: disableSafeTop ? 0 : insets.top,\n paddingLeft: insets.left,\n paddingRight: insets.right,\n },\n ]}\n >\n <Appbar style={styles.appbarHeader}>\n <Appbar.Action\n icon={closeIcon}\n accessibilityLabel={getTranslation(locale, 'close')}\n onPress={props.onDismiss}\n color={color}\n testID=\"react-native-paper-dates-close\"\n />\n <Appbar.Content title={''} />\n <Button\n color={color}\n textColor={color}\n onPress={props.onSave}\n disabled={props.saveLabelDisabled ?? false}\n uppercase={props.uppercase ?? true}\n testID=\"react-native-paper-dates-save\"\n >\n {saveLabel}\n </Button>\n </Appbar>\n </Animated.View>\n )\n}\n\nconst styles = StyleSheet.create({\n fill: {\n flex: 1,\n },\n animated: {\n elevation: 4,\n },\n\n header: {\n height: 75,\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 24,\n paddingRight: 12,\n },\n headerContentContainer: { marginTop: 5, flexDirection: 'row' },\n label: { color: '#fff', letterSpacing: 1, fontSize: 13 },\n singleHeaderText: { color: '#fff', fontSize: 25 },\n rangeHeaderText: { color: '#fff', fontSize: 25 },\n headerTextFilled: { color: 'rgba(255,255,255,1)' },\n headerTextEmpty: { color: 'rgba(255,255,255,0.5)' },\n headerSeparator: {\n color: 'rgba(255,255,255,1)',\n fontSize: 25,\n paddingLeft: 6,\n paddingRight: 6,\n },\n appbarHeader: {\n elevation: 0,\n backgroundColor: 'transparent',\n
|
|
1
|
+
{"version":3,"names":["React","Animated","StyleSheet","Appbar","Button","useTheme","useHeaderTextColor","getTranslation","useSafeAreaInsets","DatePickerModalHeader","props","theme","disableSafeTop","locale","closeIcon","saveLabel","color","insets","styles","animated","paddingTop","top","paddingLeft","left","paddingRight","right","appbarHeader","onDismiss","isV3","colors","primary","onSave","saveLabelDisabled","uppercase","create","fill","flex","elevation","header","height","alignItems","flexDirection","headerContentContainer","marginTop","label","letterSpacing","fontSize","singleHeaderText","rangeHeaderText","headerTextFilled","headerTextEmpty","headerSeparator","backgroundColor"],"sources":["DatePickerModalHeader.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Animated, StyleSheet } from 'react-native'\nimport { Appbar, Button, useTheme } from 'react-native-paper'\n\nimport { useHeaderTextColor } from '../utils'\nimport { getTranslation } from '../translations/utils'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\n\nexport interface DatePickerModalHeaderProps {\n disableSafeTop?: boolean\n saveLabel?: string\n saveLabelDisabled?: boolean\n uppercase?: boolean\n onDismiss: () => void\n onSave: () => void\n locale: string | undefined\n closeIcon?: string\n}\n\nexport default function DatePickerModalHeader(\n props: DatePickerModalHeaderProps\n) {\n const theme = useTheme()\n const { disableSafeTop, locale, closeIcon = 'close' } = props\n const saveLabel = props.saveLabel || getTranslation(locale, 'save')\n const color = useHeaderTextColor()\n const insets = useSafeAreaInsets()\n\n return (\n <Animated.View\n style={[\n styles.animated,\n // eslint-disable-next-line react-native/no-inline-styles\n {\n paddingTop: disableSafeTop ? 0 : insets.top,\n paddingLeft: insets.left,\n paddingRight: insets.right,\n },\n ]}\n >\n <Appbar style={styles.appbarHeader}>\n <Appbar.Action\n icon={closeIcon}\n accessibilityLabel={getTranslation(locale, 'close')}\n onPress={props.onDismiss}\n color={color}\n testID=\"react-native-paper-dates-close\"\n />\n <Appbar.Content title={''} />\n <Button\n color={color}\n textColor={theme.isV3 ? theme.colors.primary : color}\n onPress={props.onSave}\n disabled={props.saveLabelDisabled ?? false}\n uppercase={props.uppercase ?? true}\n testID=\"react-native-paper-dates-save\"\n >\n {saveLabel}\n </Button>\n </Appbar>\n </Animated.View>\n )\n}\n\nconst styles = StyleSheet.create({\n fill: {\n flex: 1,\n },\n animated: {\n elevation: 4,\n },\n\n header: {\n height: 75,\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 24,\n paddingRight: 12,\n },\n headerContentContainer: { marginTop: 5, flexDirection: 'row' },\n label: { color: '#fff', letterSpacing: 1, fontSize: 13 },\n singleHeaderText: { color: '#fff', fontSize: 25 },\n rangeHeaderText: { color: '#fff', fontSize: 25 },\n headerTextFilled: { color: 'rgba(255,255,255,1)' },\n headerTextEmpty: { color: 'rgba(255,255,255,0.5)' },\n headerSeparator: {\n color: 'rgba(255,255,255,1)',\n fontSize: 25,\n paddingLeft: 6,\n paddingRight: 6,\n },\n appbarHeader: {\n elevation: 0,\n backgroundColor: 'transparent',\n },\n})\n"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT,EAAmBC,UAAnB,QAAqC,cAArC;AACA,SAASC,MAAT,EAAiBC,MAAjB,EAAyBC,QAAzB,QAAyC,oBAAzC;AAEA,SAASC,kBAAT,QAAmC,UAAnC;AACA,SAASC,cAAT,QAA+B,uBAA/B;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAaA,eAAe,SAASC,qBAAT,CACbC,KADa,EAEb;EACA,MAAMC,KAAK,GAAGN,QAAQ,EAAtB;EACA,MAAM;IAAEO,cAAF;IAAkBC,MAAlB;IAA0BC,SAAS,GAAG;EAAtC,IAAkDJ,KAAxD;EACA,MAAMK,SAAS,GAAGL,KAAK,CAACK,SAAN,IAAmBR,cAAc,CAACM,MAAD,EAAS,MAAT,CAAnD;EACA,MAAMG,KAAK,GAAGV,kBAAkB,EAAhC;EACA,MAAMW,MAAM,GAAGT,iBAAiB,EAAhC;EAEA,oBACE,oBAAC,QAAD,CAAU,IAAV;IACE,KAAK,EAAE,CACLU,MAAM,CAACC,QADF,EAEL;IACA;MACEC,UAAU,EAAER,cAAc,GAAG,CAAH,GAAOK,MAAM,CAACI,GAD1C;MAEEC,WAAW,EAAEL,MAAM,CAACM,IAFtB;MAGEC,YAAY,EAAEP,MAAM,CAACQ;IAHvB,CAHK;EADT,gBAWE,oBAAC,MAAD;IAAQ,KAAK,EAAEP,MAAM,CAACQ;EAAtB,gBACE,oBAAC,MAAD,CAAQ,MAAR;IACE,IAAI,EAAEZ,SADR;IAEE,kBAAkB,EAAEP,cAAc,CAACM,MAAD,EAAS,OAAT,CAFpC;IAGE,OAAO,EAAEH,KAAK,CAACiB,SAHjB;IAIE,KAAK,EAAEX,KAJT;IAKE,MAAM,EAAC;EALT,EADF,eAQE,oBAAC,MAAD,CAAQ,OAAR;IAAgB,KAAK,EAAE;EAAvB,EARF,eASE,oBAAC,MAAD;IACE,KAAK,EAAEA,KADT;IAEE,SAAS,EAAEL,KAAK,CAACiB,IAAN,GAAajB,KAAK,CAACkB,MAAN,CAAaC,OAA1B,GAAoCd,KAFjD;IAGE,OAAO,EAAEN,KAAK,CAACqB,MAHjB;IAIE,QAAQ,EAAErB,KAAK,CAACsB,iBAAN,IAA2B,KAJvC;IAKE,SAAS,EAAEtB,KAAK,CAACuB,SAAN,IAAmB,IALhC;IAME,MAAM,EAAC;EANT,GAQGlB,SARH,CATF,CAXF,CADF;AAkCD;AAED,MAAMG,MAAM,GAAGhB,UAAU,CAACgC,MAAX,CAAkB;EAC/BC,IAAI,EAAE;IACJC,IAAI,EAAE;EADF,CADyB;EAI/BjB,QAAQ,EAAE;IACRkB,SAAS,EAAE;EADH,CAJqB;EAQ/BC,MAAM,EAAE;IACNC,MAAM,EAAE,EADF;IAENC,UAAU,EAAE,QAFN;IAGNC,aAAa,EAAE,KAHT;IAINnB,WAAW,EAAE,EAJP;IAKNE,YAAY,EAAE;EALR,CARuB;EAe/BkB,sBAAsB,EAAE;IAAEC,SAAS,EAAE,CAAb;IAAgBF,aAAa,EAAE;EAA/B,CAfO;EAgB/BG,KAAK,EAAE;IAAE5B,KAAK,EAAE,MAAT;IAAiB6B,aAAa,EAAE,CAAhC;IAAmCC,QAAQ,EAAE;EAA7C,CAhBwB;EAiB/BC,gBAAgB,EAAE;IAAE/B,KAAK,EAAE,MAAT;IAAiB8B,QAAQ,EAAE;EAA3B,CAjBa;EAkB/BE,eAAe,EAAE;IAAEhC,KAAK,EAAE,MAAT;IAAiB8B,QAAQ,EAAE;EAA3B,CAlBc;EAmB/BG,gBAAgB,EAAE;IAAEjC,KAAK,EAAE;EAAT,CAnBa;EAoB/BkC,eAAe,EAAE;IAAElC,KAAK,EAAE;EAAT,CApBc;EAqB/BmC,eAAe,EAAE;IACfnC,KAAK,EAAE,qBADQ;IAEf8B,QAAQ,EAAE,EAFK;IAGfxB,WAAW,EAAE,CAHE;IAIfE,YAAY,EAAE;EAJC,CArBc;EA2B/BE,YAAY,EAAE;IACZW,SAAS,EAAE,CADC;IAEZe,eAAe,EAAE;EAFL;AA3BiB,CAAlB,CAAf"}
|
package/lib/module/Date/Day.js
CHANGED
|
@@ -32,9 +32,9 @@ function Day(props) {
|
|
|
32
32
|
const onPress = React.useCallback(() => {
|
|
33
33
|
onPressDate(new Date(year, month, day));
|
|
34
34
|
}, [onPressDate, year, month, day]);
|
|
35
|
-
const borderColor = selected || inRange && theme.dark ? textColorOnPrimary : theme.dark ? '#fff' : '#000';
|
|
36
|
-
const textColor = selected || inRange && theme.dark ? textColorOnPrimary : undefined;
|
|
37
|
-
let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.
|
|
35
|
+
const borderColor = theme.isV3 ? theme.colors.primary : selected || inRange && theme.dark ? textColorOnPrimary : theme.dark ? '#fff' : '#000';
|
|
36
|
+
const textColor = theme.isV3 && selected ? theme.colors.onPrimary : theme.isV3 && inRange && theme.dark ? theme.colors.onPrimaryContainer : selected || inRange && theme.dark ? textColorOnPrimary : theme.isV3 ? theme.colors.onSurface : undefined;
|
|
37
|
+
let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.bodySmall : theme.fonts.medium;
|
|
38
38
|
return /*#__PURE__*/React.createElement(View, {
|
|
39
39
|
style: [styles.root, disabled && styles.disabled]
|
|
40
40
|
}, /*#__PURE__*/React.createElement(DayRange, {
|
|
@@ -59,7 +59,7 @@ function Day(props) {
|
|
|
59
59
|
} : null]
|
|
60
60
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
61
61
|
style: [textColor ? {
|
|
62
|
-
color: textColor
|
|
62
|
+
color: theme.isV3 && isToday ? theme.colors.primary : textColor
|
|
63
63
|
} : undefined, { ...textFont
|
|
64
64
|
}],
|
|
65
65
|
selectable: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Text","TouchableRipple","StyleSheet","View","DayRange","daySize","EmptyDayPure","styles","empty","EmptyDay","memo","Day","props","day","month","year","selected","inRange","leftCrop","rightCrop","onPressDate","primaryColor","selectColor","isToday","disabled","textColorOnPrimary","theme","onPress","useCallback","Date","borderColor","dark","textColor","
|
|
1
|
+
{"version":3,"names":["React","Text","TouchableRipple","StyleSheet","View","DayRange","daySize","EmptyDayPure","styles","empty","EmptyDay","memo","Day","props","day","month","year","selected","inRange","leftCrop","rightCrop","onPressDate","primaryColor","selectColor","isToday","disabled","textColorOnPrimary","theme","onPress","useCallback","Date","borderColor","isV3","colors","primary","dark","textColor","onPrimary","onPrimaryContainer","onSurface","undefined","textFont","fonts","bodySmall","medium","root","button","backgroundColor","color","create","flex","flexBasis","opacity","justifyContent","alignItems","position","width","height","overflow","borderRadius","borderWidth","flex1"],"sources":["Day.tsx"],"sourcesContent":["import * as React from 'react'\nimport { MD2Theme, Text, TouchableRipple } from 'react-native-paper'\nimport { StyleSheet, View } from 'react-native'\nimport DayRange from './DayRange'\nimport { daySize } from './dateUtils'\n\nimport type { PaperTheme } from '../utils'\n\nfunction EmptyDayPure() {\n return <View style={styles.empty} />\n}\nexport const EmptyDay = React.memo(EmptyDayPure)\n\nfunction Day(props: {\n theme: PaperTheme\n textColorOnPrimary: string\n day: number\n month: number\n year: number\n selected: boolean\n inRange: boolean\n leftCrop: boolean\n rightCrop: boolean\n primaryColor: string\n selectColor: string\n isToday: boolean\n disabled: boolean\n onPressDate: (date: Date) => any\n}) {\n const {\n day,\n month,\n year,\n selected,\n inRange,\n leftCrop,\n rightCrop,\n onPressDate,\n primaryColor,\n selectColor,\n isToday,\n disabled,\n textColorOnPrimary,\n theme,\n } = props\n const onPress = React.useCallback(() => {\n onPressDate(new Date(year, month, day))\n }, [onPressDate, year, month, day])\n\n const borderColor = theme.isV3\n ? theme.colors.primary\n : selected || (inRange && theme.dark)\n ? textColorOnPrimary\n : theme.dark\n ? '#fff'\n : '#000'\n\n const textColor =\n theme.isV3 && selected\n ? theme.colors.onPrimary\n : theme.isV3 && inRange && theme.dark\n ? theme.colors.onPrimaryContainer\n : selected || (inRange && theme.dark)\n ? textColorOnPrimary\n : theme.isV3\n ? theme.colors.onSurface\n : undefined\n\n let textFont = theme?.isV3\n ? theme.fonts.bodySmall\n : (theme as any as MD2Theme).fonts.medium\n\n return (\n <View style={[styles.root, disabled && styles.disabled]}>\n <DayRange\n inRange={inRange}\n leftCrop={leftCrop}\n rightCrop={rightCrop}\n selectColor={selectColor}\n />\n <TouchableRipple\n testID={`react-native-paper-dates-day-${year}-${month}-${day}`}\n disabled={disabled}\n borderless={true}\n onPress={disabled ? undefined : onPress}\n style={[\n styles.button,\n { backgroundColor: inRange ? selectColor : undefined },\n ]}\n accessibilityRole=\"button\"\n >\n <View\n style={[\n styles.day,\n isToday ? { borderColor: borderColor } : null,\n selected ? { backgroundColor: primaryColor } : null,\n ]}\n >\n <Text\n style={[\n textColor\n ? {\n color:\n theme.isV3 && isToday ? theme.colors.primary : textColor,\n }\n : undefined,\n { ...textFont },\n ]}\n selectable={false}\n >\n {day}\n </Text>\n </View>\n </TouchableRipple>\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n empty: {\n flex: 1,\n flexBasis: 0,\n },\n disabled: {\n opacity: 0.3,\n },\n root: {\n flexBasis: 0,\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n position: 'relative',\n },\n button: {\n width: daySize,\n height: daySize,\n overflow: 'hidden',\n borderRadius: daySize / 2,\n },\n day: {\n flexBasis: 0,\n flex: 1,\n borderRadius: daySize / 2,\n width: daySize,\n height: daySize,\n justifyContent: 'center',\n alignItems: 'center',\n borderWidth: 1,\n borderColor: 'transparent',\n },\n flex1: {\n flex: 1,\n },\n})\n\nexport default React.memo(Day)\n"],"mappings":"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"}
|
|
@@ -7,11 +7,12 @@ function DayName(_ref) {
|
|
|
7
7
|
label
|
|
8
8
|
} = _ref;
|
|
9
9
|
const theme = useTheme();
|
|
10
|
-
let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.
|
|
10
|
+
let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.bodySmall : theme.fonts.medium;
|
|
11
11
|
return /*#__PURE__*/React.createElement(View, {
|
|
12
12
|
style: styles.dayName
|
|
13
13
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
14
|
-
style: [styles.dayNameLabel, { ...textFont
|
|
14
|
+
style: [styles.dayNameLabel, { ...textFont,
|
|
15
|
+
color: theme.colors.onSurface
|
|
15
16
|
}],
|
|
16
17
|
selectable: false
|
|
17
18
|
}, label));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","View","Text","useTheme","DayName","label","theme","textFont","isV3","fonts","
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","Text","useTheme","DayName","label","theme","textFont","isV3","fonts","bodySmall","medium","styles","dayName","dayNameLabel","color","colors","onSurface","create","flex","alignItems","fontSize","opacity","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.bodySmall\n : (theme as any as MD2Theme).fonts.medium\n\n return (\n <View style={styles.dayName}>\n <Text\n style={[\n styles.dayNameLabel,\n { ...textFont, color: theme.colors.onSurface },\n ]}\n selectable={false}\n >\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,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AACA,SAAmBC,IAAnB,EAAyBC,QAAzB,QAAyC,oBAAzC;;AAEA,SAASC,OAAT,OAA+C;EAAA,IAA9B;IAAEC;EAAF,CAA8B;EAC7C,MAAMC,KAAK,GAAGH,QAAQ,EAAtB;EAEA,IAAII,QAAQ,GAAGD,KAAK,SAAL,IAAAA,KAAK,WAAL,IAAAA,KAAK,CAAEE,IAAP,GACXF,KAAK,CAACG,KAAN,CAAYC,SADD,GAEVJ,KAAD,CAA2BG,KAA3B,CAAiCE,MAFrC;EAIA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,IAAD;IACE,KAAK,EAAE,CACLD,MAAM,CAACE,YADF,EAEL,EAAE,GAAGP,QAAL;MAAeQ,KAAK,EAAET,KAAK,CAACU,MAAN,CAAaC;IAAnC,CAFK,CADT;IAKE,UAAU,EAAE;EALd,GAOGZ,KAPH,CADF,CADF;AAaD;;AACD,MAAMO,MAAM,GAAGZ,UAAU,CAACkB,MAAX,CAAkB;EAC/BL,OAAO,EAAE;IAAEM,IAAI,EAAE,CAAR;IAAWC,UAAU,EAAE;EAAvB,CADsB;EAE/BN,YAAY,EAAE;IAAEO,QAAQ,EAAE,EAAZ;IAAgBC,OAAO,EAAE;EAAzB;AAFiB,CAAlB,CAAf;AAIA,4BAAevB,KAAK,CAACwB,IAAN,CAAWnB,OAAX,CAAf"}
|
package/lib/module/Date/Month.js
CHANGED
|
@@ -181,7 +181,7 @@ function Month(props) {
|
|
|
181
181
|
};
|
|
182
182
|
});
|
|
183
183
|
}, [year, month, index, isDisabled, mode, isWithinValidRange, startDate, endDate, dates, date]);
|
|
184
|
-
let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.
|
|
184
|
+
let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.titleSmall : theme.fonts.medium;
|
|
185
185
|
return /*#__PURE__*/React.createElement(View, {
|
|
186
186
|
style: [styles.month, {
|
|
187
187
|
height: getMonthHeight(scrollMode, index)
|
|
@@ -204,14 +204,15 @@ function Month(props) {
|
|
|
204
204
|
borderRadius: roundness
|
|
205
205
|
}]
|
|
206
206
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
207
|
-
style: [styles.monthLabel, { ...textFont
|
|
207
|
+
style: [styles.monthLabel, { ...textFont,
|
|
208
|
+
color: theme.isV3 ? theme.colors.onSurfaceVariant : theme.colors.onSurface
|
|
208
209
|
}],
|
|
209
210
|
selectable: false
|
|
210
211
|
}, monthName, " ", year), /*#__PURE__*/React.createElement(View, {
|
|
211
212
|
style: isHorizontal ? styles.opacity1 : styles.opacity0
|
|
212
213
|
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
213
214
|
onPress: isHorizontal ? () => onPressYear(year) : undefined,
|
|
214
|
-
icon: selectingYear ? 'chevron-up' : 'chevron-down'
|
|
215
|
+
icon: selectingYear ? theme.isV3 ? 'menu-up' : 'chevron-up' : theme.isV3 ? 'menu-down' : 'chevron-down'
|
|
215
216
|
}))))), grid.map(_ref2 => {
|
|
216
217
|
let {
|
|
217
218
|
weekIndex,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","View","IconButton","Text","useTheme","TouchableRipple","Day","EmptyDay","addMonths","areDatesOnSameDay","daySize","getDaysInMonth","getFirstDayOfMonth","getRealIndex","getGridCount","isDateBetween","gridCounts","showWeekDay","startAtIndex","beginOffset","estimatedMonthHeight","useRangeChecker","getCalendarHeaderHeight","dayNamesHeight","useTextColorOnPrimary","Month","props","index","mode","date","dates","startDate","endDate","onPressYear","selectingYear","onPressDate","scrollMode","primaryColor","selectColor","roundness","disableWeekDays","locale","validRange","theme","textColorOnPrimary","realIndex","isHorizontal","isDisabled","isWithinValidRange","monthName","month","year","useMemo","md","Date","y","getFullYear","m","getMonth","formatter","Intl","DateTimeFormat","format","grid","today","daysInMonth","dayOfWeek","emptyDays","monthGrid","map","days","weekGrid","weekIndex","generatedDays","_","dayIndex","isFirstWeek","realDayIndex","beforeWeekDay","dayOfMonth","afterWeekDay","day","isToday","inRange","disabled","selected","leftCrop","rightCrop","isFirstDayOfMonth","isLastDayOfMonth","selectedStartDay","selectedEndDay","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","weekMargin","weekSize","montHeaderHeight","monthHeaderSingleHeight","create","flexDirection","justifyContent","overflow","fontSize","opacity","alignSelf","marginLeft","paddingLeft","alignItems","Array","fill","getIndexCount","weeksOffset","off","i","cIndex","getIndexFromHorizontalOffset","offset","width","Math","floor","getIndexFromVerticalOffset","estimatedIndex","ceil","realOffset","getVerticalMonthsOffset","difference","getHorizontalMonthOffset","count","ob","monthsHeight","c","calendarHeight","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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"}
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","IconButton","Text","useTheme","TouchableRipple","Day","EmptyDay","addMonths","areDatesOnSameDay","daySize","getDaysInMonth","getFirstDayOfMonth","getRealIndex","getGridCount","isDateBetween","gridCounts","showWeekDay","startAtIndex","beginOffset","estimatedMonthHeight","useRangeChecker","getCalendarHeaderHeight","dayNamesHeight","useTextColorOnPrimary","Month","props","index","mode","date","dates","startDate","endDate","onPressYear","selectingYear","onPressDate","scrollMode","primaryColor","selectColor","roundness","disableWeekDays","locale","validRange","theme","textColorOnPrimary","realIndex","isHorizontal","isDisabled","isWithinValidRange","monthName","month","year","useMemo","md","Date","y","getFullYear","m","getMonth","formatter","Intl","DateTimeFormat","format","grid","today","daysInMonth","dayOfWeek","emptyDays","monthGrid","map","days","weekGrid","weekIndex","generatedDays","_","dayIndex","isFirstWeek","realDayIndex","beforeWeekDay","dayOfMonth","afterWeekDay","day","isToday","inRange","disabled","selected","leftCrop","rightCrop","isFirstDayOfMonth","isLastDayOfMonth","selectedStartDay","selectedEndDay","safeDates","some","d","yesterday","tomorrow","yesterdaySelected","tomorrowSelected","isWithinOptionalValidRange","textFont","isV3","fonts","titleSmall","medium","styles","height","getMonthHeight","monthHeader","marginTop","monthHeaderSingleMarginTop","marginBottom","monthHeaderSingleMarginBottom","undefined","yearButton","borderRadius","yearButtonInner","monthLabel","color","colors","onSurfaceVariant","onSurface","opacity1","opacity0","week","filter","gd","weekMargin","weekSize","montHeaderHeight","monthHeaderSingleHeight","create","flexDirection","justifyContent","overflow","fontSize","opacity","alignSelf","marginLeft","paddingLeft","alignItems","Array","fill","getIndexCount","weeksOffset","off","i","cIndex","getIndexFromHorizontalOffset","offset","width","Math","floor","getIndexFromVerticalOffset","estimatedIndex","ceil","realOffset","getVerticalMonthsOffset","difference","getHorizontalMonthOffset","count","ob","monthsHeight","c","calendarHeight","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.titleSmall\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={[\n styles.monthLabel,\n {\n ...textFont,\n color: theme.isV3\n ? theme.colors.onSurfaceVariant\n : theme.colors.onSurface,\n },\n ]}\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={\n selectingYear\n ? theme.isV3\n ? 'menu-up'\n : 'chevron-up'\n : theme.isV3\n ? 'menu-down'\n : 'chevron-down'\n }\n />\n </View>\n </View>\n </TouchableRipple>\n </View>\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 month: {},\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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"}
|
|
@@ -68,7 +68,12 @@ function YearPure(_ref3) {
|
|
|
68
68
|
backgroundColor: theme.colors.primary
|
|
69
69
|
} : null]
|
|
70
70
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
71
|
-
style: [styles.yearLabel, selected ?
|
|
71
|
+
style: [styles.yearLabel, selected ? // eslint-disable-next-line react-native/no-inline-styles
|
|
72
|
+
{
|
|
73
|
+
color: theme.isV3 ? theme.colors.onPrimary : '#fff'
|
|
74
|
+
} : {
|
|
75
|
+
color: theme.isV3 ? theme.colors.onSurfaceVariant : undefined
|
|
76
|
+
}, { ...textFont
|
|
72
77
|
}],
|
|
73
78
|
selectable: false
|
|
74
79
|
}, year))));
|
|
@@ -91,9 +96,6 @@ const styles = StyleSheet.create({
|
|
|
91
96
|
height: ITEM_HEIGHT,
|
|
92
97
|
justifyContent: 'center'
|
|
93
98
|
},
|
|
94
|
-
selectedYear: {
|
|
95
|
-
color: '#fff'
|
|
96
|
-
},
|
|
97
99
|
yearButton: {
|
|
98
100
|
borderRadius: 46 / 2,
|
|
99
101
|
overflow: 'hidden'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","FlatList","StyleSheet","View","Text","TouchableRipple","useTheme","range","ITEM_HEIGHT","YearPicker","selectedYear","selectingYear","onPressYear","startYear","endYear","theme","flatList","useRef","years","isNaN","useEffect","current","indexToGo","scrollToOffset","offset","animated","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","
|
|
1
|
+
{"version":3,"names":["React","FlatList","StyleSheet","View","Text","TouchableRipple","useTheme","range","ITEM_HEIGHT","YearPicker","selectedYear","selectingYear","onPressYear","startYear","endYear","theme","flatList","useRef","years","isNaN","useEffect","current","indexToGo","scrollToOffset","offset","animated","absoluteFill","styles","root","backgroundColor","colors","surface","opacity1","opacity0","list","item","YearPure","year","selected","textFont","isV3","fonts","bodyLarge","medium","String","yearButton","yearInner","primary","yearLabel","color","onPrimary","onSurfaceVariant","undefined","Year","memo","create","flex","top","zIndex","marginLeft","marginRight","height","justifyContent","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\n ? // eslint-disable-next-line react-native/no-inline-styles\n { color: theme.isV3 ? theme.colors.onPrimary : '#fff' }\n : {\n color: theme.isV3\n ? theme.colors.onSurfaceVariant\n : undefined,\n },\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 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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"}
|
|
@@ -232,7 +232,11 @@ export function toHourOutputFormat(newHours, previousHours, is24Hour) {
|
|
|
232
232
|
return newHours;
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
if (
|
|
235
|
+
if (previousHours === 0 && newHours !== 0) {
|
|
236
|
+
return newHours - 12 < 0 ? newHours : newHours - 12;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
if (previousHours >= 12 && newHours < 12) {
|
|
236
240
|
return newHours + 12;
|
|
237
241
|
}
|
|
238
242
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Color","useTheme","circleSize","hourTypes","am","pm","getHourType","hours","undefined","inputTypes","keyboard","picker","reverseInputTypes","inputTypeIcons","getTimeInputTypeIcon","inputType","inputIconMap","clockTypes","minutes","outerHeight","_30","Math","PI","_12","_360","_90","snap","angle","step","a","diff","getHourTypeFromOffset","left","top","size","w","x","y","distance","sqrt","maxPm","getMinutes","handAngle","minute","parseInt","toFixed","getHours","hourType","hour","getAngle","atan","useSwitchColors","highlighted","theme","backgroundColor","useMemo","dark","isV3","colors","tertiaryContainer","primary","hex","backdrop","primaryContainer","lighten","surface","color","onSurfaceVariant","onTertiaryContainer","background","placeholder","useInputColors","surfaceVariant","secondaryContainer","darken","onSurface","onBackground","onPrimaryContainer","text","toHourInputFormat","is24Hour","toHourOutputFormat","newHours","previousHours"],"sources":["timeUtils.ts"],"sourcesContent":["import * as React from 'react'\nimport Color from 'color'\nimport { MD2Theme, useTheme } from 'react-native-paper'\n\nexport const circleSize = 256\n\nexport type PossibleHourTypes = 'am' | 'pm'\nexport type HourTypeMap = {\n [hourType in PossibleHourTypes]: PossibleHourTypes\n}\nexport const hourTypes: HourTypeMap = {\n am: 'am',\n pm: 'pm',\n}\n\nexport function getHourType(hours: number): PossibleHourTypes | undefined {\n if (hours >= 0 && hours <= 12) {\n return hourTypes.am\n }\n if (hours > 12 && hours <= 24) {\n return hourTypes.pm\n }\n return undefined\n}\n\nexport type PossibleInputTypes = 'keyboard' | 'picker'\nexport type InputTypeMap = {\n [inputType in PossibleInputTypes]: PossibleInputTypes\n}\nexport const inputTypes: InputTypeMap = {\n keyboard: 'keyboard',\n picker: 'picker',\n}\n\nexport const reverseInputTypes: InputTypeMap = {\n keyboard: 'picker',\n picker: 'keyboard',\n}\ntype InputIconMap = {\n [inputType in PossibleInputTypes]: string\n}\nexport const inputTypeIcons: InputIconMap = {\n keyboard: 'keyboard-outline',\n picker: 'clock-outline',\n}\n\nexport const getTimeInputTypeIcon = (\n inputType: PossibleInputTypes,\n inputIconMap?: InputIconMap\n) => {\n return (\n inputIconMap?.[reverseInputTypes[inputType]] ||\n inputTypeIcons?.[reverseInputTypes[inputType]]\n )\n}\n\nexport type PossibleClockTypes = 'hours' | 'minutes'\nexport type ClockTypeMap = {\n [clockType in PossibleClockTypes]: PossibleClockTypes\n}\nexport const clockTypes: ClockTypeMap = {\n minutes: 'minutes',\n hours: 'hours',\n}\n\n// Code inspiration and copied from: https://github.com/ShaneGH/analogue-time-picker/blob/master/src/utils/angle.ts\n\nconst outerHeight = 34\nconst _30 = Math.PI / 6\nconst _12 = Math.PI / 30\nconst _360 = Math.PI * 2\nconst _90 = Math.PI / 2\n\n/** Snap an angle to a given step. E.g. if angle = 22° and step = 10°, round down to 20° */\nexport function snap(angle: number, step: number) {\n let a = angle\n while (a < 0) a += _360\n let diff = a % step\n\n if (diff <= step / 2) {\n return angle - diff\n }\n\n return angle - diff + step\n}\n\n// detect am / pm based on offset\nexport function getHourTypeFromOffset(\n left: number,\n top: number,\n size: number\n): PossibleHourTypes {\n const w = size / 2\n const x = w - left\n const y = size / 2 - top\n\n const distance = Math.sqrt(x * x + y * y)\n const maxPm = w - outerHeight\n\n return distance > maxPm ? hourTypes.am : hourTypes.pm\n}\n\n// Calculate the minute from the hand angle\nexport function getMinutes(handAngle: number) {\n handAngle = snap(handAngle, _12)\n\n let minute = parseInt((((handAngle - _90) % _360) / _12).toFixed(), 10)\n while (minute < 0) minute += 60\n while (minute >= 60) minute -= 60\n\n return minute\n}\n\n// Calculate the hour from the hand angle\nexport function getHours(\n handAngle: number,\n hourType: PossibleHourTypes | undefined\n) {\n handAngle = snap(handAngle, _30)\n\n let hour = parseInt((((handAngle - _90) % _360) / _30).toFixed(), 10)\n if (hour < 0) hour += 12\n if (hour >= 12) hour -= 12\n\n if (hourType === hourTypes.am) {\n if (hour <= 0) {\n hour += 12\n } else if (hour >= 12) {\n hour -= 12\n }\n }\n if (hourType === hourTypes.pm) {\n if (hour <= 0) {\n hour += 12\n } else if (hour > 12) {\n hour -= 12\n }\n }\n\n return hour\n}\n\n/** Get the angle of the left/top co-ordinate from the center of the width.height box */\nexport function getAngle(left: number, top: number, size: number) {\n const x = size / 2 - left\n const y = size / 2 - top\n\n // tan O = y / x\n let angle = x ? Math.atan(y / x) : y < 0 ? -_90 : _90\n if (x < 0) {\n // reflect along vertical axis\n angle = -angle + 2 * (_90 + angle)\n }\n\n return angle\n}\n\nexport function useSwitchColors(highlighted: boolean) {\n const theme = useTheme()\n const backgroundColor = React.useMemo<string>(() => {\n if (theme.dark) {\n if (highlighted) {\n return theme.isV3\n ? theme.colors.tertiaryContainer\n : Color(theme.colors.primary).hex()\n }\n return theme.colors.backdrop\n }\n\n if (highlighted) {\n if (theme.isV3) {\n return theme.colors.primaryContainer\n }\n\n return Color(theme.colors.primary).lighten(1).hex()\n }\n return theme.colors.surface\n }, [highlighted, theme])\n\n const color = React.useMemo<string>(() => {\n if (highlighted && !theme.dark) {\n return theme.isV3 ? theme.colors.onSurfaceVariant : theme.colors.primary\n }\n if (highlighted && theme.dark) {\n return theme.isV3\n ? theme.colors.onTertiaryContainer\n : theme.colors.background\n }\n if (theme.isV3) {\n return theme.colors.onSurfaceVariant\n } else {\n return (theme as any as MD2Theme).colors.placeholder\n }\n }, [highlighted, theme])\n\n return { backgroundColor, color }\n}\n\nexport function useInputColors(highlighted: boolean) {\n const theme = useTheme()\n const backgroundColor = React.useMemo<string>(() => {\n if (theme.dark) {\n if (highlighted) {\n return theme.isV3\n ? theme.colors.primaryContainer\n : Color(theme.colors.primary).hex()\n }\n return theme.isV3\n ? theme.colors.surfaceVariant\n : Color(theme.colors.surface).lighten(1.4).hex()\n }\n\n if (highlighted) {\n if (theme.isV3) {\n return theme.colors.secondaryContainer\n }\n return Color(theme.colors.primary).lighten(1).hex()\n }\n if (theme.isV3) {\n return theme.colors.surfaceVariant\n }\n return Color(theme.colors.surface).darken(0.1).hex()\n }, [highlighted, theme])\n\n const color = React.useMemo<string>(() => {\n if (theme.isV3) {\n if (!highlighted) {\n return theme.isV3 ? theme.colors.onSurface : theme.colors.onBackground\n }\n return theme.isV3\n ? theme.colors.onPrimaryContainer\n : theme.colors.onBackground\n } else {\n if (highlighted && !theme.dark) {\n return theme.colors.primary\n }\n return (theme as any as MD2Theme).colors.text\n }\n }, [highlighted, theme])\n\n return { backgroundColor, color }\n}\n\nexport function toHourInputFormat(hours: number, is24Hour: boolean): number {\n if (is24Hour) {\n if (hours === 24) {\n return 0\n }\n return hours\n }\n if (hours > 12) {\n return hours - 12\n }\n if (hours === 0) {\n return hours + 12\n }\n return hours\n}\n\nexport function toHourOutputFormat(\n newHours: number,\n previousHours: number,\n is24Hour: boolean\n): number {\n if (is24Hour) {\n return newHours\n }\n if ((!is24Hour && previousHours === 0) || newHours === 0) {\n return newHours + 12\n }\n return newHours\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","Color","useTheme","circleSize","hourTypes","am","pm","getHourType","hours","undefined","inputTypes","keyboard","picker","reverseInputTypes","inputTypeIcons","getTimeInputTypeIcon","inputType","inputIconMap","clockTypes","minutes","outerHeight","_30","Math","PI","_12","_360","_90","snap","angle","step","a","diff","getHourTypeFromOffset","left","top","size","w","x","y","distance","sqrt","maxPm","getMinutes","handAngle","minute","parseInt","toFixed","getHours","hourType","hour","getAngle","atan","useSwitchColors","highlighted","theme","backgroundColor","useMemo","dark","isV3","colors","tertiaryContainer","primary","hex","backdrop","primaryContainer","lighten","surface","color","onSurfaceVariant","onTertiaryContainer","background","placeholder","useInputColors","surfaceVariant","secondaryContainer","darken","onSurface","onBackground","onPrimaryContainer","text","toHourInputFormat","is24Hour","toHourOutputFormat","newHours","previousHours"],"sources":["timeUtils.ts"],"sourcesContent":["import * as React from 'react'\nimport Color from 'color'\nimport { MD2Theme, useTheme } from 'react-native-paper'\n\nexport const circleSize = 256\n\nexport type PossibleHourTypes = 'am' | 'pm'\nexport type HourTypeMap = {\n [hourType in PossibleHourTypes]: PossibleHourTypes\n}\nexport const hourTypes: HourTypeMap = {\n am: 'am',\n pm: 'pm',\n}\n\nexport function getHourType(hours: number): PossibleHourTypes | undefined {\n if (hours >= 0 && hours <= 12) {\n return hourTypes.am\n }\n if (hours > 12 && hours <= 24) {\n return hourTypes.pm\n }\n return undefined\n}\n\nexport type PossibleInputTypes = 'keyboard' | 'picker'\nexport type InputTypeMap = {\n [inputType in PossibleInputTypes]: PossibleInputTypes\n}\nexport const inputTypes: InputTypeMap = {\n keyboard: 'keyboard',\n picker: 'picker',\n}\n\nexport const reverseInputTypes: InputTypeMap = {\n keyboard: 'picker',\n picker: 'keyboard',\n}\ntype InputIconMap = {\n [inputType in PossibleInputTypes]: string\n}\nexport const inputTypeIcons: InputIconMap = {\n keyboard: 'keyboard-outline',\n picker: 'clock-outline',\n}\n\nexport const getTimeInputTypeIcon = (\n inputType: PossibleInputTypes,\n inputIconMap?: InputIconMap\n) => {\n return (\n inputIconMap?.[reverseInputTypes[inputType]] ||\n inputTypeIcons?.[reverseInputTypes[inputType]]\n )\n}\n\nexport type PossibleClockTypes = 'hours' | 'minutes'\nexport type ClockTypeMap = {\n [clockType in PossibleClockTypes]: PossibleClockTypes\n}\nexport const clockTypes: ClockTypeMap = {\n minutes: 'minutes',\n hours: 'hours',\n}\n\n// Code inspiration and copied from: https://github.com/ShaneGH/analogue-time-picker/blob/master/src/utils/angle.ts\n\nconst outerHeight = 34\nconst _30 = Math.PI / 6\nconst _12 = Math.PI / 30\nconst _360 = Math.PI * 2\nconst _90 = Math.PI / 2\n\n/** Snap an angle to a given step. E.g. if angle = 22° and step = 10°, round down to 20° */\nexport function snap(angle: number, step: number) {\n let a = angle\n while (a < 0) a += _360\n let diff = a % step\n\n if (diff <= step / 2) {\n return angle - diff\n }\n\n return angle - diff + step\n}\n\n// detect am / pm based on offset\nexport function getHourTypeFromOffset(\n left: number,\n top: number,\n size: number\n): PossibleHourTypes {\n const w = size / 2\n const x = w - left\n const y = size / 2 - top\n\n const distance = Math.sqrt(x * x + y * y)\n const maxPm = w - outerHeight\n\n return distance > maxPm ? hourTypes.am : hourTypes.pm\n}\n\n// Calculate the minute from the hand angle\nexport function getMinutes(handAngle: number) {\n handAngle = snap(handAngle, _12)\n\n let minute = parseInt((((handAngle - _90) % _360) / _12).toFixed(), 10)\n while (minute < 0) minute += 60\n while (minute >= 60) minute -= 60\n\n return minute\n}\n\n// Calculate the hour from the hand angle\nexport function getHours(\n handAngle: number,\n hourType: PossibleHourTypes | undefined\n) {\n handAngle = snap(handAngle, _30)\n\n let hour = parseInt((((handAngle - _90) % _360) / _30).toFixed(), 10)\n if (hour < 0) hour += 12\n if (hour >= 12) hour -= 12\n\n if (hourType === hourTypes.am) {\n if (hour <= 0) {\n hour += 12\n } else if (hour >= 12) {\n hour -= 12\n }\n }\n if (hourType === hourTypes.pm) {\n if (hour <= 0) {\n hour += 12\n } else if (hour > 12) {\n hour -= 12\n }\n }\n\n return hour\n}\n\n/** Get the angle of the left/top co-ordinate from the center of the width.height box */\nexport function getAngle(left: number, top: number, size: number) {\n const x = size / 2 - left\n const y = size / 2 - top\n\n // tan O = y / x\n let angle = x ? Math.atan(y / x) : y < 0 ? -_90 : _90\n if (x < 0) {\n // reflect along vertical axis\n angle = -angle + 2 * (_90 + angle)\n }\n\n return angle\n}\n\nexport function useSwitchColors(highlighted: boolean) {\n const theme = useTheme()\n const backgroundColor = React.useMemo<string>(() => {\n if (theme.dark) {\n if (highlighted) {\n return theme.isV3\n ? theme.colors.tertiaryContainer\n : Color(theme.colors.primary).hex()\n }\n return theme.colors.backdrop\n }\n\n if (highlighted) {\n if (theme.isV3) {\n return theme.colors.primaryContainer\n }\n\n return Color(theme.colors.primary).lighten(1).hex()\n }\n return theme.colors.surface\n }, [highlighted, theme])\n\n const color = React.useMemo<string>(() => {\n if (highlighted && !theme.dark) {\n return theme.isV3 ? theme.colors.onSurfaceVariant : theme.colors.primary\n }\n if (highlighted && theme.dark) {\n return theme.isV3\n ? theme.colors.onTertiaryContainer\n : theme.colors.background\n }\n if (theme.isV3) {\n return theme.colors.onSurfaceVariant\n } else {\n return (theme as any as MD2Theme).colors.placeholder\n }\n }, [highlighted, theme])\n\n return { backgroundColor, color }\n}\n\nexport function useInputColors(highlighted: boolean) {\n const theme = useTheme()\n const backgroundColor = React.useMemo<string>(() => {\n if (theme.dark) {\n if (highlighted) {\n return theme.isV3\n ? theme.colors.primaryContainer\n : Color(theme.colors.primary).hex()\n }\n return theme.isV3\n ? theme.colors.surfaceVariant\n : Color(theme.colors.surface).lighten(1.4).hex()\n }\n\n if (highlighted) {\n if (theme.isV3) {\n return theme.colors.secondaryContainer\n }\n return Color(theme.colors.primary).lighten(1).hex()\n }\n if (theme.isV3) {\n return theme.colors.surfaceVariant\n }\n return Color(theme.colors.surface).darken(0.1).hex()\n }, [highlighted, theme])\n\n const color = React.useMemo<string>(() => {\n if (theme.isV3) {\n if (!highlighted) {\n return theme.isV3 ? theme.colors.onSurface : theme.colors.onBackground\n }\n return theme.isV3\n ? theme.colors.onPrimaryContainer\n : theme.colors.onBackground\n } else {\n if (highlighted && !theme.dark) {\n return theme.colors.primary\n }\n return (theme as any as MD2Theme).colors.text\n }\n }, [highlighted, theme])\n\n return { backgroundColor, color }\n}\n\nexport function toHourInputFormat(hours: number, is24Hour: boolean): number {\n if (is24Hour) {\n if (hours === 24) {\n return 0\n }\n return hours\n }\n if (hours > 12) {\n return hours - 12\n }\n if (hours === 0) {\n return hours + 12\n }\n return hours\n}\n\nexport function toHourOutputFormat(\n newHours: number,\n previousHours: number,\n is24Hour: boolean\n): number {\n if (is24Hour) {\n return newHours\n }\n if (previousHours === 0 && newHours !== 0) {\n return newHours - 12 < 0 ? newHours : newHours - 12\n }\n if (previousHours >= 12 && newHours < 12) {\n return newHours + 12\n }\n return newHours\n}\n"],"mappings":"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"}
|
package/lib/module/utils.js
CHANGED
|
@@ -8,6 +8,11 @@ export function useLatest(value) {
|
|
|
8
8
|
}
|
|
9
9
|
export function useHeaderBackgroundColor() {
|
|
10
10
|
const theme = useTheme();
|
|
11
|
+
|
|
12
|
+
if (theme.isV3) {
|
|
13
|
+
return theme.colors.surface;
|
|
14
|
+
}
|
|
15
|
+
|
|
11
16
|
return theme.dark && theme.mode === 'adaptive' ? overlay(4, theme.colors.surface) : theme.colors.primary;
|
|
12
17
|
}
|
|
13
18
|
export function useHeaderColorIsLight() {
|
|
@@ -16,7 +21,13 @@ export function useHeaderColorIsLight() {
|
|
|
16
21
|
return Color(background).isLight();
|
|
17
22
|
}
|
|
18
23
|
export function useHeaderTextColor() {
|
|
24
|
+
const theme = useTheme();
|
|
19
25
|
const isLight = useHeaderColorIsLight();
|
|
26
|
+
|
|
27
|
+
if (theme.isV3) {
|
|
28
|
+
return theme.colors.onSurfaceVariant;
|
|
29
|
+
}
|
|
30
|
+
|
|
20
31
|
return !isLight ? '#fff' : '#000';
|
|
21
32
|
}
|
|
22
33
|
export function useTextColorOnPrimary() {
|