react-native-paper-dates 0.11.7 → 0.11.9

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.
@@ -65,7 +65,7 @@ function AnalogClock(_ref) {
65
65
  let hours24 = is24HourRef.current;
66
66
  let previousHourType = (0, _timeUtils.getHourType)(hoursRef.current);
67
67
  let pickedHours = (0, _timeUtils.getHours)(angle, previousHourType);
68
- let hours12AndPm = !hours24 && modeRef.current === 'AM';
68
+ let hours12AndPm = !hours24 && modeRef.current === 'PM';
69
69
  let hourTypeFromOffset = (0, _timeUtils.getHourTypeFromOffset)(x, y, _timeUtils.circleSize);
70
70
  let hours24AndPM = hours24 && hourTypeFromOffset === _timeUtils.hourTypes.pm; // Avoiding the "24h"
71
71
  // Should be 12h for 12 hours and PM mode
@@ -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","isV3","colors","surfaceVariant","dark","Color","surface","lighten","hex","darken","line","primary","transform","rotate","translateX","width","endPoint","StyleSheet","absoluteFill","center","middlePoint","height","position","justifyContent","alignItems","borderRadius","right","bottom","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.isV3\n ? theme.colors.surfaceVariant\n : theme.dark\n ? Color(theme.colors.surface).lighten(1.4).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:\n circleSize / 4 -\n (focused === clockTypes.hours &&\n pointerNumber >= 0 &&\n pointerNumber < 13\n ? 0\n : 4) +\n (focused === clockTypes.minutes ? 4 : 0) -\n 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: 24,\n height: 48,\n width: 48,\n position: 'absolute',\n right: 0,\n bottom: -23,\n },\n line: {\n position: 'absolute',\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,GACbhE,KAAK,CAACiE,MAAN,CAAaC,cADA,GAEblE,KAAK,CAACmE,IAAN,GACA,IAAAC,cAAA,EAAMpE,KAAK,CAACiE,MAAN,CAAaI,OAAnB,EAA4BC,OAA5B,CAAoC,GAApC,EAAyCC,GAAzC,EADA,GAEA,IAAAH,cAAA,EAAMpE,KAAK,CAACiE,MAAN,CAAaI,OAAnB,EAA4BG,MAA5B,CAAmC,GAAnC,EAAwCD,GAAxC;IALN,CAFK,CAHT,CAaE;IAbF;IAcE,MAAM,EAAE;EAdV,iBAgBE,oBAAC,iBAAD;IACE,KAAK,EAAE,CACLV,MAAM,CAACY,IADF,EAEL;MACEV,eAAe,EAAE/D,KAAK,CAACiE,MAAN,CAAaS,OADhC;MAEEC,SAAS,EAAE,CACT;QAAEC,MAAM,EAAE,CAAC,EAAD,GAAMlB,aAAa,GAAGC,gBAAtB,GAAyC;MAAnD,CADS,EAET;QACEkB,UAAU,EACRlD,qBAAA,GAAa,CAAb,IACC9B,OAAO,KAAKgC,qBAAA,CAAWlC,KAAvB,IACD+D,aAAa,IAAI,CADhB,IAEDA,aAAa,GAAG,EAFf,GAGG,CAHH,GAIG,CALJ,KAMC7D,OAAO,KAAKgC,qBAAA,CAAWjC,OAAvB,GAAiC,CAAjC,GAAqC,CANtC,IAOA6D,WAAW,GAAG;MATlB,CAFS,CAFb;MAgBEqB,KAAK,EAAEnD,qBAAA,GAAa,CAAb,GAAiB,CAAjB,GAAqB8B;IAhB9B,CAFK,CADT;IAsBE,aAAa,EAAC;EAtBhB,gBAwBE,oBAAC,iBAAD;IACE,KAAK,EAAE,CAACI,MAAM,CAACkB,QAAR,EAAkB;MAAEhB,eAAe,EAAE/D,KAAK,CAACiE,MAAN,CAAaS;IAAhC,CAAlB;EADT,EAxBF,CAhBF,eA4CE,oBAAC,iBAAD;IACE,KAAK,EAAE,CAACM,uBAAA,CAAWC,YAAZ,EAA0BpB,MAAM,CAACqB,MAAjC,CADT;IAEE,aAAa,EAAC;EAFhB,gBAIE,oBAAC,iBAAD;IACE,KAAK,EAAE,CACLrB,MAAM,CAACsB,WADF,EAEL;MACEpB,eAAe,EAAE/D,KAAK,CAACiE,MAAN,CAAaS;IADhC,CAFK;EADT,EAJF,CA5CF,eAyDE,oBAAC,8BAAD;IACE,OAAO,EAAE7E,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,EAzDF,CADF;AAiED;;AACD,MAAMiE,MAAM,GAAGmB,uBAAA,CAAWlC,MAAX,CAAkB;EAC/BgB,KAAK,EAAE;IACLsB,MAAM,EAAEzD,qBADH;IAELmD,KAAK,EAAEnD,qBAFF;IAGL0D,QAAQ,EAAE,UAHL;IAILC,cAAc,EAAE,QAJX;IAKLC,UAAU,EAAE,QALP;IAMLC,YAAY,EAAE7D,qBAAA,GAAa;EANtB,CADwB;EAS/BwD,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;IAEJD,MAAM,EAAE,CAFJ;IAGJI,YAAY,EAAE;EAHV;AAvByB,CAAlB,CAAf;;AA6BA,SAASrC,UAAT,GAAsB;EACpB,OAAO,IAAP;AACD;;4BACchD,KAAK,CAACwF,IAAN,CAAWjG,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","isV3","colors","surfaceVariant","dark","Color","surface","lighten","hex","darken","line","primary","transform","rotate","translateX","width","endPoint","StyleSheet","absoluteFill","center","middlePoint","height","position","justifyContent","alignItems","borderRadius","right","bottom","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 === 'PM'\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.isV3\n ? theme.colors.surfaceVariant\n : theme.dark\n ? Color(theme.colors.surface).lighten(1.4).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:\n circleSize / 4 -\n (focused === clockTypes.hours &&\n pointerNumber >= 0 &&\n pointerNumber < 13\n ? 0\n : 4) +\n (focused === clockTypes.minutes ? 4 : 0) -\n 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: 24,\n height: 48,\n width: 48,\n position: 'absolute',\n right: 0,\n bottom: -23,\n },\n line: {\n position: 'absolute',\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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"}
@@ -47,7 +47,7 @@ function AnalogClockHours(_ref) {
47
47
  } : null,
48
48
  variant: "bodyLarge",
49
49
  selectable: false
50
- }, mode === 'AM' && !is24Hour && i + 1 === 12 ? '00' : i + 1)))), is24Hour ? innerRange.map((a, i) => /*#__PURE__*/React.createElement(_reactNative.View, {
50
+ }, mode === 'AM' && is24Hour && i + 1 === 12 ? '00' : i + 1)))), is24Hour ? innerRange.map((a, i) => /*#__PURE__*/React.createElement(_reactNative.View, {
51
51
  key: i,
52
52
  pointerEvents: "none",
53
53
  style: [styles.innerHourRoot, {
@@ -1 +1 @@
1
- {"version":3,"names":["AnalogClockHours","is24Hour","hours","mode","React","useContext","DisplayModeContext","outerRange","getHourNumbers","circleSize","innerRange","color","useTextColorOnPrimary","map","a","i","styles","outerHourRoot","top","left","outerHourInner","innerHourRoot","innerHourInner","StyleSheet","create","position","justifyContent","alignItems","zIndex","width","height","marginLeft","marginTop","borderRadius","size","count","arrayLength","angle","step","Math","PI","radius","Array","fill","x","round","cos","y","sin","memo"],"sources":["AnalogClockHours.tsx"],"sourcesContent":["import * as React from 'react'\nimport { View, StyleSheet } from 'react-native'\nimport { Text } from 'react-native-paper'\nimport { circleSize } from './timeUtils'\nimport { useTextColorOnPrimary } from '../utils'\nimport { DisplayModeContext } from './TimePicker'\n\nfunction AnalogClockHours({\n is24Hour,\n hours,\n}: {\n is24Hour: boolean\n hours: number\n}) {\n const { mode } = React.useContext(DisplayModeContext)\n const outerRange = getHourNumbers(false, circleSize, 12, 12)\n const innerRange = getHourNumbers(true, circleSize, 12, 12)\n const color = useTextColorOnPrimary()\n\n return (\n <>\n {outerRange.map((a, i) => (\n <View\n key={i}\n pointerEvents=\"none\"\n style={[\n styles.outerHourRoot,\n {\n top: a[1] || 0,\n left: a[0] || 0,\n },\n ]}\n >\n <View style={styles.outerHourInner}>\n {/* Display 00 instead of 12 for AM hours */}\n <Text\n style={hours === i + 1 ? { color } : null}\n variant=\"bodyLarge\"\n selectable={false}\n >\n {mode === 'AM' && !is24Hour && i + 1 === 12 ? '00' : i + 1}\n </Text>\n </View>\n </View>\n ))}\n {is24Hour\n ? innerRange.map((a, i) => (\n <View\n key={i}\n pointerEvents=\"none\"\n style={[\n styles.innerHourRoot,\n {\n top: a[1] || 0,\n left: a[0] || 0,\n },\n ]}\n >\n <View style={styles.innerHourInner}>\n <Text\n selectable={false}\n style={[\n i + 13 === hours || (i + 13 === 24 && hours === 0)\n ? { color }\n : null,\n ]}\n variant=\"bodyLarge\"\n >\n {i + 13 === 24 ? '00' : i + 13}\n </Text>\n </View>\n </View>\n ))\n : null}\n </>\n )\n}\n\nconst styles = StyleSheet.create({\n outerHourRoot: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 20,\n width: 48,\n height: 48,\n marginLeft: -24,\n marginTop: -24,\n borderRadius: 24,\n },\n outerHourInner: { borderRadius: 24 },\n innerHourRoot: {\n position: 'absolute',\n zIndex: 20,\n justifyContent: 'center',\n alignItems: 'center',\n width: 48,\n height: 48,\n marginLeft: -24,\n marginTop: -24,\n borderRadius: 24,\n },\n innerHourInner: { borderRadius: 24 },\n})\n\nfunction getHourNumbers(\n is24Hour: boolean,\n size: number,\n count: number,\n arrayLength: number\n) {\n let angle = 0\n let step = (2 * Math.PI) / count\n let radius = size / (is24Hour ? 4 : 2.5)\n\n angle = (-90 * Math.PI) / 180 + Math.PI / 6\n\n return Array(arrayLength)\n .fill(true)\n .map(() => {\n let x = Math.round(size / 2 + radius * Math.cos(angle))\n let y = Math.round(size / 2 + radius * Math.sin(angle))\n angle += step\n return [x, y]\n })\n}\n\nexport default React.memo(AnalogClockHours)\n"],"mappings":"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"}
1
+ {"version":3,"names":["AnalogClockHours","is24Hour","hours","mode","React","useContext","DisplayModeContext","outerRange","getHourNumbers","circleSize","innerRange","color","useTextColorOnPrimary","map","a","i","styles","outerHourRoot","top","left","outerHourInner","innerHourRoot","innerHourInner","StyleSheet","create","position","justifyContent","alignItems","zIndex","width","height","marginLeft","marginTop","borderRadius","size","count","arrayLength","angle","step","Math","PI","radius","Array","fill","x","round","cos","y","sin","memo"],"sources":["AnalogClockHours.tsx"],"sourcesContent":["import * as React from 'react'\nimport { View, StyleSheet } from 'react-native'\nimport { Text } from 'react-native-paper'\nimport { circleSize } from './timeUtils'\nimport { useTextColorOnPrimary } from '../utils'\nimport { DisplayModeContext } from './TimePicker'\n\nfunction AnalogClockHours({\n is24Hour,\n hours,\n}: {\n is24Hour: boolean\n hours: number\n}) {\n const { mode } = React.useContext(DisplayModeContext)\n const outerRange = getHourNumbers(false, circleSize, 12, 12)\n const innerRange = getHourNumbers(true, circleSize, 12, 12)\n const color = useTextColorOnPrimary()\n\n return (\n <>\n {outerRange.map((a, i) => (\n <View\n key={i}\n pointerEvents=\"none\"\n style={[\n styles.outerHourRoot,\n {\n top: a[1] || 0,\n left: a[0] || 0,\n },\n ]}\n >\n <View style={styles.outerHourInner}>\n {/* Display 00 instead of 12 for AM hours */}\n <Text\n style={hours === i + 1 ? { color } : null}\n variant=\"bodyLarge\"\n selectable={false}\n >\n {mode === 'AM' && is24Hour && i + 1 === 12 ? '00' : i + 1}\n </Text>\n </View>\n </View>\n ))}\n {is24Hour\n ? innerRange.map((a, i) => (\n <View\n key={i}\n pointerEvents=\"none\"\n style={[\n styles.innerHourRoot,\n {\n top: a[1] || 0,\n left: a[0] || 0,\n },\n ]}\n >\n <View style={styles.innerHourInner}>\n <Text\n selectable={false}\n style={[\n i + 13 === hours || (i + 13 === 24 && hours === 0)\n ? { color }\n : null,\n ]}\n variant=\"bodyLarge\"\n >\n {i + 13 === 24 ? '00' : i + 13}\n </Text>\n </View>\n </View>\n ))\n : null}\n </>\n )\n}\n\nconst styles = StyleSheet.create({\n outerHourRoot: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 20,\n width: 48,\n height: 48,\n marginLeft: -24,\n marginTop: -24,\n borderRadius: 24,\n },\n outerHourInner: { borderRadius: 24 },\n innerHourRoot: {\n position: 'absolute',\n zIndex: 20,\n justifyContent: 'center',\n alignItems: 'center',\n width: 48,\n height: 48,\n marginLeft: -24,\n marginTop: -24,\n borderRadius: 24,\n },\n innerHourInner: { borderRadius: 24 },\n})\n\nfunction getHourNumbers(\n is24Hour: boolean,\n size: number,\n count: number,\n arrayLength: number\n) {\n let angle = 0\n let step = (2 * Math.PI) / count\n let radius = size / (is24Hour ? 4 : 2.5)\n\n angle = (-90 * Math.PI) / 180 + Math.PI / 6\n\n return Array(arrayLength)\n .fill(true)\n .map(() => {\n let x = Math.round(size / 2 + radius * Math.cos(angle))\n let y = Math.round(size / 2 + radius * Math.sin(angle))\n angle += step\n return [x, y]\n })\n}\n\nexport default React.memo(AnalogClockHours)\n"],"mappings":"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"}
@@ -254,11 +254,11 @@ function useInputColors(highlighted) {
254
254
  }
255
255
 
256
256
  function toHourInputFormat(hours, is24Hour) {
257
- if (hours === 24) {
258
- return 0;
259
- }
260
-
261
257
  if (is24Hour) {
258
+ if (hours === 24) {
259
+ return 0;
260
+ }
261
+
262
262
  return hours;
263
263
  }
264
264
 
@@ -266,6 +266,10 @@ function toHourInputFormat(hours, is24Hour) {
266
266
  return hours - 12;
267
267
  }
268
268
 
269
+ if (hours === 0) {
270
+ return hours + 12;
271
+ }
272
+
269
273
  return hours;
270
274
  }
271
275
 
@@ -274,7 +278,7 @@ function toHourOutputFormat(newHours, previousHours, is24Hour) {
274
278
  return newHours;
275
279
  }
276
280
 
277
- if (previousHours > 12 && newHours < 12) {
281
+ if (!is24Hour && previousHours === 0 || newHours === 0) {
278
282
  return newHours + 12;
279
283
  }
280
284
 
@@ -1 +1 @@
1
- {"version":3,"names":["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","useTheme","backgroundColor","React","useMemo","dark","isV3","colors","tertiaryContainer","Color","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 (hours === 24) {\n return 0\n }\n if (is24Hour) {\n return hours\n }\n if (hours > 12) {\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 > 12 && newHours < 12) {\n return newHours + 12\n }\n return newHours\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["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","useTheme","backgroundColor","React","useMemo","dark","isV3","colors","tertiaryContainer","Color","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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"}
@@ -43,7 +43,7 @@ function AnalogClock(_ref) {
43
43
  let hours24 = is24HourRef.current;
44
44
  let previousHourType = getHourType(hoursRef.current);
45
45
  let pickedHours = getHours(angle, previousHourType);
46
- let hours12AndPm = !hours24 && modeRef.current === 'AM';
46
+ let hours12AndPm = !hours24 && modeRef.current === 'PM';
47
47
  let hourTypeFromOffset = getHourTypeFromOffset(x, y, circleSize);
48
48
  let hours24AndPM = hours24 && hourTypeFromOffset === hourTypes.pm; // Avoiding the "24h"
49
49
  // Should be 12h for 12 hours and PM mode
@@ -1 +1 @@
1
- {"version":3,"names":["Color","PanResponder","StyleSheet","View","useTheme","circleSize","clockTypes","getAngle","getHours","getHourType","getHourTypeFromOffset","getMinutes","hourTypes","React","useLatest","AnalogClockHours","AnimatedClockSwitcher","AnalogClockMinutes","DisplayModeContext","AnalogClock","hours","minutes","focused","is24Hour","onChange","theme","mode","useContext","shortPointer","clockRef","useRef","hoursRef","onChangeRef","minutesRef","focusedRef","is24HourRef","modeRef","onPointerMove","useCallback","e","final","x","nativeEvent","locationX","y","locationY","angle","current","hours24","previousHourType","pickedHours","hours12AndPm","hourTypeFromOffset","hours24AndPM","pm","undefined","pickedMinutes","panResponder","create","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","onStartShouldSetPanResponder","returnTrue","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderTerminationRequest","onShouldBlockNativeResponder","dynamicSize","pointerNumber","degreesPerNumber","panHandlers","styles","clock","backgroundColor","isV3","colors","surfaceVariant","dark","surface","lighten","hex","darken","line","primary","transform","rotate","translateX","width","endPoint","absoluteFill","center","middlePoint","height","position","justifyContent","alignItems","borderRadius","right","bottom","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.isV3\n ? theme.colors.surfaceVariant\n : theme.dark\n ? Color(theme.colors.surface).lighten(1.4).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:\n circleSize / 4 -\n (focused === clockTypes.hours &&\n pointerNumber >= 0 &&\n pointerNumber < 13\n ? 0\n : 4) +\n (focused === clockTypes.minutes ? 4 : 0) -\n 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: 24,\n height: 48,\n width: 48,\n position: 'absolute',\n right: 0,\n bottom: -23,\n },\n line: {\n position: 'absolute',\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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"}
1
+ {"version":3,"names":["Color","PanResponder","StyleSheet","View","useTheme","circleSize","clockTypes","getAngle","getHours","getHourType","getHourTypeFromOffset","getMinutes","hourTypes","React","useLatest","AnalogClockHours","AnimatedClockSwitcher","AnalogClockMinutes","DisplayModeContext","AnalogClock","hours","minutes","focused","is24Hour","onChange","theme","mode","useContext","shortPointer","clockRef","useRef","hoursRef","onChangeRef","minutesRef","focusedRef","is24HourRef","modeRef","onPointerMove","useCallback","e","final","x","nativeEvent","locationX","y","locationY","angle","current","hours24","previousHourType","pickedHours","hours12AndPm","hourTypeFromOffset","hours24AndPM","pm","undefined","pickedMinutes","panResponder","create","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","onStartShouldSetPanResponder","returnTrue","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderTerminationRequest","onShouldBlockNativeResponder","dynamicSize","pointerNumber","degreesPerNumber","panHandlers","styles","clock","backgroundColor","isV3","colors","surfaceVariant","dark","surface","lighten","hex","darken","line","primary","transform","rotate","translateX","width","endPoint","absoluteFill","center","middlePoint","height","position","justifyContent","alignItems","borderRadius","right","bottom","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 === 'PM'\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.isV3\n ? theme.colors.surfaceVariant\n : theme.dark\n ? Color(theme.colors.surface).lighten(1.4).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:\n circleSize / 4 -\n (focused === clockTypes.hours &&\n pointerNumber >= 0 &&\n pointerNumber < 13\n ? 0\n : 4) +\n (focused === clockTypes.minutes ? 4 : 0) -\n 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: 24,\n height: 48,\n width: 48,\n position: 'absolute',\n right: 0,\n bottom: -23,\n },\n line: {\n position: 'absolute',\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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"}
@@ -31,7 +31,7 @@ function AnalogClockHours(_ref) {
31
31
  } : null,
32
32
  variant: "bodyLarge",
33
33
  selectable: false
34
- }, mode === 'AM' && !is24Hour && i + 1 === 12 ? '00' : i + 1)))), is24Hour ? innerRange.map((a, i) => /*#__PURE__*/React.createElement(View, {
34
+ }, mode === 'AM' && is24Hour && i + 1 === 12 ? '00' : i + 1)))), is24Hour ? innerRange.map((a, i) => /*#__PURE__*/React.createElement(View, {
35
35
  key: i,
36
36
  pointerEvents: "none",
37
37
  style: [styles.innerHourRoot, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","Text","circleSize","useTextColorOnPrimary","DisplayModeContext","AnalogClockHours","is24Hour","hours","mode","useContext","outerRange","getHourNumbers","innerRange","color","map","a","i","styles","outerHourRoot","top","left","outerHourInner","innerHourRoot","innerHourInner","create","position","justifyContent","alignItems","zIndex","width","height","marginLeft","marginTop","borderRadius","size","count","arrayLength","angle","step","Math","PI","radius","Array","fill","x","round","cos","y","sin","memo"],"sources":["AnalogClockHours.tsx"],"sourcesContent":["import * as React from 'react'\nimport { View, StyleSheet } from 'react-native'\nimport { Text } from 'react-native-paper'\nimport { circleSize } from './timeUtils'\nimport { useTextColorOnPrimary } from '../utils'\nimport { DisplayModeContext } from './TimePicker'\n\nfunction AnalogClockHours({\n is24Hour,\n hours,\n}: {\n is24Hour: boolean\n hours: number\n}) {\n const { mode } = React.useContext(DisplayModeContext)\n const outerRange = getHourNumbers(false, circleSize, 12, 12)\n const innerRange = getHourNumbers(true, circleSize, 12, 12)\n const color = useTextColorOnPrimary()\n\n return (\n <>\n {outerRange.map((a, i) => (\n <View\n key={i}\n pointerEvents=\"none\"\n style={[\n styles.outerHourRoot,\n {\n top: a[1] || 0,\n left: a[0] || 0,\n },\n ]}\n >\n <View style={styles.outerHourInner}>\n {/* Display 00 instead of 12 for AM hours */}\n <Text\n style={hours === i + 1 ? { color } : null}\n variant=\"bodyLarge\"\n selectable={false}\n >\n {mode === 'AM' && !is24Hour && i + 1 === 12 ? '00' : i + 1}\n </Text>\n </View>\n </View>\n ))}\n {is24Hour\n ? innerRange.map((a, i) => (\n <View\n key={i}\n pointerEvents=\"none\"\n style={[\n styles.innerHourRoot,\n {\n top: a[1] || 0,\n left: a[0] || 0,\n },\n ]}\n >\n <View style={styles.innerHourInner}>\n <Text\n selectable={false}\n style={[\n i + 13 === hours || (i + 13 === 24 && hours === 0)\n ? { color }\n : null,\n ]}\n variant=\"bodyLarge\"\n >\n {i + 13 === 24 ? '00' : i + 13}\n </Text>\n </View>\n </View>\n ))\n : null}\n </>\n )\n}\n\nconst styles = StyleSheet.create({\n outerHourRoot: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 20,\n width: 48,\n height: 48,\n marginLeft: -24,\n marginTop: -24,\n borderRadius: 24,\n },\n outerHourInner: { borderRadius: 24 },\n innerHourRoot: {\n position: 'absolute',\n zIndex: 20,\n justifyContent: 'center',\n alignItems: 'center',\n width: 48,\n height: 48,\n marginLeft: -24,\n marginTop: -24,\n borderRadius: 24,\n },\n innerHourInner: { borderRadius: 24 },\n})\n\nfunction getHourNumbers(\n is24Hour: boolean,\n size: number,\n count: number,\n arrayLength: number\n) {\n let angle = 0\n let step = (2 * Math.PI) / count\n let radius = size / (is24Hour ? 4 : 2.5)\n\n angle = (-90 * Math.PI) / 180 + Math.PI / 6\n\n return Array(arrayLength)\n .fill(true)\n .map(() => {\n let x = Math.round(size / 2 + radius * Math.cos(angle))\n let y = Math.round(size / 2 + radius * Math.sin(angle))\n angle += step\n return [x, y]\n })\n}\n\nexport default React.memo(AnalogClockHours)\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","StyleSheet","Text","circleSize","useTextColorOnPrimary","DisplayModeContext","AnalogClockHours","is24Hour","hours","mode","useContext","outerRange","getHourNumbers","innerRange","color","map","a","i","styles","outerHourRoot","top","left","outerHourInner","innerHourRoot","innerHourInner","create","position","justifyContent","alignItems","zIndex","width","height","marginLeft","marginTop","borderRadius","size","count","arrayLength","angle","step","Math","PI","radius","Array","fill","x","round","cos","y","sin","memo"],"sources":["AnalogClockHours.tsx"],"sourcesContent":["import * as React from 'react'\nimport { View, StyleSheet } from 'react-native'\nimport { Text } from 'react-native-paper'\nimport { circleSize } from './timeUtils'\nimport { useTextColorOnPrimary } from '../utils'\nimport { DisplayModeContext } from './TimePicker'\n\nfunction AnalogClockHours({\n is24Hour,\n hours,\n}: {\n is24Hour: boolean\n hours: number\n}) {\n const { mode } = React.useContext(DisplayModeContext)\n const outerRange = getHourNumbers(false, circleSize, 12, 12)\n const innerRange = getHourNumbers(true, circleSize, 12, 12)\n const color = useTextColorOnPrimary()\n\n return (\n <>\n {outerRange.map((a, i) => (\n <View\n key={i}\n pointerEvents=\"none\"\n style={[\n styles.outerHourRoot,\n {\n top: a[1] || 0,\n left: a[0] || 0,\n },\n ]}\n >\n <View style={styles.outerHourInner}>\n {/* Display 00 instead of 12 for AM hours */}\n <Text\n style={hours === i + 1 ? { color } : null}\n variant=\"bodyLarge\"\n selectable={false}\n >\n {mode === 'AM' && is24Hour && i + 1 === 12 ? '00' : i + 1}\n </Text>\n </View>\n </View>\n ))}\n {is24Hour\n ? innerRange.map((a, i) => (\n <View\n key={i}\n pointerEvents=\"none\"\n style={[\n styles.innerHourRoot,\n {\n top: a[1] || 0,\n left: a[0] || 0,\n },\n ]}\n >\n <View style={styles.innerHourInner}>\n <Text\n selectable={false}\n style={[\n i + 13 === hours || (i + 13 === 24 && hours === 0)\n ? { color }\n : null,\n ]}\n variant=\"bodyLarge\"\n >\n {i + 13 === 24 ? '00' : i + 13}\n </Text>\n </View>\n </View>\n ))\n : null}\n </>\n )\n}\n\nconst styles = StyleSheet.create({\n outerHourRoot: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 20,\n width: 48,\n height: 48,\n marginLeft: -24,\n marginTop: -24,\n borderRadius: 24,\n },\n outerHourInner: { borderRadius: 24 },\n innerHourRoot: {\n position: 'absolute',\n zIndex: 20,\n justifyContent: 'center',\n alignItems: 'center',\n width: 48,\n height: 48,\n marginLeft: -24,\n marginTop: -24,\n borderRadius: 24,\n },\n innerHourInner: { borderRadius: 24 },\n})\n\nfunction getHourNumbers(\n is24Hour: boolean,\n size: number,\n count: number,\n arrayLength: number\n) {\n let angle = 0\n let step = (2 * Math.PI) / count\n let radius = size / (is24Hour ? 4 : 2.5)\n\n angle = (-90 * Math.PI) / 180 + Math.PI / 6\n\n return Array(arrayLength)\n .fill(true)\n .map(() => {\n let x = Math.round(size / 2 + radius * Math.cos(angle))\n let y = Math.round(size / 2 + radius * Math.sin(angle))\n angle += step\n return [x, y]\n })\n}\n\nexport default React.memo(AnalogClockHours)\n"],"mappings":"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"}
@@ -209,11 +209,11 @@ export function useInputColors(highlighted) {
209
209
  };
210
210
  }
211
211
  export function toHourInputFormat(hours, is24Hour) {
212
- if (hours === 24) {
213
- return 0;
214
- }
215
-
216
212
  if (is24Hour) {
213
+ if (hours === 24) {
214
+ return 0;
215
+ }
216
+
217
217
  return hours;
218
218
  }
219
219
 
@@ -221,6 +221,10 @@ export function toHourInputFormat(hours, is24Hour) {
221
221
  return hours - 12;
222
222
  }
223
223
 
224
+ if (hours === 0) {
225
+ return hours + 12;
226
+ }
227
+
224
228
  return hours;
225
229
  }
226
230
  export function toHourOutputFormat(newHours, previousHours, is24Hour) {
@@ -228,7 +232,7 @@ export function toHourOutputFormat(newHours, previousHours, is24Hour) {
228
232
  return newHours;
229
233
  }
230
234
 
231
- if (previousHours > 12 && newHours < 12) {
235
+ if (!is24Hour && previousHours === 0 || newHours === 0) {
232
236
  return newHours + 12;
233
237
  }
234
238
 
@@ -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 (hours === 24) {\n return 0\n }\n if (is24Hour) {\n return hours\n }\n if (hours > 12) {\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 > 12 && newHours < 12) {\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 ((!is24Hour && previousHours === 0) || newHours === 0) {\n return newHours + 12\n }\n return newHours\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-paper-dates",
3
- "version": "0.11.7",
3
+ "version": "0.11.9",
4
4
  "description": "Performant Date Picker for React Native Paper",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -27,7 +27,7 @@
27
27
  "typecheck": "tsc --noEmit",
28
28
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
29
29
  "prepare": "husky install && bob build",
30
- "release": "release-it --ci",
30
+ "release": "release-it --ci --github.autoGenerate",
31
31
  "example": "yarn --cwd example",
32
32
  "pods": "cd example && pod-install --quiet",
33
33
  "bootstrap": "yarn example && yarn && yarn pods",
@@ -63,7 +63,7 @@ function AnalogClock({
63
63
  let previousHourType = getHourType(hoursRef.current)
64
64
  let pickedHours = getHours(angle, previousHourType)
65
65
 
66
- let hours12AndPm = !hours24 && modeRef.current === 'AM'
66
+ let hours12AndPm = !hours24 && modeRef.current === 'PM'
67
67
 
68
68
  let hourTypeFromOffset = getHourTypeFromOffset(x, y, circleSize)
69
69
  let hours24AndPM = hours24 && hourTypeFromOffset === hourTypes.pm
@@ -38,7 +38,7 @@ function AnalogClockHours({
38
38
  variant="bodyLarge"
39
39
  selectable={false}
40
40
  >
41
- {mode === 'AM' && !is24Hour && i + 1 === 12 ? '00' : i + 1}
41
+ {mode === 'AM' && is24Hour && i + 1 === 12 ? '00' : i + 1}
42
42
  </Text>
43
43
  </View>
44
44
  </View>
@@ -242,15 +242,18 @@ export function useInputColors(highlighted: boolean) {
242
242
  }
243
243
 
244
244
  export function toHourInputFormat(hours: number, is24Hour: boolean): number {
245
- if (hours === 24) {
246
- return 0
247
- }
248
245
  if (is24Hour) {
246
+ if (hours === 24) {
247
+ return 0
248
+ }
249
249
  return hours
250
250
  }
251
251
  if (hours > 12) {
252
252
  return hours - 12
253
253
  }
254
+ if (hours === 0) {
255
+ return hours + 12
256
+ }
254
257
  return hours
255
258
  }
256
259
 
@@ -262,7 +265,7 @@ export function toHourOutputFormat(
262
265
  if (is24Hour) {
263
266
  return newHours
264
267
  }
265
- if (previousHours > 12 && newHours < 12) {
268
+ if ((!is24Hour && previousHours === 0) || newHours === 0) {
266
269
  return newHours + 12
267
270
  }
268
271
  return newHours