react-native-paper-dates 0.4.6 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -22
- package/lib/commonjs/Date/AnimatedCrossView.js +9 -8
- package/lib/commonjs/Date/AnimatedCrossView.js.map +1 -1
- package/lib/commonjs/Date/AutoSizer.js +6 -5
- package/lib/commonjs/Date/AutoSizer.js.map +1 -1
- package/lib/commonjs/Date/Calendar.js +46 -39
- package/lib/commonjs/Date/Calendar.js.map +1 -1
- package/lib/commonjs/Date/CalendarEdit.js +32 -111
- package/lib/commonjs/Date/CalendarEdit.js.map +1 -1
- package/lib/commonjs/Date/CalendarHeader.js +23 -12
- package/lib/commonjs/Date/CalendarHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerInput.js +93 -20
- package/lib/commonjs/Date/DatePickerInput.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModal.js +2 -2
- package/lib/commonjs/Date/DatePickerModalContent.js +7 -4
- package/lib/commonjs/Date/DatePickerModalContent.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalContentHeader.js +43 -34
- package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalHeader.js +12 -5
- package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalHeaderBackground.js +6 -5
- package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
- package/lib/commonjs/Date/DateRangeInput.js +23 -24
- package/lib/commonjs/Date/DateRangeInput.js.map +1 -1
- package/lib/commonjs/Date/Day.js +7 -3
- package/lib/commonjs/Date/Day.js.map +1 -1
- package/lib/commonjs/Date/DayName.js +6 -5
- package/lib/commonjs/Date/DayName.js.map +1 -1
- package/lib/commonjs/Date/DayNames.js +7 -6
- package/lib/commonjs/Date/DayNames.js.map +1 -1
- package/lib/commonjs/Date/DayRange.js +9 -8
- package/lib/commonjs/Date/DayRange.js.map +1 -1
- package/lib/commonjs/Date/Month.js +59 -49
- package/lib/commonjs/Date/Month.js.map +1 -1
- package/lib/commonjs/Date/Swiper.js +35 -29
- package/lib/commonjs/Date/Swiper.js.map +1 -1
- package/lib/commonjs/Date/Swiper.native.js +29 -23
- package/lib/commonjs/Date/Swiper.native.js.map +1 -1
- package/lib/commonjs/Date/SwiperUtils.js +7 -6
- package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
- package/lib/commonjs/Date/YearPicker.js +30 -20
- package/lib/commonjs/Date/YearPicker.js.map +1 -1
- package/lib/commonjs/Date/dateUtils.js +106 -37
- package/lib/commonjs/Date/dateUtils.js.map +1 -1
- package/lib/commonjs/Date/inputUtils.js +84 -0
- package/lib/commonjs/Date/inputUtils.js.map +1 -0
- package/lib/commonjs/TextInputMask.js +11 -10
- package/lib/commonjs/TextInputMask.js.map +1 -1
- package/lib/commonjs/Time/AmPmSwitcher.js +37 -19
- package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
- package/lib/commonjs/Time/AnalogClock.js +25 -15
- package/lib/commonjs/Time/AnalogClock.js.map +1 -1
- package/lib/commonjs/Time/AnalogClockHours.js +17 -11
- package/lib/commonjs/Time/AnalogClockHours.js.map +1 -1
- package/lib/commonjs/Time/AnalogClockMinutes.js +7 -6
- package/lib/commonjs/Time/AnalogClockMinutes.js.map +1 -1
- package/lib/commonjs/Time/AnimatedClockSwitcher.js +8 -7
- package/lib/commonjs/Time/AnimatedClockSwitcher.js.map +1 -1
- package/lib/commonjs/Time/TimeInput.js +16 -12
- package/lib/commonjs/Time/TimeInput.js.map +1 -1
- package/lib/commonjs/Time/TimeInputs.js +12 -11
- package/lib/commonjs/Time/TimeInputs.js.map +1 -1
- package/lib/commonjs/Time/TimePicker.js +37 -15
- package/lib/commonjs/Time/TimePicker.js.map +1 -1
- package/lib/commonjs/Time/TimePickerModal.js +19 -15
- package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
- package/lib/commonjs/Time/timeUtils.js +14 -9
- package/lib/commonjs/Time/timeUtils.js.map +1 -1
- package/lib/commonjs/index.js +66 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/translations/en.js +25 -0
- package/lib/commonjs/translations/en.js.map +1 -0
- package/lib/commonjs/translations/enGB.js +25 -0
- package/lib/commonjs/translations/enGB.js.map +1 -0
- package/lib/commonjs/translations/nl.js +25 -0
- package/lib/commonjs/translations/nl.js.map +1 -0
- package/lib/commonjs/translations/pl.js +25 -0
- package/lib/commonjs/translations/pl.js.map +1 -0
- package/lib/commonjs/translations/utils.js +31 -0
- package/lib/commonjs/translations/utils.js.map +1 -0
- package/lib/commonjs/utils.js +19 -9
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/Date/AnimatedCrossView.js +7 -6
- package/lib/module/Date/AnimatedCrossView.js.map +1 -1
- package/lib/module/Date/AutoSizer.js +4 -3
- package/lib/module/Date/AutoSizer.js.map +1 -1
- package/lib/module/Date/Calendar.js +46 -39
- package/lib/module/Date/Calendar.js.map +1 -1
- package/lib/module/Date/CalendarEdit.js +28 -104
- package/lib/module/Date/CalendarEdit.js.map +1 -1
- package/lib/module/Date/CalendarHeader.js +19 -9
- package/lib/module/Date/CalendarHeader.js.map +1 -1
- package/lib/module/Date/DatePickerInput.js +88 -18
- package/lib/module/Date/DatePickerInput.js.map +1 -1
- package/lib/module/Date/DatePickerModalContent.js +5 -2
- package/lib/module/Date/DatePickerModalContent.js.map +1 -1
- package/lib/module/Date/DatePickerModalContentHeader.js +38 -30
- package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
- package/lib/module/Date/DatePickerModalHeader.js +9 -3
- package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
- package/lib/module/Date/DatePickerModalHeaderBackground.js +4 -3
- package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
- package/lib/module/Date/DateRangeInput.js +22 -22
- package/lib/module/Date/DateRangeInput.js.map +1 -1
- package/lib/module/Date/Day.js +5 -1
- package/lib/module/Date/Day.js.map +1 -1
- package/lib/module/Date/DayName.js +4 -3
- package/lib/module/Date/DayName.js.map +1 -1
- package/lib/module/Date/DayNames.js +5 -4
- package/lib/module/Date/DayNames.js.map +1 -1
- package/lib/module/Date/DayRange.js +7 -6
- package/lib/module/Date/DayRange.js.map +1 -1
- package/lib/module/Date/Month.js +54 -45
- package/lib/module/Date/Month.js.map +1 -1
- package/lib/module/Date/Swiper.js +32 -26
- package/lib/module/Date/Swiper.js.map +1 -1
- package/lib/module/Date/Swiper.native.js +27 -21
- package/lib/module/Date/Swiper.native.js.map +1 -1
- package/lib/module/Date/SwiperUtils.js +5 -4
- package/lib/module/Date/SwiperUtils.js.map +1 -1
- package/lib/module/Date/YearPicker.js +28 -18
- package/lib/module/Date/YearPicker.js.map +1 -1
- package/lib/module/Date/dateUtils.js +78 -29
- package/lib/module/Date/dateUtils.js.map +1 -1
- package/lib/module/Date/inputUtils.js +70 -0
- package/lib/module/Date/inputUtils.js.map +1 -0
- package/lib/module/TextInputMask.js +9 -8
- package/lib/module/TextInputMask.js.map +1 -1
- package/lib/module/Time/AmPmSwitcher.js +35 -18
- package/lib/module/Time/AmPmSwitcher.js.map +1 -1
- package/lib/module/Time/AnalogClock.js +23 -14
- package/lib/module/Time/AnalogClock.js.map +1 -1
- package/lib/module/Time/AnalogClockHours.js +14 -9
- package/lib/module/Time/AnalogClockHours.js.map +1 -1
- package/lib/module/Time/AnalogClockMinutes.js +5 -4
- package/lib/module/Time/AnalogClockMinutes.js.map +1 -1
- package/lib/module/Time/AnimatedClockSwitcher.js +6 -5
- package/lib/module/Time/AnimatedClockSwitcher.js.map +1 -1
- package/lib/module/Time/TimeInput.js +14 -10
- package/lib/module/Time/TimeInput.js.map +1 -1
- package/lib/module/Time/TimeInputs.js +10 -9
- package/lib/module/Time/TimeInputs.js.map +1 -1
- package/lib/module/Time/TimePicker.js +32 -12
- package/lib/module/Time/TimePicker.js.map +1 -1
- package/lib/module/Time/TimePickerModal.js +17 -13
- package/lib/module/Time/TimePickerModal.js.map +1 -1
- package/lib/module/Time/timeUtils.js +5 -1
- package/lib/module/Time/timeUtils.js.map +1 -1
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/translations/en.js +18 -0
- package/lib/module/translations/en.js.map +1 -0
- package/lib/module/translations/enGB.js +18 -0
- package/lib/module/translations/enGB.js.map +1 -0
- package/lib/module/translations/nl.js +18 -0
- package/lib/module/translations/nl.js.map +1 -0
- package/lib/module/translations/pl.js +18 -0
- package/lib/module/translations/pl.js.map +1 -0
- package/lib/module/translations/utils.js +22 -0
- package/lib/module/translations/utils.js.map +1 -0
- package/lib/module/utils.js +11 -5
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/{src/Date → Date}/AnimatedCrossView.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/AutoSizer.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/Calendar.d.ts +5 -3
- package/lib/typescript/{src/Date → Date}/CalendarEdit.d.ts +3 -3
- package/lib/typescript/{src/Date → Date}/CalendarHeader.d.ts +1 -1
- package/lib/typescript/Date/DatePickerInput.d.ts +18 -0
- package/lib/typescript/{src/Date → Date}/DatePickerModal.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/DatePickerModalContent.d.ts +2 -1
- package/lib/typescript/{src/Date → Date}/DatePickerModalContentHeader.d.ts +4 -4
- package/lib/typescript/{src/Date → Date}/DatePickerModalHeader.d.ts +1 -0
- package/lib/typescript/{src/Date → Date}/DatePickerModalHeaderBackground.d.ts +0 -0
- package/lib/typescript/Date/DateRangeInput.d.ts +3 -0
- package/lib/typescript/{src/Date → Date}/Day.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/DayName.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/DayNames.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/DayRange.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/Month.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/Swiper.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/Swiper.native.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/SwiperUtils.d.ts +1 -1
- package/lib/typescript/{src/Date → Date}/Week.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/YearPicker.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/dateUtils.d.ts +15 -0
- package/lib/typescript/{src/Date → Date}/dateUtils.test.d.ts +0 -0
- package/lib/typescript/Date/inputUtils.d.ts +14 -0
- package/lib/typescript/TextInputMask.d.ts +11 -0
- package/lib/typescript/Time/AmPmSwitcher.d.ts +4 -0
- package/lib/typescript/{src/Time → Time}/AnalogClock.d.ts +1 -1
- package/lib/typescript/{src/Time → Time}/AnalogClockHours.d.ts +0 -0
- package/lib/typescript/{src/Time → Time}/AnalogClockMinutes.d.ts +0 -0
- package/lib/typescript/{src/Time → Time}/AnimatedClockSwitcher.d.ts +0 -0
- package/lib/typescript/{src/Time → Time}/TimeInput.d.ts +0 -0
- package/lib/typescript/{src/Time → Time}/TimeInputs.d.ts +1 -1
- package/lib/typescript/{src/Time → Time}/TimePicker.d.ts +4 -0
- package/lib/typescript/{src/Time → Time}/TimePickerModal.d.ts +1 -1
- package/lib/typescript/{src/Time → Time}/timeUtils.d.ts +0 -0
- package/lib/typescript/index.d.ts +13 -0
- package/lib/typescript/translations/en.d.ts +3 -0
- package/lib/typescript/translations/enGB.d.ts +3 -0
- package/lib/typescript/translations/nl.d.ts +3 -0
- package/lib/typescript/translations/pl.d.ts +3 -0
- package/lib/typescript/translations/utils.d.ts +18 -0
- package/lib/typescript/utils.d.ts +58 -0
- package/package.json +39 -38
- package/src/.DS_Store +0 -0
- package/src/Date/Calendar.tsx +14 -13
- package/src/Date/CalendarEdit.tsx +17 -121
- package/src/Date/CalendarHeader.tsx +18 -3
- package/src/Date/DatePickerInput.tsx +103 -25
- package/src/Date/DatePickerModalContent.tsx +5 -1
- package/src/Date/DatePickerModalContentHeader.tsx +26 -12
- package/src/Date/DatePickerModalHeader.tsx +8 -1
- package/src/Date/DateRangeInput.tsx +26 -17
- package/src/Date/Day.tsx +4 -0
- package/src/Date/Month.tsx +20 -44
- package/src/Date/Swiper.tsx +1 -0
- package/src/Date/SwiperUtils.ts +1 -1
- package/src/Date/YearPicker.tsx +6 -1
- package/src/Date/dateUtils.tsx +70 -9
- package/src/Date/inputUtils.ts +94 -0
- package/src/TextInputMask.tsx +10 -3
- package/src/Time/AmPmSwitcher.tsx +20 -11
- package/src/Time/AnalogClock.tsx +12 -14
- package/src/Time/AnalogClockHours.tsx +14 -5
- package/src/Time/AnalogClockMinutes.tsx +4 -1
- package/src/Time/TimeInput.tsx +3 -0
- package/src/Time/TimeInputs.tsx +1 -5
- package/src/Time/TimePicker.tsx +44 -22
- package/src/Time/TimePickerModal.tsx +4 -1
- package/src/Time/timeUtils.ts +4 -1
- package/src/index.tsx +7 -0
- package/src/translations/en.ts +20 -0
- package/src/translations/enGB.ts +20 -0
- package/src/translations/nl.ts +20 -0
- package/src/translations/pl.ts +21 -0
- package/src/translations/utils.ts +47 -0
- package/src/utils.ts +13 -5
- package/lib/typescript/src/Date/DatePickerInput.d.ts +0 -1
- package/lib/typescript/src/Date/DateRangeInput.d.ts +0 -1
- package/lib/typescript/src/TextInputMask.d.ts +0 -3
- package/lib/typescript/src/Time/AmPmSwitcher.d.ts +0 -4
- package/lib/typescript/src/index.d.ts +0 -6
- package/lib/typescript/src/utils.d.ts +0 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["inputUtils.ts"],"names":["useDateInput","locale","value","validRange","inputMode","onChange","isDisabled","isWithinValidRange","validStart","validEnd","error","setError","React","useState","formatter","inputFormat","formattedValue","format","onChangeText","date","dayIndex","indexOf","monthIndex","yearIndex","day","Number","slice","year","month","isNaN","finalDate","Date","errors","filter","n","join"],"mappings":"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","sourcesContent":["import { useInputFormat, useInputFormatter, useRangeChecker } from './dateUtils'\nimport * as React from 'react'\nimport type { ValidRangeType } from './Calendar'\nimport { getTranslation } from 'react-native-paper-dates'\n\nexport default function useDateInput({\n locale,\n value,\n validRange,\n inputMode,\n onChange,\n}: {\n onChange: (d: Date) => void\n locale: undefined | string\n value: Date | undefined\n validRange: ValidRangeType | undefined\n inputMode: 'start' | 'end'\n}) {\n const { isDisabled, isWithinValidRange, validStart, validEnd } =\n useRangeChecker(validRange)\n const [error, setError] = React.useState<null | string>(null)\n const formatter = useInputFormatter({ locale })\n const inputFormat = useInputFormat({ formatter })\n const formattedValue = formatter.format(value)\n const onChangeText = (date: string) => {\n const dayIndex = inputFormat.indexOf('DD')\n const monthIndex = inputFormat.indexOf('MM')\n const yearIndex = inputFormat.indexOf('YYYY')\n\n const day = Number(date.slice(dayIndex, dayIndex + 2))\n const year = Number(date.slice(yearIndex, yearIndex + 4))\n const month = Number(date.slice(monthIndex, monthIndex + 2))\n\n if (Number.isNaN(day) || Number.isNaN(year) || Number.isNaN(month)) {\n setError(\n getTranslation(\n locale,\n 'notAccordingToDateFormat',\n () => 'notAccordingToDateFormat'\n )(inputFormat)\n )\n return\n }\n\n const finalDate =\n inputMode === 'end'\n ? new Date(year, month - 1, day, 23, 59, 59)\n : new Date(year, month - 1, day)\n\n if (isDisabled(finalDate)) {\n setError(getTranslation(locale, 'dateIsDisabled'))\n return\n }\n if (!isWithinValidRange(finalDate)) {\n let errors =\n validStart && validEnd\n ? [\n `${getTranslation(locale, 'mustBeBetween')} ${formatter.format(\n validStart\n )} - ${formatter.format(validEnd)}`,\n ]\n : [\n validStart\n ? `${getTranslation(\n locale,\n 'mustBeHigherThan'\n )} ${formatter.format(validStart)}`\n : '',\n validEnd\n ? `${getTranslation(\n locale,\n 'mustBeLowerThan'\n )} ${formatter.format(validEnd)}`\n : '',\n ]\n setError(errors.filter((n) => n).join(' '))\n return\n }\n\n setError(null)\n if (inputMode === 'end') {\n onChange(finalDate)\n } else {\n onChange(finalDate)\n }\n }\n return {\n onChange,\n error,\n formattedValue,\n onChangeText,\n inputFormat,\n }\n}\n"]}
|
|
@@ -9,9 +9,9 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _reactNativePaper = require("react-native-paper");
|
|
11
11
|
|
|
12
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
12
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
13
|
|
|
14
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
15
|
|
|
16
16
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
17
17
|
|
|
@@ -67,13 +67,14 @@ function enhanceTextWithMask(text, mask, previousValue) {
|
|
|
67
67
|
return finalString.join(splitCharacter);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
function TextInputWithMask({
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
70
|
+
function TextInputWithMask(_ref, ref) {
|
|
71
|
+
let {
|
|
72
|
+
onChangeText,
|
|
73
|
+
value,
|
|
74
|
+
mask,
|
|
75
|
+
...rest
|
|
76
|
+
} = _ref;
|
|
77
|
+
const [controlledValue, setControlledValue] = React.useState(value || '');
|
|
77
78
|
|
|
78
79
|
const onInnerChange = text => {
|
|
79
80
|
const enhancedText = enhanceTextWithMask(text, mask, controlledValue);
|
|
@@ -85,7 +86,7 @@ function TextInputWithMask({
|
|
|
85
86
|
};
|
|
86
87
|
|
|
87
88
|
React.useEffect(() => {
|
|
88
|
-
setControlledValue(value);
|
|
89
|
+
setControlledValue(value || '');
|
|
89
90
|
}, [value]);
|
|
90
91
|
return /*#__PURE__*/React.createElement(_reactNativePaper.TextInput, _extends({
|
|
91
92
|
ref: ref
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["TextInputMask.tsx"],"names":["splitCharacters","detectCharacter","mask","c","find","ch","includes","enhanceTextWithMask","text","previousValue","isBackSpace","length","splitCharacter","maskParts","split","textParts","finalString","maskPartIndex","partString","maskPart","textPart","maskDigitIndex","currentCharacter","undefined","character","push","join","lastPart","lastMaskPart","TextInputWithMask","onChangeText","value","rest","
|
|
1
|
+
{"version":3,"sources":["TextInputMask.tsx"],"names":["splitCharacters","detectCharacter","mask","c","find","ch","includes","enhanceTextWithMask","text","previousValue","isBackSpace","length","splitCharacter","maskParts","split","textParts","finalString","maskPartIndex","partString","maskPart","textPart","maskDigitIndex","currentCharacter","undefined","character","push","join","lastPart","lastMaskPart","TextInputWithMask","ref","onChangeText","value","rest","controlledValue","setControlledValue","React","useState","onInnerChange","enhancedText","useEffect","forwardRef"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { TextInput } from 'react-native-paper'\n\nconst splitCharacters = ['-', '/', '.', '年', ' ']\nfunction detectCharacter(mask: string): string {\n const c = splitCharacters.find((ch) => mask.includes(ch))\n return c || ''\n}\n\nfunction enhanceTextWithMask(\n text: string,\n mask: string,\n previousValue: string\n): string {\n const isBackSpace = previousValue.length > text.length\n const splitCharacter = detectCharacter(mask)\n\n const maskParts = mask.split(splitCharacter)\n const textParts = text.split(splitCharacter)\n\n let finalString: string[] = []\n for (let maskPartIndex = 0; maskPartIndex < mask.length; maskPartIndex++) {\n let partString: string[] = []\n\n const maskPart = maskParts[maskPartIndex]\n const textPart = textParts[maskPartIndex]\n if (!textPart) {\n continue\n }\n\n for (\n let maskDigitIndex = 0;\n maskDigitIndex < maskPart.length;\n maskDigitIndex++\n ) {\n const currentCharacter = textPart[maskDigitIndex]\n\n if (isBackSpace && currentCharacter === undefined) {\n continue\n }\n\n const character = textPart[maskDigitIndex]\n\n if (character !== undefined) {\n partString.push(character)\n }\n }\n\n finalString.push(partString.join(''))\n }\n\n const lastPart = finalString[finalString.length - 1]\n const lastMaskPart = maskParts[finalString.length - 1]\n if (\n // if mask is completed\n finalString.length !== maskParts.length &&\n // or ...\n lastPart &&\n lastMaskPart &&\n lastPart.length === lastMaskPart.length\n ) {\n return (\n finalString.join(splitCharacter) + (isBackSpace ? '' : splitCharacter)\n )\n }\n return finalString.join(splitCharacter)\n}\n\nfunction TextInputWithMask(\n {\n onChangeText,\n value,\n mask,\n ...rest\n }: React.ComponentProps<typeof TextInput> & { mask: string },\n ref: any\n) {\n const [controlledValue, setControlledValue] = React.useState<string>(\n value || ''\n )\n\n const onInnerChange = (text: string) => {\n const enhancedText = enhanceTextWithMask(text, mask, controlledValue)\n setControlledValue(enhancedText)\n\n if (text.length === mask.length) {\n onChangeText && onChangeText(text)\n }\n }\n\n React.useEffect(() => {\n setControlledValue(value || '')\n }, [value])\n\n return (\n <TextInput\n ref={ref}\n {...rest}\n value={controlledValue}\n onChangeText={onInnerChange}\n />\n )\n}\n\nexport default React.forwardRef(TextInputWithMask)\n"]}
|
|
@@ -15,16 +15,23 @@ var _color = _interopRequireDefault(require("color"));
|
|
|
15
15
|
|
|
16
16
|
var _timeUtils = require("./timeUtils");
|
|
17
17
|
|
|
18
|
+
var _TimePicker = require("./TimePicker");
|
|
19
|
+
|
|
18
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
21
|
|
|
20
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
23
|
|
|
22
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
24
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
25
|
|
|
24
|
-
function AmPmSwitcher({
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
function AmPmSwitcher(_ref) {
|
|
27
|
+
let {
|
|
28
|
+
onChange,
|
|
29
|
+
hours
|
|
30
|
+
} = _ref;
|
|
31
|
+
const {
|
|
32
|
+
setMode,
|
|
33
|
+
mode
|
|
34
|
+
} = React.useContext(_TimePicker.DisplayModeContext);
|
|
28
35
|
const theme = (0, _reactNativePaper.useTheme)();
|
|
29
36
|
const backgroundColor = (0, React.useMemo)(() => {
|
|
30
37
|
if (theme.dark) {
|
|
@@ -33,9 +40,7 @@ function AmPmSwitcher({
|
|
|
33
40
|
|
|
34
41
|
return (0, _color.default)(theme.colors.surface).darken(0.1).hex();
|
|
35
42
|
}, [theme]);
|
|
36
|
-
const
|
|
37
|
-
const isAM = hourType === _timeUtils.hourTypes.am;
|
|
38
|
-
const isPM = hourType === _timeUtils.hourTypes.pm;
|
|
43
|
+
const isAM = mode === 'AM';
|
|
39
44
|
return /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
40
45
|
style: [styles.root, {
|
|
41
46
|
borderColor: backgroundColor,
|
|
@@ -43,7 +48,13 @@ function AmPmSwitcher({
|
|
|
43
48
|
}]
|
|
44
49
|
}, /*#__PURE__*/React.createElement(SwitchButton, {
|
|
45
50
|
label: "AM",
|
|
46
|
-
onPress:
|
|
51
|
+
onPress: () => {
|
|
52
|
+
setMode('AM');
|
|
53
|
+
|
|
54
|
+
if (hours - 12 >= 0) {
|
|
55
|
+
onChange(hours - 12);
|
|
56
|
+
}
|
|
57
|
+
},
|
|
47
58
|
selected: isAM,
|
|
48
59
|
disabled: isAM
|
|
49
60
|
}), /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
@@ -52,18 +63,25 @@ function AmPmSwitcher({
|
|
|
52
63
|
}]
|
|
53
64
|
}), /*#__PURE__*/React.createElement(SwitchButton, {
|
|
54
65
|
label: "PM",
|
|
55
|
-
onPress:
|
|
56
|
-
|
|
57
|
-
|
|
66
|
+
onPress: () => {
|
|
67
|
+
setMode('PM');
|
|
68
|
+
|
|
69
|
+
if (hours + 12 <= 24) {
|
|
70
|
+
onChange(hours + 12);
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
selected: !isAM,
|
|
74
|
+
disabled: !isAM
|
|
58
75
|
}));
|
|
59
76
|
}
|
|
60
77
|
|
|
61
|
-
function SwitchButton({
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
78
|
+
function SwitchButton(_ref2) {
|
|
79
|
+
let {
|
|
80
|
+
label,
|
|
81
|
+
onPress,
|
|
82
|
+
selected,
|
|
83
|
+
disabled
|
|
84
|
+
} = _ref2;
|
|
67
85
|
const theme = (0, _reactNativePaper.useTheme)();
|
|
68
86
|
const {
|
|
69
87
|
backgroundColor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["AmPmSwitcher.tsx"],"names":["AmPmSwitcher","
|
|
1
|
+
{"version":3,"sources":["AmPmSwitcher.tsx"],"names":["AmPmSwitcher","onChange","hours","setMode","mode","React","useContext","DisplayModeContext","theme","backgroundColor","dark","colors","surface","lighten","hex","darken","isAM","styles","root","borderColor","borderRadius","roundness","switchSeparator","SwitchButton","label","onPress","selected","disabled","color","switchButton","switchButtonInner","fonts","medium","StyleSheet","create","width","height","borderWidth","overflow","flex","alignItems","justifyContent"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;AAEe,SAASA,YAAT,OAMZ;AAAA,MANkC;AACnCC,IAAAA,QADmC;AAEnCC,IAAAA;AAFmC,GAMlC;AACD,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,MAAoBC,KAAK,CAACC,UAAN,CAAiBC,8BAAjB,CAA1B;AACA,QAAMC,KAAK,GAAG,iCAAd;AACA,QAAMC,eAAe,GAAG,mBAAgB,MAAM;AAC5C,QAAID,KAAK,CAACE,IAAV,EAAgB;AACd,aAAO,oBAAMF,KAAK,CAACG,MAAN,CAAaC,OAAnB,EAA4BC,OAA5B,CAAoC,GAApC,EAAyCC,GAAzC,EAAP;AACD;;AACD,WAAO,oBAAMN,KAAK,CAACG,MAAN,CAAaC,OAAnB,EAA4BG,MAA5B,CAAmC,GAAnC,EAAwCD,GAAxC,EAAP;AACD,GALuB,EAKrB,CAACN,KAAD,CALqB,CAAxB;AAOA,QAAMQ,IAAI,GAAGZ,IAAI,KAAK,IAAtB;AACA,sBACE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLa,MAAM,CAACC,IADF,EAEL;AACEC,MAAAA,WAAW,EAAEV,eADf;AAEEW,MAAAA,YAAY,EAAEZ,KAAK,CAACa;AAFtB,KAFK;AADT,kBASE,oBAAC,YAAD;AACE,IAAA,KAAK,EAAC,IADR;AAEE,IAAA,OAAO,EAAE,MAAM;AACblB,MAAAA,OAAO,CAAC,IAAD,CAAP;;AACA,UAAID,KAAK,GAAG,EAAR,IAAc,CAAlB,EAAqB;AACnBD,QAAAA,QAAQ,CAACC,KAAK,GAAG,EAAT,CAAR;AACD;AACF,KAPH;AAQE,IAAA,QAAQ,EAAEc,IARZ;AASE,IAAA,QAAQ,EAAEA;AATZ,IATF,eAoBE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACC,MAAM,CAACK,eAAR,EAAyB;AAAEb,MAAAA;AAAF,KAAzB;AAAb,IApBF,eAqBE,oBAAC,YAAD;AACE,IAAA,KAAK,EAAC,IADR;AAEE,IAAA,OAAO,EAAE,MAAM;AACbN,MAAAA,OAAO,CAAC,IAAD,CAAP;;AACA,UAAID,KAAK,GAAG,EAAR,IAAc,EAAlB,EAAsB;AACpBD,QAAAA,QAAQ,CAACC,KAAK,GAAG,EAAT,CAAR;AACD;AACF,KAPH;AAQE,IAAA,QAAQ,EAAE,CAACc,IARb;AASE,IAAA,QAAQ,EAAE,CAACA;AATb,IArBF,CADF;AAmCD;;AAED,SAASO,YAAT,QAUG;AAAA,MAVmB;AACpBC,IAAAA,KADoB;AAEpBC,IAAAA,OAFoB;AAGpBC,IAAAA,QAHoB;AAIpBC,IAAAA;AAJoB,GAUnB;AACD,QAAMnB,KAAK,GAAG,iCAAd;AACA,QAAM;AAAEC,IAAAA,eAAF;AAAmBmB,IAAAA;AAAnB,MAA6B,gCAAgBF,QAAhB,CAAnC;AAEA,sBACE,oBAAC,iCAAD;AACE,IAAA,OAAO,EAAED,OADX;AAEE,IAAA,KAAK,EAAER,MAAM,CAACY,YAFhB;AAGE,IAAA,kBAAkB,EAAEL,KAHtB,CAIE;AAJF;AAKE,IAAA,mBAAmB,EAAEG,QAAQ,GAAG,CAAC,QAAD,EAAW,UAAX,CAAH,GAA4B,QAL3D,CAME;AANF;AAOE,IAAA,0BAA0B,EAAC,QAP7B;AAQE,IAAA,iBAAiB,EAAC,QARpB;AASE,IAAA,kBAAkB,EAAE;AAAEA,MAAAA;AAAF,KATtB;AAUE,IAAA,QAAQ,EAAEA;AAVZ,kBAYE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACV,MAAM,CAACa,iBAAR,EAA2B;AAAErB,MAAAA;AAAF,KAA3B;AAAb,kBACE,oBAAC,sBAAD;AACE,IAAA,UAAU,EAAE,KADd;AAEE,IAAA,KAAK,EAAE,CACL,EACE,GAAGD,KAAK,CAACuB,KAAN,CAAYC,MADjB;AAEEJ,MAAAA,KAAK,EAAEA;AAFT,KADK;AAFT,KASGJ,KATH,CADF,CAZF,CADF;AA4BD;;AAED,MAAMP,MAAM,GAAGgB,wBAAWC,MAAX,CAAkB;AAC/BhB,EAAAA,IAAI,EAAE;AACJiB,IAAAA,KAAK,EAAE,EADH;AAEJC,IAAAA,MAAM,EAAE,EAFJ;AAGJC,IAAAA,WAAW,EAAE,CAHT;AAIJC,IAAAA,QAAQ,EAAE;AAJN,GADyB;AAO/BhB,EAAAA,eAAe,EAAE;AACfc,IAAAA,MAAM,EAAE,CADO;AAEfD,IAAAA,KAAK,EAAE;AAFQ,GAPc;AAW/BN,EAAAA,YAAY,EAAE;AACZU,IAAAA,IAAI,EAAE;AADM,GAXiB;AAc/BT,EAAAA,iBAAiB,EAAE;AACjBS,IAAAA,IAAI,EAAE,CADW;AAEjBC,IAAAA,UAAU,EAAE,QAFK;AAGjBC,IAAAA,cAAc,EAAE;AAHC;AAdY,CAAlB,CAAf","sourcesContent":["import * as React from 'react'\nimport { View, StyleSheet } from 'react-native'\nimport { Text, TouchableRipple, useTheme } from 'react-native-paper'\nimport { useMemo } from 'react'\nimport Color from 'color'\nimport { useSwitchColors } from './timeUtils'\nimport { DisplayModeContext } from './TimePicker'\n\nexport default function AmPmSwitcher({\n onChange,\n hours,\n}: {\n hours: number\n onChange: (newHours: number) => any\n}) {\n const { setMode, mode } = React.useContext(DisplayModeContext)\n const theme = useTheme()\n const backgroundColor = useMemo<string>(() => {\n if (theme.dark) {\n return Color(theme.colors.surface).lighten(1.2).hex()\n }\n return Color(theme.colors.surface).darken(0.1).hex()\n }, [theme])\n\n const isAM = mode === 'AM'\n return (\n <View\n style={[\n styles.root,\n {\n borderColor: backgroundColor,\n borderRadius: theme.roundness,\n },\n ]}\n >\n <SwitchButton\n label=\"AM\"\n onPress={() => {\n setMode('AM')\n if (hours - 12 >= 0) {\n onChange(hours - 12)\n }\n }}\n selected={isAM}\n disabled={isAM}\n />\n <View style={[styles.switchSeparator, { backgroundColor }]} />\n <SwitchButton\n label=\"PM\"\n onPress={() => {\n setMode('PM')\n if (hours + 12 <= 24) {\n onChange(hours + 12)\n }\n }}\n selected={!isAM}\n disabled={!isAM}\n />\n </View>\n )\n}\n\nfunction SwitchButton({\n label,\n onPress,\n selected,\n disabled,\n}: {\n label: string\n onPress: (() => any) | undefined\n selected: boolean\n disabled: boolean\n}) {\n const theme = useTheme()\n const { backgroundColor, color } = useSwitchColors(selected)\n\n return (\n <TouchableRipple\n onPress={onPress}\n style={styles.switchButton}\n accessibilityLabel={label}\n // @ts-ignore old React Native versions\n accessibilityTraits={disabled ? ['button', 'disabled'] : 'button'}\n // @ts-ignore old React Native versions\n accessibilityComponentType=\"button\"\n accessibilityRole=\"button\"\n accessibilityState={{ disabled }}\n disabled={disabled}\n >\n <View style={[styles.switchButtonInner, { backgroundColor }]}>\n <Text\n selectable={false}\n style={[\n {\n ...theme.fonts.medium,\n color: color,\n },\n ]}\n >\n {label}\n </Text>\n </View>\n </TouchableRipple>\n )\n}\n\nconst styles = StyleSheet.create({\n root: {\n width: 50,\n height: 80,\n borderWidth: 1,\n overflow: 'hidden',\n },\n switchSeparator: {\n height: 1,\n width: 48,\n },\n switchButton: {\n flex: 1,\n },\n switchButtonInner: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n})\n"]}
|
|
@@ -23,22 +23,28 @@ var _AnimatedClockSwitcher = _interopRequireDefault(require("./AnimatedClockSwit
|
|
|
23
23
|
|
|
24
24
|
var _AnalogClockMinutes = _interopRequireDefault(require("./AnalogClockMinutes"));
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
var _TimePicker = require("./TimePicker");
|
|
27
27
|
|
|
28
|
-
function
|
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
+
|
|
30
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
31
|
|
|
30
32
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
33
|
|
|
32
34
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
33
35
|
|
|
34
|
-
function AnalogClock({
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
function AnalogClock(_ref) {
|
|
37
|
+
let {
|
|
38
|
+
hours,
|
|
39
|
+
minutes,
|
|
40
|
+
focused,
|
|
41
|
+
is24Hour,
|
|
42
|
+
onChange
|
|
43
|
+
} = _ref;
|
|
44
|
+
const theme = (0, _reactNativePaper.useTheme)();
|
|
45
|
+
const {
|
|
46
|
+
mode
|
|
47
|
+
} = React.useContext(_TimePicker.DisplayModeContext); // used to make pointer shorter if hours are selected and above 12
|
|
42
48
|
|
|
43
49
|
const shortPointer = (hours === 0 || hours > 12) && is24Hour;
|
|
44
50
|
const clockRef = React.useRef(null); // Hooks are nice, sometimes... :-)..
|
|
@@ -49,6 +55,7 @@ function AnalogClock({
|
|
|
49
55
|
const minutesRef = (0, _utils.useLatest)(minutes);
|
|
50
56
|
const focusedRef = (0, _utils.useLatest)(focused);
|
|
51
57
|
const is24HourRef = (0, _utils.useLatest)(is24Hour);
|
|
58
|
+
const modeRef = (0, _utils.useLatest)(mode);
|
|
52
59
|
const onPointerMove = React.useCallback((e, final) => {
|
|
53
60
|
let x = e.nativeEvent.locationX;
|
|
54
61
|
let y = e.nativeEvent.locationY;
|
|
@@ -58,14 +65,17 @@ function AnalogClock({
|
|
|
58
65
|
let hours24 = is24HourRef.current;
|
|
59
66
|
let previousHourType = (0, _timeUtils.getHourType)(hoursRef.current);
|
|
60
67
|
let pickedHours = (0, _timeUtils.getHours)(angle, previousHourType);
|
|
61
|
-
let
|
|
62
|
-
|
|
63
|
-
let hours12AndPm = !hours24 && previousHourType === _timeUtils.hourTypes.pm; // TODO: check which mode is switched on am/pm
|
|
68
|
+
let hours12AndPm = !hours24 && modeRef.current === 'PM'; // Avoiding the "24h"
|
|
69
|
+
// Should be 12h for 12 hours and PM mode
|
|
64
70
|
|
|
65
|
-
if (hours12AndPm ||
|
|
71
|
+
if ((hours12AndPm || hours24) && pickedHours + 12 < 24) {
|
|
66
72
|
pickedHours += 12;
|
|
67
73
|
}
|
|
68
74
|
|
|
75
|
+
if (modeRef.current === 'AM' && pickedHours === 12) {
|
|
76
|
+
pickedHours = 0;
|
|
77
|
+
}
|
|
78
|
+
|
|
69
79
|
if (pickedHours === 24) {
|
|
70
80
|
pickedHours = 0;
|
|
71
81
|
}
|
|
@@ -87,7 +97,7 @@ function AnalogClock({
|
|
|
87
97
|
});
|
|
88
98
|
}
|
|
89
99
|
}
|
|
90
|
-
}, [focusedRef, is24HourRef, hoursRef, onChangeRef, minutesRef]);
|
|
100
|
+
}, [focusedRef, is24HourRef, hoursRef, onChangeRef, minutesRef, modeRef]);
|
|
91
101
|
const panResponder = React.useRef(_reactNative.PanResponder.create({
|
|
92
102
|
onPanResponderGrant: e => onPointerMove(e, false),
|
|
93
103
|
onPanResponderMove: e => onPointerMove(e, false),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["AnalogClock.tsx"],"names":["AnalogClock","hours","minutes","focused","is24Hour","onChange","theme","shortPointer","clockRef","React","useRef","hoursRef","onChangeRef","minutesRef","focusedRef","is24HourRef","onPointerMove","useCallback","e","final","x","nativeEvent","locationX","y","locationY","angle","circleSize","current","clockTypes","hours24","previousHourType","pickedHours","hourTypeFromOffset","hours24AndPM","hourTypes","pm","hours12AndPm","undefined","pickedMinutes","panResponder","PanResponder","create","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","onStartShouldSetPanResponder","returnTrue","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderTerminationRequest","onShouldBlockNativeResponder","dynamicSize","pointerNumber","degreesPerNumber","panHandlers","styles","clock","backgroundColor","dark","colors","surface","lighten","hex","darken","line","primary","transform","rotate","translateX","width","endPoint","StyleSheet","absoluteFill","center","middlePoint","height","position","justifyContent","alignItems","borderRadius","right","bottom","marginBottom","memo"],"mappings":"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","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'\n\nimport { useLatest } from '../utils'\nimport AnalogClockHours from './AnalogClockHours'\n\nimport AnimatedClockSwitcher from './AnimatedClockSwitcher'\nimport AnalogClockMinutes from './AnalogClockMinutes'\n\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: ({\n hours,\n minutes,\n focused,\n }: {\n hours: number\n minutes: number\n focused?: undefined | PossibleClockTypes\n }) => any\n}) {\n const theme = useTheme()\n\n // used to make pointer shorter if hours are selected and above 12\n const shortPointer = (hours === 0 || hours > 12) && is24Hour\n\n const clockRef = React.useRef<View | null>(null)\n\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\n const onPointerMove = React.useCallback(\n (e: GestureResponderEvent, final: boolean) => {\n let x = e.nativeEvent.locationX\n let y = e.nativeEvent.locationY\n\n let angle = getAngle(x, y, circleSize)\n\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 hourTypeFromOffset = getHourTypeFromOffset(x, y, circleSize)\n let hours24AndPM = hours24 && hourTypeFromOffset === hourTypes.pm\n let hours12AndPm = !hours24 && previousHourType === hourTypes.pm\n\n // TODO: check which mode is switched on am/pm\n if (hours12AndPm || hours24AndPM) {\n pickedHours += 12\n }\n\n if (pickedHours === 24) {\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]\n )\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\n onStartShouldSetPanResponder: returnTrue,\n onStartShouldSetPanResponderCapture: () => false,\n onMoveShouldSetPanResponder: returnTrue,\n onMoveShouldSetPanResponderCapture: returnTrue,\n onPanResponderTerminationRequest: returnTrue,\n onShouldBlockNativeResponder: returnTrue,\n })\n ).current\n\n const dynamicSize = focused === clockTypes.hours && shortPointer ? 33 : 0\n const pointerNumber = focused === clockTypes.hours ? hours : minutes\n const degreesPerNumber = focused === clockTypes.hours ? 30 : 6\n return (\n <View\n ref={clockRef}\n {...panResponder.panHandlers}\n style={[\n styles.clock,\n {\n backgroundColor: theme.dark\n ? Color(theme.colors.surface).lighten(1.2).hex()\n : Color(theme.colors.surface).darken(0.1).hex(),\n },\n ]}\n // @ts-ignore -> https://github.com/necolas/react-native-web/issues/506\n cursor={'pointer'}\n >\n <View\n style={[\n styles.line,\n {\n backgroundColor: theme.colors.primary,\n transform: [\n { rotate: -90 + pointerNumber * degreesPerNumber + 'deg' },\n {\n translateX: circleSize / 4 - 4 - dynamicSize / 2,\n },\n ],\n width: circleSize / 2 - 4 - dynamicSize,\n },\n ]}\n pointerEvents=\"none\"\n >\n <View\n style={[styles.endPoint, { backgroundColor: theme.colors.primary }]}\n />\n </View>\n <View\n style={[StyleSheet.absoluteFill, styles.center]}\n pointerEvents=\"none\"\n >\n <View\n style={[\n styles.middlePoint,\n {\n backgroundColor: theme.colors.primary,\n },\n ]}\n />\n </View>\n <AnimatedClockSwitcher\n focused={focused}\n hours={<AnalogClockHours is24Hour={is24Hour} hours={hours} />}\n minutes={<AnalogClockMinutes minutes={minutes} />}\n />\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n clock: {\n height: circleSize,\n width: circleSize,\n position: 'relative',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: circleSize / 2,\n },\n middlePoint: {\n borderRadius: 4,\n height: 8,\n width: 8,\n },\n center: { justifyContent: 'center', alignItems: 'center' },\n endPoint: {\n borderRadius: 15,\n height: 30,\n width: 30,\n position: 'absolute',\n right: 0,\n bottom: -14,\n },\n line: {\n position: 'absolute',\n\n marginBottom: -1,\n height: 2,\n borderRadius: 4,\n },\n})\n\nfunction returnTrue() {\n return true\n}\n\nexport default React.memo(AnalogClock)\n"]}
|
|
1
|
+
{"version":3,"sources":["AnalogClock.tsx"],"names":["AnalogClock","hours","minutes","focused","is24Hour","onChange","theme","mode","React","useContext","DisplayModeContext","shortPointer","clockRef","useRef","hoursRef","onChangeRef","minutesRef","focusedRef","is24HourRef","modeRef","onPointerMove","useCallback","e","final","x","nativeEvent","locationX","y","locationY","angle","circleSize","current","clockTypes","hours24","previousHourType","pickedHours","hours12AndPm","undefined","pickedMinutes","panResponder","PanResponder","create","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","onStartShouldSetPanResponder","returnTrue","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderTerminationRequest","onShouldBlockNativeResponder","dynamicSize","pointerNumber","degreesPerNumber","panHandlers","styles","clock","backgroundColor","dark","colors","surface","lighten","hex","darken","line","primary","transform","rotate","translateX","width","endPoint","StyleSheet","absoluteFill","center","middlePoint","height","position","justifyContent","alignItems","borderRadius","right","bottom","marginBottom","memo"],"mappings":"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","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 getMinutes,\n PossibleClockTypes,\n} from './timeUtils'\nimport * as React from 'react'\n\nimport { useLatest } from '../utils'\nimport AnalogClockHours from './AnalogClockHours'\n\nimport AnimatedClockSwitcher from './AnimatedClockSwitcher'\nimport AnalogClockMinutes from './AnalogClockMinutes'\nimport { DisplayModeContext } from './TimePicker'\n\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\n const clockRef = React.useRef<View | null>(null)\n\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\n const onPointerMove = React.useCallback(\n (e: GestureResponderEvent, final: boolean) => {\n let x = e.nativeEvent.locationX\n let y = e.nativeEvent.locationY\n\n let angle = getAngle(x, y, circleSize)\n\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 // Avoiding the \"24h\"\n // Should be 12h for 12 hours and PM mode\n if ((hours12AndPm || hours24) && pickedHours + 12 < 24) {\n pickedHours += 12\n }\n if (modeRef.current === 'AM' && pickedHours === 12) {\n pickedHours = 0\n }\n\n if (pickedHours === 24) {\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\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\n onStartShouldSetPanResponder: returnTrue,\n onStartShouldSetPanResponderCapture: () => false,\n onMoveShouldSetPanResponder: returnTrue,\n onMoveShouldSetPanResponderCapture: returnTrue,\n onPanResponderTerminationRequest: returnTrue,\n onShouldBlockNativeResponder: returnTrue,\n })\n ).current\n\n const dynamicSize = focused === clockTypes.hours && shortPointer ? 33 : 0\n const pointerNumber = focused === clockTypes.hours ? hours : minutes\n const degreesPerNumber = focused === clockTypes.hours ? 30 : 6\n return (\n <View\n ref={clockRef}\n {...panResponder.panHandlers}\n style={[\n styles.clock,\n {\n backgroundColor: theme.dark\n ? Color(theme.colors.surface).lighten(1.2).hex()\n : Color(theme.colors.surface).darken(0.1).hex(),\n },\n ]}\n // @ts-ignore -> https://github.com/necolas/react-native-web/issues/506\n cursor={'pointer'}\n >\n <View\n style={[\n styles.line,\n {\n backgroundColor: theme.colors.primary,\n transform: [\n { rotate: -90 + pointerNumber * degreesPerNumber + 'deg' },\n {\n translateX: circleSize / 4 - 4 - dynamicSize / 2,\n },\n ],\n width: circleSize / 2 - 4 - dynamicSize,\n },\n ]}\n pointerEvents=\"none\"\n >\n <View\n style={[styles.endPoint, { backgroundColor: theme.colors.primary }]}\n />\n </View>\n <View\n style={[StyleSheet.absoluteFill, styles.center]}\n pointerEvents=\"none\"\n >\n <View\n style={[\n styles.middlePoint,\n {\n backgroundColor: theme.colors.primary,\n },\n ]}\n />\n </View>\n <AnimatedClockSwitcher\n focused={focused}\n hours={<AnalogClockHours is24Hour={is24Hour} hours={hours} />}\n minutes={<AnalogClockMinutes minutes={minutes} />}\n />\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n clock: {\n height: circleSize,\n width: circleSize,\n position: 'relative',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: circleSize / 2,\n },\n middlePoint: {\n borderRadius: 4,\n height: 8,\n width: 8,\n },\n center: { justifyContent: 'center', alignItems: 'center' },\n endPoint: {\n borderRadius: 15,\n height: 30,\n width: 30,\n position: 'absolute',\n right: 0,\n bottom: -14,\n },\n line: {\n position: 'absolute',\n\n marginBottom: -1,\n height: 2,\n borderRadius: 4,\n },\n})\n\nfunction returnTrue() {\n return true\n}\n\nexport default React.memo(AnalogClock)\n"]}
|
|
@@ -15,16 +15,22 @@ var _timeUtils = require("./timeUtils");
|
|
|
15
15
|
|
|
16
16
|
var _utils = require("../utils");
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
var _TimePicker = require("./TimePicker");
|
|
19
19
|
|
|
20
|
-
function
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
21
|
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
+
|
|
24
|
+
function AnalogClockHours(_ref) {
|
|
25
|
+
let {
|
|
26
|
+
is24Hour,
|
|
27
|
+
hours
|
|
28
|
+
} = _ref;
|
|
29
|
+
const {
|
|
30
|
+
mode
|
|
31
|
+
} = React.useContext(_TimePicker.DisplayModeContext);
|
|
32
|
+
const outerRange = getHourNumbers(false, _timeUtils.circleSize, 12, 12);
|
|
33
|
+
const innerRange = getHourNumbers(true, _timeUtils.circleSize, 12, 12);
|
|
28
34
|
const color = (0, _utils.useTextColorOnPrimary)();
|
|
29
35
|
return /*#__PURE__*/React.createElement(React.Fragment, null, outerRange.map((a, i) => /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
30
36
|
key: i,
|
|
@@ -40,7 +46,7 @@ function AnalogClockHours({
|
|
|
40
46
|
color
|
|
41
47
|
} : null,
|
|
42
48
|
selectable: false
|
|
43
|
-
}, i + 1)))), is24Hour ? innerRange.map((a, i) => /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
49
|
+
}, mode === 'AM' && i + 1 === 12 ? '00' : i + 1)))), is24Hour ? innerRange.map((a, i) => /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
44
50
|
key: i,
|
|
45
51
|
pointerEvents: "none",
|
|
46
52
|
style: [styles.innerHourRoot, {
|
|
@@ -91,12 +97,12 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
91
97
|
}
|
|
92
98
|
});
|
|
93
99
|
|
|
94
|
-
function getHourNumbers(is24Hour, size, count) {
|
|
100
|
+
function getHourNumbers(is24Hour, size, count, arrayLength) {
|
|
95
101
|
let angle = 0;
|
|
96
102
|
let step = 2 * Math.PI / count;
|
|
97
103
|
let radius = size / (is24Hour ? 4 : 2.5);
|
|
98
104
|
angle = -90 * Math.PI / 180 + Math.PI / 6;
|
|
99
|
-
return Array(
|
|
105
|
+
return Array(arrayLength).fill(true).map(() => {
|
|
100
106
|
let x = Math.round(size / 2 + radius * Math.cos(angle));
|
|
101
107
|
let y = Math.round(size / 2 + radius * Math.sin(angle));
|
|
102
108
|
angle += step;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["AnalogClockHours.tsx"],"names":["AnalogClockHours","is24Hour","hours","outerRange","getHourNumbers","circleSize","innerRange","color","map","a","i","styles","outerHourRoot","top","left","outerHourInner","innerHourRoot","innerHourInner","innerHourText","StyleSheet","create","position","justifyContent","alignItems","zIndex","width","height","marginLeft","marginTop","borderRadius","fontSize","size","count","angle","step","Math","PI","radius","Array","fill","x","round","cos","y","sin","
|
|
1
|
+
{"version":3,"sources":["AnalogClockHours.tsx"],"names":["AnalogClockHours","is24Hour","hours","mode","React","useContext","DisplayModeContext","outerRange","getHourNumbers","circleSize","innerRange","color","map","a","i","styles","outerHourRoot","top","left","outerHourInner","innerHourRoot","innerHourInner","innerHourText","StyleSheet","create","position","justifyContent","alignItems","zIndex","width","height","marginLeft","marginTop","borderRadius","fontSize","size","count","arrayLength","angle","step","Math","PI","radius","Array","fill","x","round","cos","y","sin","memo"],"mappings":"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","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 style={hours === i + 1 ? { color } : null} selectable={false}>\n {mode === 'AM' && 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 styles.innerHourText,\n i + 13 === hours || (i + 13 === 24 && hours === 0)\n ? { color }\n : null,\n ]}\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: 50,\n height: 50,\n marginLeft: -25,\n marginTop: -25,\n\n borderRadius: 25,\n },\n outerHourInner: { borderRadius: 25 },\n innerHourRoot: {\n position: 'absolute',\n zIndex: 20,\n justifyContent: 'center',\n alignItems: 'center',\n width: 40,\n height: 40,\n marginLeft: -20,\n marginTop: -20,\n borderRadius: 20,\n },\n innerHourInner: { borderRadius: 20 },\n innerHourText: { fontSize: 13 },\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"]}
|
|
@@ -15,13 +15,14 @@ var _timeUtils = require("./timeUtils");
|
|
|
15
15
|
|
|
16
16
|
var _utils = require("../utils");
|
|
17
17
|
|
|
18
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
19
|
|
|
20
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
21
|
|
|
22
|
-
function AnalogClockMinutes({
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
function AnalogClockMinutes(_ref) {
|
|
23
|
+
let {
|
|
24
|
+
minutes
|
|
25
|
+
} = _ref;
|
|
25
26
|
const range = getMinuteNumbers(_timeUtils.circleSize, 12);
|
|
26
27
|
const color = (0, _utils.useTextColorOnPrimary)();
|
|
27
28
|
return /*#__PURE__*/React.createElement(React.Fragment, null, range.map((a, i) => {
|
|
@@ -45,7 +46,7 @@ function AnalogClockMinutes({
|
|
|
45
46
|
}, /*#__PURE__*/React.createElement(_reactNativePaper.Text, {
|
|
46
47
|
style: isCurrent ? {
|
|
47
48
|
color
|
|
48
|
-
} :
|
|
49
|
+
} : undefined,
|
|
49
50
|
selectable: false
|
|
50
51
|
}, isZero ? '00' : currentMinutes)));
|
|
51
52
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["AnalogClockMinutes.tsx"],"names":["AnalogClockMinutes","minutes","range","getMinuteNumbers","circleSize","color","map","a","i","currentMinutes","isZero","isCurrent","styles","outerHourRoot","top","left","outerHourInner","StyleSheet","create","position","justifyContent","alignItems","zIndex","width","height","marginLeft","marginTop","borderRadius","innerHourRoot","innerHourInner","innerHourText","fontSize","textWhite","size","count","angle","step","Math","PI","radius","Array","fill","x","round","cos","y","sin","React","memo"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,SAASA,kBAAT,
|
|
1
|
+
{"version":3,"sources":["AnalogClockMinutes.tsx"],"names":["AnalogClockMinutes","minutes","range","getMinuteNumbers","circleSize","color","map","a","i","currentMinutes","isZero","isCurrent","styles","outerHourRoot","top","left","outerHourInner","undefined","StyleSheet","create","position","justifyContent","alignItems","zIndex","width","height","marginLeft","marginTop","borderRadius","innerHourRoot","innerHourInner","innerHourText","fontSize","textWhite","size","count","angle","step","Math","PI","radius","Array","fill","x","round","cos","y","sin","React","memo"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,SAASA,kBAAT,OAA8D;AAAA,MAAlC;AAAEC,IAAAA;AAAF,GAAkC;AAC5D,QAAMC,KAAK,GAAGC,gBAAgB,CAACC,qBAAD,EAAa,EAAb,CAA9B;AACA,QAAMC,KAAK,GAAG,mCAAd;AACA,sBACE,0CACGH,KAAK,CAACI,GAAN,CAAU,CAACC,CAAD,EAAIC,CAAJ,KAAU;AACnB,UAAMC,cAAc,GAAGD,CAAC,GAAG,CAA3B;AACA,UAAME,MAAM,GAAGD,cAAc,KAAK,CAAlC;AACA,QAAIE,SAAS,GACXF,cAAc,GAAG,CAAjB,IAAsBR,OAAtB,IAAiCQ,cAAc,GAAG,CAAjB,IAAsBR,OADzD;;AAEA,QAAIS,MAAJ,EAAY;AACVC,MAAAA,SAAS,GAAGV,OAAO,IAAI,EAAX,IAAiBQ,cAAc,GAAG,CAAjB,IAAsBR,OAAnD;AACD;;AACD,wBACE,oBAAC,iBAAD;AACE,MAAA,GAAG,EAAEO,CADP;AAEE,MAAA,aAAa,EAAC,MAFhB;AAGE,MAAA,KAAK,EAAE,CACLI,MAAM,CAACC,aADF,EAEL;AACEC,QAAAA,GAAG,EAAEP,CAAC,CAAC,CAAD,CAAD,IAAQ,CADf;AAEEQ,QAAAA,IAAI,EAAER,CAAC,CAAC,CAAD,CAAD,IAAQ;AAFhB,OAFK;AAHT,oBAWE,oBAAC,iBAAD;AAAM,MAAA,KAAK,EAAEK,MAAM,CAACI;AAApB,oBACE,oBAAC,sBAAD;AACE,MAAA,KAAK,EAAEL,SAAS,GAAG;AAAEN,QAAAA;AAAF,OAAH,GAAeY,SADjC;AAEE,MAAA,UAAU,EAAE;AAFd,OAIGP,MAAM,GAAG,IAAH,GAAUD,cAJnB,CADF,CAXF,CADF;AAsBD,GA9BA,CADH,CADF;AAmCD;;AAED,MAAMG,MAAM,GAAGM,wBAAWC,MAAX,CAAkB;AAC/BN,EAAAA,aAAa,EAAE;AACbO,IAAAA,QAAQ,EAAE,UADG;AAEbC,IAAAA,cAAc,EAAE,QAFH;AAGbC,IAAAA,UAAU,EAAE,QAHC;AAIbC,IAAAA,MAAM,EAAE,EAJK;AAKbC,IAAAA,KAAK,EAAE,EALM;AAMbC,IAAAA,MAAM,EAAE,EANK;AAObC,IAAAA,UAAU,EAAE,CAAC,EAPA;AAQbC,IAAAA,SAAS,EAAE,CAAC,EARC;AAUbC,IAAAA,YAAY,EAAE;AAVD,GADgB;AAa/BZ,EAAAA,cAAc,EAAE;AAAEY,IAAAA,YAAY,EAAE;AAAhB,GAbe;AAc/BC,EAAAA,aAAa,EAAE;AACbT,IAAAA,QAAQ,EAAE,UADG;AAEbG,IAAAA,MAAM,EAAE,EAFK;AAGbF,IAAAA,cAAc,EAAE,QAHH;AAIbC,IAAAA,UAAU,EAAE,QAJC;AAKbE,IAAAA,KAAK,EAAE,EALM;AAMbC,IAAAA,MAAM,EAAE,EANK;AAObC,IAAAA,UAAU,EAAE,CAAC,EAPA;AAQbC,IAAAA,SAAS,EAAE,CAAC,EARC;AASbC,IAAAA,YAAY,EAAE;AATD,GAdgB;AAyB/BE,EAAAA,cAAc,EAAE;AAAEF,IAAAA,YAAY,EAAE;AAAhB,GAzBe;AA0B/BG,EAAAA,aAAa,EAAE;AAAEC,IAAAA,QAAQ,EAAE;AAAZ,GA1BgB;AA2B/BC,EAAAA,SAAS,EAAE;AAAE5B,IAAAA,KAAK,EAAE;AAAT;AA3BoB,CAAlB,CAAf;;AA8BA,SAASF,gBAAT,CAA0B+B,IAA1B,EAAwCC,KAAxC,EAAuD;AACrD,MAAIC,KAAK,GAAG,CAAZ;AACA,MAAIC,IAAI,GAAI,IAAIC,IAAI,CAACC,EAAV,GAAgBJ,KAA3B;AACA,MAAIK,MAAM,GAAGN,IAAI,GAAG,GAApB;AAEAE,EAAAA,KAAK,GAAGA,KAAK,GAAI,CAAC,EAAD,GAAME,IAAI,CAACC,EAAZ,GAAkB,GAAlC;AAEA,SAAOE,KAAK,CAAC,EAAD,CAAL,CACJC,IADI,CACC,IADD,EAEJpC,GAFI,CAEA,MAAM;AACT,QAAIqC,CAAC,GAAGL,IAAI,CAACM,KAAL,CAAWV,IAAI,GAAG,CAAP,GAAWM,MAAM,GAAGF,IAAI,CAACO,GAAL,CAAST,KAAT,CAA/B,CAAR;AACA,QAAIU,CAAC,GAAGR,IAAI,CAACM,KAAL,CAAWV,IAAI,GAAG,CAAP,GAAWM,MAAM,GAAGF,IAAI,CAACS,GAAL,CAASX,KAAT,CAA/B,CAAR;AACAA,IAAAA,KAAK,IAAIC,IAAT;AACA,WAAO,CAACM,CAAD,EAAIG,CAAJ,CAAP;AACD,GAPI,CAAP;AAQD;;4BAEcE,KAAK,CAACC,IAAN,CAAWjD,kBAAX,C","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'\n\nfunction AnalogClockMinutes({ minutes }: { minutes: number }) {\n const range = getMinuteNumbers(circleSize, 12)\n const color = useTextColorOnPrimary()\n return (\n <>\n {range.map((a, i) => {\n const currentMinutes = i * 5\n const isZero = currentMinutes === 0\n let isCurrent =\n currentMinutes - 1 <= minutes && currentMinutes + 1 >= minutes\n if (isZero) {\n isCurrent = minutes >= 59 || currentMinutes + 1 >= minutes\n }\n return (\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 <Text\n style={isCurrent ? { color } : undefined}\n selectable={false}\n >\n {isZero ? '00' : currentMinutes}\n </Text>\n </View>\n </View>\n )\n })}\n </>\n )\n}\n\nconst styles = StyleSheet.create({\n outerHourRoot: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 20,\n width: 50,\n height: 50,\n marginLeft: -25,\n marginTop: -25,\n\n borderRadius: 25,\n },\n outerHourInner: { borderRadius: 25 },\n innerHourRoot: {\n position: 'absolute',\n zIndex: 20,\n justifyContent: 'center',\n alignItems: 'center',\n width: 40,\n height: 40,\n marginLeft: -20,\n marginTop: -20,\n borderRadius: 20,\n },\n innerHourInner: { borderRadius: 20 },\n innerHourText: { fontSize: 13 },\n textWhite: { color: '#fff' },\n})\n\nfunction getMinuteNumbers(size: number, count: number) {\n let angle = 0\n let step = (2 * Math.PI) / count\n let radius = size / 2.5\n\n angle = angle = (-90 * Math.PI) / 180\n\n return Array(12)\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(AnalogClockMinutes)\n"]}
|
|
@@ -11,15 +11,16 @@ var _reactNative = require("react-native");
|
|
|
11
11
|
|
|
12
12
|
var _timeUtils = require("./timeUtils");
|
|
13
13
|
|
|
14
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
15
|
|
|
16
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
17
|
|
|
18
|
-
function AnimatedClockSwitcher({
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
function AnimatedClockSwitcher(_ref) {
|
|
19
|
+
let {
|
|
20
|
+
focused,
|
|
21
|
+
hours,
|
|
22
|
+
minutes
|
|
23
|
+
} = _ref;
|
|
23
24
|
const collapsed = focused === _timeUtils.clockTypes.hours;
|
|
24
25
|
const animatedCollapsed = React.useRef(new _reactNative.Animated.Value(collapsed ? 1 : 0));
|
|
25
26
|
React.useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["AnimatedClockSwitcher.tsx"],"names":["AnimatedClockSwitcher","focused","hours","minutes","collapsed","clockTypes","animatedCollapsed","React","useRef","Animated","Value","useEffect","timing","current","toValue","duration","useNativeDriver","start","StyleSheet","absoluteFill","opacity","transform","scale","interpolate","inputRange","outputRange"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAEe,SAASA,qBAAT,
|
|
1
|
+
{"version":3,"sources":["AnimatedClockSwitcher.tsx"],"names":["AnimatedClockSwitcher","focused","hours","minutes","collapsed","clockTypes","animatedCollapsed","React","useRef","Animated","Value","useEffect","timing","current","toValue","duration","useNativeDriver","start","StyleSheet","absoluteFill","opacity","transform","scale","interpolate","inputRange","outputRange"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAEe,SAASA,qBAAT,OAQZ;AAAA,MAR2C;AAC5CC,IAAAA,OAD4C;AAE5CC,IAAAA,KAF4C;AAG5CC,IAAAA;AAH4C,GAQ3C;AACD,QAAMC,SAAS,GAAGH,OAAO,KAAKI,sBAAWH,KAAzC;AACA,QAAMI,iBAAiB,GAAGC,KAAK,CAACC,MAAN,CACxB,IAAIC,sBAASC,KAAb,CAAmBN,SAAS,GAAG,CAAH,GAAO,CAAnC,CADwB,CAA1B;AAGAG,EAAAA,KAAK,CAACI,SAAN,CAAgB,MAAM;AACpBF,0BAASG,MAAT,CAAgBN,iBAAiB,CAACO,OAAlC,EAA2C;AACzCC,MAAAA,OAAO,EAAEV,SAAS,GAAG,CAAH,GAAO,CADgB;AAEzCW,MAAAA,QAAQ,EAAE,GAF+B;AAGzCC,MAAAA,eAAe,EAAE;AAHwB,KAA3C,EAIGC,KAJH;AAKD,GAND,EAMG,CAACb,SAAD,CANH;AAQA,sBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEc,wBAAWC;AAAxB,kBACE,oBAAC,qBAAD,CAAU,IAAV;AACE,IAAA,aAAa,EAAEf,SAAS,GAAG,MAAH,GAAY,MADtC;AAEE,IAAA,KAAK,EAAE,CACLc,wBAAWC,YADN,EAEL;AACEC,MAAAA,OAAO,EAAEd,iBAAiB,CAACO,OAD7B;AAEEQ,MAAAA,SAAS,EAAE,CACT;AACEC,QAAAA,KAAK,EAAEhB,iBAAiB,CAACO,OAAlB,CAA0BU,WAA1B,CAAsC;AAC3CC,UAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAD+B;AAE3CC,UAAAA,WAAW,EAAE,CAAC,IAAD,EAAO,CAAP;AAF8B,SAAtC;AADT,OADS;AAFb,KAFK;AAFT,KAiBGvB,KAjBH,CADF,eAoBE,oBAAC,qBAAD,CAAU,IAAV;AACE,IAAA,aAAa,EAAEE,SAAS,GAAG,MAAH,GAAY,MADtC;AAEE,IAAA,KAAK,EAAE,CACLc,wBAAWC,YADN,EAEL;AACEC,MAAAA,OAAO,EAAEd,iBAAiB,CAACO,OAAlB,CAA0BU,WAA1B,CAAsC;AAC7CC,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CADiC;AAE7CC,QAAAA,WAAW,EAAE,CAAC,CAAD,EAAI,CAAJ;AAFgC,OAAtC,CADX;AAKEJ,MAAAA,SAAS,EAAE,CACT;AACEC,QAAAA,KAAK,EAAEhB,iBAAiB,CAACO,OAAlB,CAA0BU,WAA1B,CAAsC;AAC3CC,UAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAD+B;AAE3CC,UAAAA,WAAW,EAAE,CAAC,CAAD,EAAI,IAAJ;AAF8B,SAAtC;AADT,OADS;AALb,KAFK;AAFT,KAoBGtB,OApBH,CApBF,CADF;AA6CD","sourcesContent":["import * as React from 'react'\nimport { Animated, StyleSheet, View } from 'react-native'\nimport { clockTypes, PossibleClockTypes } from './timeUtils'\n\nexport default function AnimatedClockSwitcher({\n focused,\n hours,\n minutes,\n}: {\n focused: PossibleClockTypes\n hours: any\n minutes: any\n}) {\n const collapsed = focused === clockTypes.hours\n const animatedCollapsed = React.useRef<Animated.Value>(\n new Animated.Value(collapsed ? 1 : 0)\n )\n React.useEffect(() => {\n Animated.timing(animatedCollapsed.current, {\n toValue: collapsed ? 1 : 0,\n duration: 250,\n useNativeDriver: true,\n }).start()\n }, [collapsed])\n\n return (\n <View style={StyleSheet.absoluteFill}>\n <Animated.View\n pointerEvents={collapsed ? 'auto' : 'none'}\n style={[\n StyleSheet.absoluteFill,\n {\n opacity: animatedCollapsed.current,\n transform: [\n {\n scale: animatedCollapsed.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0.95, 1],\n }),\n },\n ],\n },\n ]}\n >\n {hours}\n </Animated.View>\n <Animated.View\n pointerEvents={collapsed ? 'none' : 'auto'}\n style={[\n StyleSheet.absoluteFill,\n {\n opacity: animatedCollapsed.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0],\n }),\n transform: [\n {\n scale: animatedCollapsed.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0.95],\n }),\n },\n ],\n },\n ]}\n >\n {minutes}\n </Animated.View>\n </View>\n )\n}\n"]}
|