react-native-paper-dates 0.4.5 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/README.md +80 -16
  2. package/lib/commonjs/Date/AnimatedCrossView.js +9 -8
  3. package/lib/commonjs/Date/AnimatedCrossView.js.map +1 -1
  4. package/lib/commonjs/Date/AutoSizer.js +6 -5
  5. package/lib/commonjs/Date/AutoSizer.js.map +1 -1
  6. package/lib/commonjs/Date/Calendar.js +46 -39
  7. package/lib/commonjs/Date/Calendar.js.map +1 -1
  8. package/lib/commonjs/Date/CalendarEdit.js +35 -110
  9. package/lib/commonjs/Date/CalendarEdit.js.map +1 -1
  10. package/lib/commonjs/Date/CalendarHeader.js +19 -12
  11. package/lib/commonjs/Date/CalendarHeader.js.map +1 -1
  12. package/lib/commonjs/Date/DatePickerInput.js +93 -20
  13. package/lib/commonjs/Date/DatePickerInput.js.map +1 -1
  14. package/lib/commonjs/Date/DatePickerModal.js +4 -6
  15. package/lib/commonjs/Date/DatePickerModal.js.map +1 -1
  16. package/lib/commonjs/Date/DatePickerModalContent.js +9 -5
  17. package/lib/commonjs/Date/DatePickerModalContent.js.map +1 -1
  18. package/lib/commonjs/Date/DatePickerModalContentHeader.js +42 -34
  19. package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
  20. package/lib/commonjs/Date/DatePickerModalHeader.js +14 -6
  21. package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
  22. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js +6 -5
  23. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
  24. package/lib/commonjs/Date/DateRangeInput.js +23 -24
  25. package/lib/commonjs/Date/DateRangeInput.js.map +1 -1
  26. package/lib/commonjs/Date/Day.js +7 -3
  27. package/lib/commonjs/Date/Day.js.map +1 -1
  28. package/lib/commonjs/Date/DayName.js +6 -5
  29. package/lib/commonjs/Date/DayName.js.map +1 -1
  30. package/lib/commonjs/Date/DayNames.js +7 -6
  31. package/lib/commonjs/Date/DayNames.js.map +1 -1
  32. package/lib/commonjs/Date/DayRange.js +9 -8
  33. package/lib/commonjs/Date/DayRange.js.map +1 -1
  34. package/lib/commonjs/Date/Month.js +57 -49
  35. package/lib/commonjs/Date/Month.js.map +1 -1
  36. package/lib/commonjs/Date/Swiper.js +35 -29
  37. package/lib/commonjs/Date/Swiper.js.map +1 -1
  38. package/lib/commonjs/Date/Swiper.native.js +29 -23
  39. package/lib/commonjs/Date/Swiper.native.js.map +1 -1
  40. package/lib/commonjs/Date/SwiperUtils.js +7 -6
  41. package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
  42. package/lib/commonjs/Date/YearPicker.js +28 -20
  43. package/lib/commonjs/Date/YearPicker.js.map +1 -1
  44. package/lib/commonjs/Date/dateUtils.js +107 -38
  45. package/lib/commonjs/Date/dateUtils.js.map +1 -1
  46. package/lib/commonjs/Date/inputUtils.js +84 -0
  47. package/lib/commonjs/Date/inputUtils.js.map +1 -0
  48. package/lib/commonjs/TextInputMask.js +11 -10
  49. package/lib/commonjs/TextInputMask.js.map +1 -1
  50. package/lib/commonjs/Time/AmPmSwitcher.js +37 -19
  51. package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
  52. package/lib/commonjs/Time/AnalogClock.js +28 -26
  53. package/lib/commonjs/Time/AnalogClock.js.map +1 -1
  54. package/lib/commonjs/Time/AnalogClockHours.js +18 -12
  55. package/lib/commonjs/Time/AnalogClockHours.js.map +1 -1
  56. package/lib/commonjs/Time/AnalogClockMinutes.js +9 -8
  57. package/lib/commonjs/Time/AnalogClockMinutes.js.map +1 -1
  58. package/lib/commonjs/Time/AnimatedClockSwitcher.js +8 -7
  59. package/lib/commonjs/Time/AnimatedClockSwitcher.js.map +1 -1
  60. package/lib/commonjs/Time/TimeInput.js +16 -12
  61. package/lib/commonjs/Time/TimeInput.js.map +1 -1
  62. package/lib/commonjs/Time/TimeInputs.js +12 -11
  63. package/lib/commonjs/Time/TimeInputs.js.map +1 -1
  64. package/lib/commonjs/Time/TimePicker.js +39 -17
  65. package/lib/commonjs/Time/TimePicker.js.map +1 -1
  66. package/lib/commonjs/Time/TimePickerModal.js +19 -15
  67. package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
  68. package/lib/commonjs/Time/timeUtils.js +17 -9
  69. package/lib/commonjs/Time/timeUtils.js.map +1 -1
  70. package/lib/commonjs/index.js +66 -5
  71. package/lib/commonjs/index.js.map +1 -1
  72. package/lib/commonjs/translations/en.js +20 -0
  73. package/lib/commonjs/translations/en.js.map +1 -0
  74. package/lib/commonjs/translations/enGB.js +20 -0
  75. package/lib/commonjs/translations/enGB.js.map +1 -0
  76. package/lib/commonjs/translations/nl.js +20 -0
  77. package/lib/commonjs/translations/nl.js.map +1 -0
  78. package/lib/commonjs/translations/pl.js +20 -0
  79. package/lib/commonjs/translations/pl.js.map +1 -0
  80. package/lib/commonjs/translations/utils.js +31 -0
  81. package/lib/commonjs/translations/utils.js.map +1 -0
  82. package/lib/commonjs/utils.js +19 -9
  83. package/lib/commonjs/utils.js.map +1 -1
  84. package/lib/module/Date/AnimatedCrossView.js +7 -6
  85. package/lib/module/Date/AnimatedCrossView.js.map +1 -1
  86. package/lib/module/Date/AutoSizer.js +4 -3
  87. package/lib/module/Date/AutoSizer.js.map +1 -1
  88. package/lib/module/Date/Calendar.js +46 -39
  89. package/lib/module/Date/Calendar.js.map +1 -1
  90. package/lib/module/Date/CalendarEdit.js +31 -103
  91. package/lib/module/Date/CalendarEdit.js.map +1 -1
  92. package/lib/module/Date/CalendarHeader.js +16 -9
  93. package/lib/module/Date/CalendarHeader.js.map +1 -1
  94. package/lib/module/Date/DatePickerInput.js +88 -18
  95. package/lib/module/Date/DatePickerInput.js.map +1 -1
  96. package/lib/module/Date/DatePickerModal.js +3 -5
  97. package/lib/module/Date/DatePickerModal.js.map +1 -1
  98. package/lib/module/Date/DatePickerModalContent.js +7 -3
  99. package/lib/module/Date/DatePickerModalContent.js.map +1 -1
  100. package/lib/module/Date/DatePickerModalContentHeader.js +37 -30
  101. package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
  102. package/lib/module/Date/DatePickerModalHeader.js +11 -4
  103. package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
  104. package/lib/module/Date/DatePickerModalHeaderBackground.js +4 -3
  105. package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
  106. package/lib/module/Date/DateRangeInput.js +22 -22
  107. package/lib/module/Date/DateRangeInput.js.map +1 -1
  108. package/lib/module/Date/Day.js +5 -1
  109. package/lib/module/Date/Day.js.map +1 -1
  110. package/lib/module/Date/DayName.js +4 -3
  111. package/lib/module/Date/DayName.js.map +1 -1
  112. package/lib/module/Date/DayNames.js +5 -4
  113. package/lib/module/Date/DayNames.js.map +1 -1
  114. package/lib/module/Date/DayRange.js +7 -6
  115. package/lib/module/Date/DayRange.js.map +1 -1
  116. package/lib/module/Date/Month.js +52 -45
  117. package/lib/module/Date/Month.js.map +1 -1
  118. package/lib/module/Date/Swiper.js +32 -26
  119. package/lib/module/Date/Swiper.js.map +1 -1
  120. package/lib/module/Date/Swiper.native.js +27 -21
  121. package/lib/module/Date/Swiper.native.js.map +1 -1
  122. package/lib/module/Date/SwiperUtils.js +5 -4
  123. package/lib/module/Date/SwiperUtils.js.map +1 -1
  124. package/lib/module/Date/YearPicker.js +26 -18
  125. package/lib/module/Date/YearPicker.js.map +1 -1
  126. package/lib/module/Date/dateUtils.js +79 -30
  127. package/lib/module/Date/dateUtils.js.map +1 -1
  128. package/lib/module/Date/inputUtils.js +70 -0
  129. package/lib/module/Date/inputUtils.js.map +1 -0
  130. package/lib/module/TextInputMask.js +9 -8
  131. package/lib/module/TextInputMask.js.map +1 -1
  132. package/lib/module/Time/AmPmSwitcher.js +35 -18
  133. package/lib/module/Time/AmPmSwitcher.js.map +1 -1
  134. package/lib/module/Time/AnalogClock.js +20 -17
  135. package/lib/module/Time/AnalogClock.js.map +1 -1
  136. package/lib/module/Time/AnalogClockHours.js +15 -10
  137. package/lib/module/Time/AnalogClockHours.js.map +1 -1
  138. package/lib/module/Time/AnalogClockMinutes.js +6 -5
  139. package/lib/module/Time/AnalogClockMinutes.js.map +1 -1
  140. package/lib/module/Time/AnimatedClockSwitcher.js +6 -5
  141. package/lib/module/Time/AnimatedClockSwitcher.js.map +1 -1
  142. package/lib/module/Time/TimeInput.js +14 -10
  143. package/lib/module/Time/TimeInput.js.map +1 -1
  144. package/lib/module/Time/TimeInputs.js +10 -9
  145. package/lib/module/Time/TimeInputs.js.map +1 -1
  146. package/lib/module/Time/TimePicker.js +34 -13
  147. package/lib/module/Time/TimePicker.js.map +1 -1
  148. package/lib/module/Time/TimePickerModal.js +17 -13
  149. package/lib/module/Time/TimePickerModal.js.map +1 -1
  150. package/lib/module/Time/timeUtils.js +8 -2
  151. package/lib/module/Time/timeUtils.js.map +1 -1
  152. package/lib/module/index.js +6 -0
  153. package/lib/module/index.js.map +1 -1
  154. package/lib/module/translations/en.js +13 -0
  155. package/lib/module/translations/en.js.map +1 -0
  156. package/lib/module/translations/enGB.js +13 -0
  157. package/lib/module/translations/enGB.js.map +1 -0
  158. package/lib/module/translations/nl.js +13 -0
  159. package/lib/module/translations/nl.js.map +1 -0
  160. package/lib/module/translations/pl.js +13 -0
  161. package/lib/module/translations/pl.js.map +1 -0
  162. package/lib/module/translations/utils.js +22 -0
  163. package/lib/module/translations/utils.js.map +1 -0
  164. package/lib/module/utils.js +11 -5
  165. package/lib/module/utils.js.map +1 -1
  166. package/lib/typescript/{src/Date → Date}/AnimatedCrossView.d.ts +0 -0
  167. package/lib/typescript/{src/Date → Date}/AutoSizer.d.ts +0 -0
  168. package/lib/typescript/{src/Date → Date}/Calendar.d.ts +5 -3
  169. package/lib/typescript/{src/Date → Date}/CalendarEdit.d.ts +4 -3
  170. package/lib/typescript/{src/Date → Date}/CalendarHeader.d.ts +1 -1
  171. package/lib/typescript/Date/DatePickerInput.d.ts +18 -0
  172. package/lib/typescript/{src/Date → Date}/DatePickerModal.d.ts +0 -0
  173. package/lib/typescript/{src/Date → Date}/DatePickerModalContent.d.ts +2 -0
  174. package/lib/typescript/{src/Date → Date}/DatePickerModalContentHeader.d.ts +4 -4
  175. package/lib/typescript/{src/Date → Date}/DatePickerModalHeader.d.ts +1 -0
  176. package/lib/typescript/{src/Date → Date}/DatePickerModalHeaderBackground.d.ts +0 -0
  177. package/lib/typescript/Date/DateRangeInput.d.ts +3 -0
  178. package/lib/typescript/{src/Date → Date}/Day.d.ts +0 -0
  179. package/lib/typescript/{src/Date → Date}/DayName.d.ts +0 -0
  180. package/lib/typescript/{src/Date → Date}/DayNames.d.ts +0 -0
  181. package/lib/typescript/{src/Date → Date}/DayRange.d.ts +0 -0
  182. package/lib/typescript/{src/Date → Date}/Month.d.ts +0 -0
  183. package/lib/typescript/{src/Date → Date}/Swiper.d.ts +0 -0
  184. package/lib/typescript/{src/Date → Date}/Swiper.native.d.ts +0 -0
  185. package/lib/typescript/{src/Date → Date}/SwiperUtils.d.ts +1 -1
  186. package/lib/typescript/{src/Date → Date}/Week.d.ts +0 -0
  187. package/lib/typescript/{src/Date → Date}/YearPicker.d.ts +0 -0
  188. package/lib/typescript/{src/Date → Date}/dateUtils.d.ts +15 -0
  189. package/lib/typescript/{src/Date → Date}/dateUtils.test.d.ts +0 -0
  190. package/lib/typescript/Date/inputUtils.d.ts +14 -0
  191. package/lib/typescript/TextInputMask.d.ts +11 -0
  192. package/lib/typescript/Time/AmPmSwitcher.d.ts +4 -0
  193. package/lib/typescript/{src/Time → Time}/AnalogClock.d.ts +1 -2
  194. package/lib/typescript/{src/Time → Time}/AnalogClockHours.d.ts +0 -0
  195. package/lib/typescript/{src/Time → Time}/AnalogClockMinutes.d.ts +0 -0
  196. package/lib/typescript/{src/Time → Time}/AnimatedClockSwitcher.d.ts +0 -0
  197. package/lib/typescript/{src/Time → Time}/TimeInput.d.ts +0 -0
  198. package/lib/typescript/{src/Time → Time}/TimeInputs.d.ts +1 -1
  199. package/lib/typescript/{src/Time → Time}/TimePicker.d.ts +4 -0
  200. package/lib/typescript/{src/Time → Time}/TimePickerModal.d.ts +1 -1
  201. package/lib/typescript/{src/Time → Time}/timeUtils.d.ts +1 -0
  202. package/lib/typescript/index.d.ts +13 -0
  203. package/lib/typescript/translations/en.d.ts +3 -0
  204. package/lib/typescript/translations/enGB.d.ts +3 -0
  205. package/lib/typescript/translations/nl.d.ts +3 -0
  206. package/lib/typescript/translations/pl.d.ts +3 -0
  207. package/lib/typescript/translations/utils.d.ts +13 -0
  208. package/lib/typescript/utils.d.ts +58 -0
  209. package/package.json +39 -31
  210. package/src/.DS_Store +0 -0
  211. package/src/Date/Calendar.tsx +14 -13
  212. package/src/Date/CalendarEdit.tsx +21 -120
  213. package/src/Date/CalendarHeader.tsx +15 -3
  214. package/src/Date/DatePickerInput.tsx +103 -25
  215. package/src/Date/DatePickerModal.tsx +3 -8
  216. package/src/Date/DatePickerModalContent.tsx +6 -0
  217. package/src/Date/DatePickerModalContentHeader.tsx +21 -12
  218. package/src/Date/DatePickerModalHeader.tsx +13 -2
  219. package/src/Date/DateRangeInput.tsx +26 -17
  220. package/src/Date/Day.tsx +4 -0
  221. package/src/Date/Month.tsx +18 -44
  222. package/src/Date/Swiper.tsx +1 -0
  223. package/src/Date/SwiperUtils.ts +1 -1
  224. package/src/Date/YearPicker.tsx +4 -1
  225. package/src/Date/dateUtils.tsx +71 -10
  226. package/src/Date/inputUtils.ts +94 -0
  227. package/src/TextInputMask.tsx +10 -3
  228. package/src/Time/AmPmSwitcher.tsx +20 -11
  229. package/src/Time/AnalogClock.tsx +10 -18
  230. package/src/Time/AnalogClockHours.tsx +15 -6
  231. package/src/Time/AnalogClockMinutes.tsx +5 -2
  232. package/src/Time/TimeInput.tsx +3 -0
  233. package/src/Time/TimeInputs.tsx +1 -5
  234. package/src/Time/TimePicker.tsx +46 -23
  235. package/src/Time/TimePickerModal.tsx +4 -1
  236. package/src/Time/timeUtils.ts +7 -1
  237. package/src/index.tsx +7 -0
  238. package/src/translations/en.ts +15 -0
  239. package/src/translations/enGB.ts +15 -0
  240. package/src/translations/nl.ts +15 -0
  241. package/src/translations/pl.ts +15 -0
  242. package/src/translations/utils.ts +42 -0
  243. package/src/utils.ts +13 -5
  244. package/lib/typescript/src/Date/DatePickerInput.d.ts +0 -1
  245. package/lib/typescript/src/Date/DateRangeInput.d.ts +0 -1
  246. package/lib/typescript/src/TextInputMask.d.ts +0 -3
  247. package/lib/typescript/src/Time/AmPmSwitcher.d.ts +0 -4
  248. package/lib/typescript/src/index.d.ts +0 -6
  249. package/lib/typescript/src/utils.d.ts +0 -7
@@ -9,28 +9,26 @@ var React = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _reactNative = require("react-native");
11
11
 
12
- var _TextInputMask = _interopRequireDefault(require("../TextInputMask"));
13
-
14
- var _reactNativePaper = require("react-native-paper");
15
-
16
- var _dateUtils = require("./dateUtils");
12
+ var _DatePickerInput = _interopRequireDefault(require("./DatePickerInput"));
17
13
 
18
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
15
 
20
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
21
-
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; }
23
-
24
- function CalendarEdit({
25
- mode,
26
- state,
27
- label = '',
28
- startLabel = 'Start',
29
- endLabel = 'End',
30
- collapsed,
31
- onChange,
32
- validRange
33
- }) {
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
20
+ function CalendarEdit(_ref) {
21
+ let {
22
+ mode,
23
+ state,
24
+ label = '',
25
+ startLabel = 'Start',
26
+ endLabel = 'End',
27
+ collapsed,
28
+ onChange,
29
+ validRange,
30
+ locale
31
+ } = _ref;
34
32
  const dateInput = React.useRef(null);
35
33
  const startInput = React.useRef(null);
36
34
  const endInput = React.useRef(null); // when switching views focus, or un-focus text input
@@ -63,7 +61,8 @@ function CalendarEdit({
63
61
  style: styles.root
64
62
  }, /*#__PURE__*/React.createElement(_reactNative.View, {
65
63
  style: styles.inner
66
- }, mode === 'single' ? /*#__PURE__*/React.createElement(CalendarInput, {
64
+ }, mode === 'single' ? /*#__PURE__*/React.createElement(_DatePickerInput.default, {
65
+ inputMode: "start",
67
66
  ref: dateInput,
68
67
  label: label,
69
68
  value: state.date,
@@ -71,8 +70,12 @@ function CalendarEdit({
71
70
  date
72
71
  }),
73
72
  onSubmitEditing: onSubmitInput,
74
- validRange: validRange
75
- }) : null, mode === 'range' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CalendarInput, {
73
+ validRange: validRange,
74
+ locale: locale,
75
+ withModal: false,
76
+ autoCompleteType: 'off'
77
+ }) : null, mode === 'range' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_DatePickerInput.default, {
78
+ inputMode: "start",
76
79
  ref: startInput,
77
80
  label: startLabel,
78
81
  value: state.startDate,
@@ -81,106 +84,28 @@ function CalendarEdit({
81
84
  }),
82
85
  returnKeyType: 'next',
83
86
  onSubmitEditing: onSubmitStartInput,
84
- validRange: validRange
87
+ validRange: validRange,
88
+ locale: locale,
89
+ withModal: false,
90
+ autoCompleteType: 'off'
85
91
  }), /*#__PURE__*/React.createElement(_reactNative.View, {
86
92
  style: styles.separator
87
- }), /*#__PURE__*/React.createElement(CalendarInput, {
93
+ }), /*#__PURE__*/React.createElement(_DatePickerInput.default, {
94
+ inputMode: "end",
88
95
  ref: endInput,
89
96
  label: endLabel,
90
97
  value: state.endDate,
91
98
  onChange: endDate => onChange({ ...state,
92
99
  endDate
93
100
  }),
94
- isEndDate: true,
95
101
  onSubmitEditing: onSubmitEndInput,
96
- validRange: validRange
102
+ validRange: validRange,
103
+ locale: locale,
104
+ withModal: false,
105
+ autoCompleteType: 'off'
97
106
  })) : null));
98
107
  }
99
108
 
100
- function CalendarInputPure({
101
- label,
102
- value,
103
- onChange,
104
- isEndDate,
105
- returnKeyType,
106
- onSubmitEditing,
107
- locale,
108
- validRange
109
- }, ref) {
110
- const theme = (0, _reactNativePaper.useTheme)();
111
- const [error, setError] = React.useState(null);
112
- const formatter = React.useMemo(() => {
113
- return new Intl.DateTimeFormat(locale, {
114
- month: '2-digit',
115
- day: '2-digit',
116
- year: 'numeric'
117
- });
118
- }, [locale]);
119
- const inputFormat = React.useMemo(() => {
120
- // TODO: something cleaner and more universal?
121
- const inputDate = formatter.format(new Date(2020, 10 - 1, 1));
122
- return inputDate.replace('2020', 'YYYY').replace('10', 'MM').replace('01', 'DD');
123
- }, [formatter]);
124
- const formattedValue = formatter.format(value);
125
-
126
- const onChangeText = date => {
127
- const dayIndex = inputFormat.indexOf('DD');
128
- const monthIndex = inputFormat.indexOf('MM');
129
- const yearIndex = inputFormat.indexOf('YYYY');
130
- const day = Number(date.slice(dayIndex, dayIndex + 2));
131
- const year = Number(date.slice(yearIndex, yearIndex + 4));
132
- const month = Number(date.slice(monthIndex, monthIndex + 2));
133
-
134
- if (Number.isNaN(day) || Number.isNaN(year) || Number.isNaN(month)) {
135
- setError(inputFormat);
136
- return;
137
- }
138
-
139
- const finalDate = isEndDate ? new Date(year, month - 1, day, 23, 59, 59) : new Date(year, month - 1, day);
140
- const validStart = validRange === null || validRange === void 0 ? void 0 : validRange.startDate;
141
- const validEnd = validRange === null || validRange === void 0 ? void 0 : validRange.endDate;
142
-
143
- if (!(0, _dateUtils.isDateWithinOptionalRange)(finalDate, {
144
- startUnix: validStart ? (0, _dateUtils.dateToUnix)(validStart) : undefined,
145
- endUnix: validEnd ? (0, _dateUtils.dateToUnix)(validEnd) : undefined
146
- })) {
147
- let errors = validStart && validEnd ? [`${formatter.format(validStart)} - ${formatter.format(validEnd)}`] : [validStart ? `> ${formatter.format(validStart)}` : '', validEnd ? `< ${formatter.format(validEnd)}` : ''];
148
- setError(errors.filter(n => n).join(' '));
149
- return;
150
- }
151
-
152
- setError(null);
153
-
154
- if (isEndDate) {
155
- onChange(finalDate);
156
- } else {
157
- onChange(finalDate);
158
- }
159
- };
160
-
161
- return /*#__PURE__*/React.createElement(_reactNative.View, {
162
- style: styles.inputContainer
163
- }, /*#__PURE__*/React.createElement(_TextInputMask.default, {
164
- ref: ref,
165
- value: formattedValue,
166
- style: styles.input,
167
- label: `${label} (${inputFormat})`,
168
- keyboardType: 'number-pad',
169
- placeholder: inputFormat,
170
- mask: inputFormat,
171
- onChangeText: onChangeText,
172
- returnKeyType: returnKeyType,
173
- onSubmitEditing: onSubmitEditing,
174
- keyboardAppearance: theme.dark ? 'dark' : 'default',
175
- error: !!error
176
- }), /*#__PURE__*/React.createElement(_reactNativePaper.HelperText, {
177
- type: "error",
178
- visible: !!error
179
- }, error));
180
- }
181
-
182
- const CalendarInput = /*#__PURE__*/React.forwardRef(CalendarInputPure);
183
-
184
109
  const styles = _reactNative.StyleSheet.create({
185
110
  root: {
186
111
  padding: 12
@@ -1 +1 @@
1
- {"version":3,"sources":["CalendarEdit.tsx"],"names":["CalendarEdit","mode","state","label","startLabel","endLabel","collapsed","onChange","validRange","dateInput","React","useRef","startInput","endInput","useEffect","Keyboard","dismiss","inputsToFocus","current","filter","n","inputsToBlur","forEach","ip","blur","focus","onSubmitStartInput","useCallback","onSubmitEndInput","onSubmitInput","styles","root","inner","date","startDate","separator","endDate","CalendarInputPure","value","isEndDate","returnKeyType","onSubmitEditing","locale","ref","theme","error","setError","useState","formatter","useMemo","Intl","DateTimeFormat","month","day","year","inputFormat","inputDate","format","Date","replace","formattedValue","onChangeText","dayIndex","indexOf","monthIndex","yearIndex","Number","slice","isNaN","finalDate","validStart","validEnd","startUnix","undefined","endUnix","errors","join","inputContainer","input","dark","CalendarInput","forwardRef","StyleSheet","create","padding","flexDirection","flex","width","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n View,\n StyleSheet,\n TextInput as TextInputNative,\n Keyboard,\n} from 'react-native'\n\nimport { CalendarDate, ModeType, ValidRangeType } from './Calendar'\nimport { LocalState } from './DatePickerModalContent'\nimport TextInputWithMask from '../TextInputMask'\nimport { HelperText, useTheme } from 'react-native-paper'\nimport { dateToUnix, isDateWithinOptionalRange } from './dateUtils'\n\nfunction CalendarEdit({\n mode,\n state,\n label = '',\n startLabel = 'Start',\n endLabel = 'End',\n collapsed,\n onChange,\n validRange,\n}: {\n mode: ModeType\n label?: string\n startLabel?: string\n endLabel?: string\n state: LocalState\n collapsed: boolean\n onChange: (s: LocalState) => any\n validRange: ValidRangeType | undefined\n}) {\n const dateInput = React.useRef<TextInputNative | null>(null)\n const startInput = React.useRef<TextInputNative | null>(null)\n const endInput = React.useRef<TextInputNative | null>(null)\n\n // when switching views focus, or un-focus text input\n React.useEffect(() => {\n // hide open keyboard\n if (collapsed) {\n Keyboard.dismiss()\n }\n\n const inputsToFocus = [dateInput.current, startInput.current].filter(\n (n) => n\n ) as TextInputNative[]\n\n const inputsToBlur = [\n dateInput.current,\n startInput.current,\n endInput.current,\n ].filter((n) => n) as TextInputNative[]\n\n if (collapsed) {\n inputsToBlur.forEach((ip) => ip.blur())\n } else {\n inputsToFocus.forEach((ip) => ip.focus())\n }\n }, [mode, startInput, endInput, dateInput, collapsed])\n\n const onSubmitStartInput = React.useCallback(() => {\n if (endInput.current) {\n endInput.current.focus()\n }\n }, [endInput])\n\n const onSubmitEndInput = React.useCallback(() => {\n // TODO: close modal and persist range\n }, [])\n\n const onSubmitInput = React.useCallback(() => {\n // TODO: close modal and persist range\n }, [])\n\n return (\n <View style={styles.root}>\n <View style={styles.inner}>\n {mode === 'single' ? (\n <CalendarInput\n ref={dateInput}\n label={label}\n value={state.date}\n onChange={(date) => onChange({ ...state, date })}\n onSubmitEditing={onSubmitInput}\n validRange={validRange}\n />\n ) : null}\n {mode === 'range' ? (\n <>\n <CalendarInput\n ref={startInput}\n label={startLabel}\n value={state.startDate}\n onChange={(startDate) => onChange({ ...state, startDate })}\n returnKeyType={'next'}\n onSubmitEditing={onSubmitStartInput}\n validRange={validRange}\n />\n <View style={styles.separator} />\n <CalendarInput\n ref={endInput}\n label={endLabel}\n value={state.endDate}\n onChange={(endDate) => onChange({ ...state, endDate })}\n isEndDate\n onSubmitEditing={onSubmitEndInput}\n validRange={validRange}\n />\n </>\n ) : null}\n </View>\n </View>\n )\n}\n\nfunction CalendarInputPure(\n {\n label,\n value,\n onChange,\n isEndDate,\n returnKeyType,\n onSubmitEditing,\n locale,\n validRange,\n }: {\n locale?: undefined | string\n label: string\n value: CalendarDate\n onChange: (d: Date | undefined) => any\n isEndDate?: boolean\n returnKeyType?: string\n onSubmitEditing?: () => any\n validRange: ValidRangeType | undefined\n },\n ref: any\n) {\n const theme = useTheme()\n const [error, setError] = React.useState<null | string>(null)\n const formatter = React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n })\n }, [locale])\n\n const inputFormat = React.useMemo(() => {\n // TODO: something cleaner and more universal?\n const inputDate = formatter.format(new Date(2020, 10 - 1, 1))\n return inputDate\n .replace('2020', 'YYYY')\n .replace('10', 'MM')\n .replace('01', 'DD')\n }, [formatter])\n\n 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(inputFormat)\n return\n }\n\n const finalDate = isEndDate\n ? new Date(year, month - 1, day, 23, 59, 59)\n : new Date(year, month - 1, day)\n\n const validStart = validRange?.startDate\n const validEnd = validRange?.endDate\n if (\n !isDateWithinOptionalRange(finalDate, {\n startUnix: validStart ? dateToUnix(validStart) : undefined,\n endUnix: validEnd ? dateToUnix(validEnd) : undefined,\n })\n ) {\n let errors =\n validStart && validEnd\n ? [`${formatter.format(validStart)} - ${formatter.format(validEnd)}`]\n : [\n validStart ? `> ${formatter.format(validStart)}` : '',\n validEnd ? `< ${formatter.format(validEnd)}` : '',\n ]\n setError(errors.filter((n) => n).join(' '))\n return\n }\n\n setError(null)\n if (isEndDate) {\n onChange(finalDate)\n } else {\n onChange(finalDate)\n }\n }\n return (\n <View style={styles.inputContainer}>\n <TextInputWithMask\n ref={ref}\n value={formattedValue}\n style={styles.input}\n label={`${label} (${inputFormat})`}\n keyboardType={'number-pad'}\n placeholder={inputFormat}\n mask={inputFormat}\n onChangeText={onChangeText}\n returnKeyType={returnKeyType}\n onSubmitEditing={onSubmitEditing}\n keyboardAppearance={theme.dark ? 'dark' : 'default'}\n error={!!error}\n />\n <HelperText type=\"error\" visible={!!error}>\n {error}\n </HelperText>\n </View>\n )\n}\n\nconst CalendarInput = React.forwardRef(CalendarInputPure)\n\nconst styles = StyleSheet.create({\n root: { padding: 12 },\n inner: { flexDirection: 'row' },\n inputContainer: { flex: 1 },\n input: { flex: 1 },\n separator: { width: 12 },\n})\n\nexport default React.memo(CalendarEdit)\n"]}
1
+ {"version":3,"sources":["CalendarEdit.tsx"],"names":["CalendarEdit","mode","state","label","startLabel","endLabel","collapsed","onChange","validRange","locale","dateInput","React","useRef","startInput","endInput","useEffect","Keyboard","dismiss","inputsToFocus","current","filter","n","inputsToBlur","forEach","ip","blur","focus","onSubmitStartInput","useCallback","onSubmitEndInput","onSubmitInput","styles","root","inner","date","startDate","separator","endDate","StyleSheet","create","padding","flexDirection","inputContainer","flex","input","width","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n View,\n StyleSheet,\n TextInput as TextInputNative,\n Keyboard,\n} from 'react-native'\n\nimport type { ModeType, ValidRangeType } from './Calendar'\nimport type { LocalState } from './DatePickerModalContent'\n\nimport DatePickerInput from './DatePickerInput'\n\nfunction CalendarEdit({\n mode,\n state,\n label = '',\n startLabel = 'Start',\n endLabel = 'End',\n collapsed,\n onChange,\n validRange,\n locale,\n}: {\n mode: ModeType\n label?: string\n startLabel?: string\n endLabel?: string\n state: LocalState\n collapsed: boolean\n onChange: (s: LocalState) => any\n validRange: ValidRangeType | undefined\n locale: string\n}) {\n const dateInput = React.useRef<TextInputNative | null>(null)\n const startInput = React.useRef<TextInputNative | null>(null)\n const endInput = React.useRef<TextInputNative | null>(null)\n\n // when switching views focus, or un-focus text input\n React.useEffect(() => {\n // hide open keyboard\n if (collapsed) {\n Keyboard.dismiss()\n }\n\n const inputsToFocus = [dateInput.current, startInput.current].filter(\n (n) => n\n ) as TextInputNative[]\n\n const inputsToBlur = [\n dateInput.current,\n startInput.current,\n endInput.current,\n ].filter((n) => n) as TextInputNative[]\n\n if (collapsed) {\n inputsToBlur.forEach((ip) => ip.blur())\n } else {\n inputsToFocus.forEach((ip) => ip.focus())\n }\n }, [mode, startInput, endInput, dateInput, collapsed])\n\n const onSubmitStartInput = React.useCallback(() => {\n if (endInput.current) {\n endInput.current.focus()\n }\n }, [endInput])\n\n const onSubmitEndInput = React.useCallback(() => {\n // TODO: close modal and persist range\n }, [])\n\n const onSubmitInput = React.useCallback(() => {\n // TODO: close modal and persist range\n }, [])\n\n return (\n <View style={styles.root}>\n <View style={styles.inner}>\n {mode === 'single' ? (\n <DatePickerInput\n inputMode=\"start\"\n ref={dateInput}\n label={label}\n value={state.date}\n onChange={(date) => onChange({ ...state, date })}\n onSubmitEditing={onSubmitInput}\n validRange={validRange}\n locale={locale}\n withModal={false}\n autoCompleteType={'off'}\n />\n ) : null}\n {mode === 'range' ? (\n <>\n <DatePickerInput\n inputMode=\"start\"\n ref={startInput}\n label={startLabel}\n value={state.startDate}\n onChange={(startDate) => onChange({ ...state, startDate })}\n returnKeyType={'next'}\n onSubmitEditing={onSubmitStartInput}\n validRange={validRange}\n locale={locale}\n withModal={false}\n autoCompleteType={'off'}\n />\n <View style={styles.separator} />\n <DatePickerInput\n inputMode=\"end\"\n ref={endInput}\n label={endLabel}\n value={state.endDate}\n onChange={(endDate) => onChange({ ...state, endDate })}\n onSubmitEditing={onSubmitEndInput}\n validRange={validRange}\n locale={locale}\n withModal={false}\n autoCompleteType={'off'}\n />\n </>\n ) : null}\n </View>\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n root: { padding: 12 },\n inner: { flexDirection: 'row' },\n inputContainer: { flex: 1 },\n input: { flex: 1 },\n separator: { width: 12 },\n})\n\nexport default React.memo(CalendarEdit)\n"]}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getCalendarHeaderHeight = getCalendarHeaderHeight;
7
6
  exports.default = void 0;
7
+ exports.getCalendarHeaderHeight = getCalendarHeaderHeight;
8
8
 
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
 
@@ -14,9 +14,9 @@ var _reactNativePaper = require("react-native-paper");
14
14
 
15
15
  var _DayNames = _interopRequireWildcard(require("./DayNames"));
16
16
 
17
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
17
+ 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); }
18
18
 
19
- 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; }
19
+ 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; }
20
20
 
21
21
  const buttonContainerHeight = 56;
22
22
  const buttonContainerMarginTop = 4;
@@ -30,13 +30,14 @@ function getCalendarHeaderHeight(scrollMode) {
30
30
  return _DayNames.dayNamesHeight;
31
31
  }
32
32
 
33
- function CalendarHeader({
34
- scrollMode,
35
- onPrev,
36
- onNext,
37
- disableWeekDays,
38
- locale
39
- }) {
33
+ function CalendarHeader(_ref) {
34
+ let {
35
+ scrollMode,
36
+ onPrev,
37
+ onNext,
38
+ disableWeekDays,
39
+ locale
40
+ } = _ref;
40
41
  const theme = (0, _reactNativePaper.useTheme)();
41
42
  const isHorizontal = scrollMode === 'horizontal';
42
43
  return /*#__PURE__*/React.createElement(_reactNative.View, {
@@ -54,14 +55,20 @@ function CalendarHeader({
54
55
  }]
55
56
  }, /*#__PURE__*/React.createElement(_reactNativePaper.IconButton, {
56
57
  icon: "chevron-left",
57
- onPress: onPrev
58
+ onPress: onPrev // RN types bug
59
+ ,
60
+ hasTVPreferredFocus: undefined,
61
+ tvParallaxProperties: undefined
58
62
  })), /*#__PURE__*/React.createElement(_reactNative.View, {
59
63
  style: [styles.buttonWrapper, {
60
64
  backgroundColor: theme.colors.surface
61
65
  }]
62
66
  }, /*#__PURE__*/React.createElement(_reactNativePaper.IconButton, {
63
67
  icon: "chevron-right",
64
- onPress: onNext
68
+ onPress: onNext // RN types bug
69
+ ,
70
+ hasTVPreferredFocus: undefined,
71
+ tvParallaxProperties: undefined
65
72
  }))) : null, /*#__PURE__*/React.createElement(_DayNames.default, {
66
73
  disableWeekDays: disableWeekDays,
67
74
  locale: locale
@@ -1 +1 @@
1
- {"version":3,"sources":["CalendarHeader.tsx"],"names":["buttonContainerHeight","buttonContainerMarginTop","buttonContainerMarginBottom","getCalendarHeaderHeight","scrollMode","dayNamesHeight","CalendarHeader","onPrev","onNext","disableWeekDays","locale","theme","isHorizontal","styles","datePickerHeader","buttonContainer","spacer","buttonWrapper","backgroundColor","colors","surface","StyleSheet","create","position","top","right","left","zIndex","height","marginTop","marginBottom","flexDirection","alignItems","flex","React","memo"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAGA,MAAMA,qBAAqB,GAAG,EAA9B;AACA,MAAMC,wBAAwB,GAAG,CAAjC;AACA,MAAMC,2BAA2B,GAAG,CAApC;;AAEO,SAASC,uBAAT,CAAiCC,UAAjC,EAAwE;AAC7E,MAAIA,UAAU,KAAK,YAAnB,EAAiC;AAC/B,WACEJ,qBAAqB,GACrBC,wBADA,GAEAC,2BAFA,GAGAG,wBAJF;AAMD;;AACD,SAAOA,wBAAP;AACD;;AAED,SAASC,cAAT,CAAwB;AACtBF,EAAAA,UADsB;AAEtBG,EAAAA,MAFsB;AAGtBC,EAAAA,MAHsB;AAItBC,EAAAA,eAJsB;AAKtBC,EAAAA;AALsB,CAAxB,EAYG;AACD,QAAMC,KAAK,GAAG,iCAAd;AACA,QAAMC,YAAY,GAAGR,UAAU,KAAK,YAApC;AACA,sBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAES,MAAM,CAACC,gBAApB;AAAsC,IAAA,aAAa,EAAE;AAArD,KACGF,YAAY,gBACX,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEC,MAAM,CAACE,eAApB;AAAqC,IAAA,aAAa,EAAE;AAApD,kBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEF,MAAM,CAACG,MAApB;AAA4B,IAAA,aAAa,EAAE;AAA3C,IADF,eAEE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLH,MAAM,CAACI,aADF,EAEL;AAAEC,MAAAA,eAAe,EAAEP,KAAK,CAACQ,MAAN,CAAaC;AAAhC,KAFK;AADT,kBAME,oBAAC,4BAAD;AAAY,IAAA,IAAI,EAAC,cAAjB;AAAgC,IAAA,OAAO,EAAEb;AAAzC,IANF,CAFF,eAWE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLM,MAAM,CAACI,aADF,EAEL;AAAEC,MAAAA,eAAe,EAAEP,KAAK,CAACQ,MAAN,CAAaC;AAAhC,KAFK;AADT,kBAME,oBAAC,4BAAD;AAAY,IAAA,IAAI,EAAC,eAAjB;AAAiC,IAAA,OAAO,EAAEZ;AAA1C,IANF,CAXF,CADW,GAqBT,IAtBN,eAuBE,oBAAC,iBAAD;AAAU,IAAA,eAAe,EAAEC,eAA3B;AAA4C,IAAA,MAAM,EAAEC;AAApD,IAvBF,CADF;AA2BD;;AAED,MAAMG,MAAM,GAAGQ,wBAAWC,MAAX,CAAkB;AAC/BR,EAAAA,gBAAgB,EAAE;AAChBS,IAAAA,QAAQ,EAAE,UADM;AAEhBC,IAAAA,GAAG,EAAE,CAFW;AAGhBC,IAAAA,KAAK,EAAE,CAHS;AAIhBC,IAAAA,IAAI,EAAE,CAJU;AAKhBC,IAAAA,MAAM,EAAE;AALQ,GADa;AAQ/BZ,EAAAA,eAAe,EAAE;AACfa,IAAAA,MAAM,EAAE5B,qBADO;AAEf6B,IAAAA,SAAS,EAAE5B,wBAFI;AAGf6B,IAAAA,YAAY,EAAE5B,2BAHC;AAIf6B,IAAAA,aAAa,EAAE,KAJA;AAKfC,IAAAA,UAAU,EAAE;AALG,GARc;AAe/Bf,EAAAA,aAAa,EAAE,EAfgB;AAgB/BD,EAAAA,MAAM,EAAE;AAAEiB,IAAAA,IAAI,EAAE;AAAR;AAhBuB,CAAlB,CAAf;;4BAmBeC,KAAK,CAACC,IAAN,CAAW7B,cAAX,C","sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { IconButton, useTheme } from 'react-native-paper'\nimport DayNames, { dayNamesHeight } from './DayNames'\nimport { DisableWeekDaysType } from './dateUtils'\n\nconst buttonContainerHeight = 56\nconst buttonContainerMarginTop = 4\nconst buttonContainerMarginBottom = 8\n\nexport function getCalendarHeaderHeight(scrollMode: 'horizontal' | 'vertical') {\n if (scrollMode === 'horizontal') {\n return (\n buttonContainerHeight +\n buttonContainerMarginTop +\n buttonContainerMarginBottom +\n dayNamesHeight\n )\n }\n return dayNamesHeight\n}\n\nfunction CalendarHeader({\n scrollMode,\n onPrev,\n onNext,\n disableWeekDays,\n locale,\n}: {\n locale: undefined | string\n scrollMode: 'horizontal' | 'vertical'\n onPrev: () => any\n onNext: () => any\n disableWeekDays?: DisableWeekDaysType\n}) {\n const theme = useTheme()\n const isHorizontal = scrollMode === 'horizontal'\n return (\n <View style={styles.datePickerHeader} pointerEvents={'box-none'}>\n {isHorizontal ? (\n <View style={styles.buttonContainer} pointerEvents={'box-none'}>\n <View style={styles.spacer} pointerEvents={'box-none'} />\n <View\n style={[\n styles.buttonWrapper,\n { backgroundColor: theme.colors.surface },\n ]}\n >\n <IconButton icon=\"chevron-left\" onPress={onPrev} />\n </View>\n\n <View\n style={[\n styles.buttonWrapper,\n { backgroundColor: theme.colors.surface },\n ]}\n >\n <IconButton icon=\"chevron-right\" onPress={onNext} />\n </View>\n </View>\n ) : null}\n <DayNames disableWeekDays={disableWeekDays} locale={locale} />\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n datePickerHeader: {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0,\n zIndex: 10,\n },\n buttonContainer: {\n height: buttonContainerHeight,\n marginTop: buttonContainerMarginTop,\n marginBottom: buttonContainerMarginBottom,\n flexDirection: 'row',\n alignItems: 'center',\n },\n buttonWrapper: {},\n spacer: { flex: 1 },\n})\n\nexport default React.memo(CalendarHeader)\n"]}
1
+ {"version":3,"sources":["CalendarHeader.tsx"],"names":["buttonContainerHeight","buttonContainerMarginTop","buttonContainerMarginBottom","getCalendarHeaderHeight","scrollMode","dayNamesHeight","CalendarHeader","onPrev","onNext","disableWeekDays","locale","theme","isHorizontal","styles","datePickerHeader","buttonContainer","spacer","buttonWrapper","backgroundColor","colors","surface","undefined","StyleSheet","create","position","top","right","left","zIndex","height","marginTop","marginBottom","flexDirection","alignItems","flex","React","memo"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAGA,MAAMA,qBAAqB,GAAG,EAA9B;AACA,MAAMC,wBAAwB,GAAG,CAAjC;AACA,MAAMC,2BAA2B,GAAG,CAApC;;AAEO,SAASC,uBAAT,CAAiCC,UAAjC,EAAwE;AAC7E,MAAIA,UAAU,KAAK,YAAnB,EAAiC;AAC/B,WACEJ,qBAAqB,GACrBC,wBADA,GAEAC,2BAFA,GAGAG,wBAJF;AAMD;;AACD,SAAOA,wBAAP;AACD;;AAED,SAASC,cAAT,OAYG;AAAA,MAZqB;AACtBF,IAAAA,UADsB;AAEtBG,IAAAA,MAFsB;AAGtBC,IAAAA,MAHsB;AAItBC,IAAAA,eAJsB;AAKtBC,IAAAA;AALsB,GAYrB;AACD,QAAMC,KAAK,GAAG,iCAAd;AACA,QAAMC,YAAY,GAAGR,UAAU,KAAK,YAApC;AACA,sBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAES,MAAM,CAACC,gBAApB;AAAsC,IAAA,aAAa,EAAE;AAArD,KACGF,YAAY,gBACX,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEC,MAAM,CAACE,eAApB;AAAqC,IAAA,aAAa,EAAE;AAApD,kBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEF,MAAM,CAACG,MAApB;AAA4B,IAAA,aAAa,EAAE;AAA3C,IADF,eAEE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLH,MAAM,CAACI,aADF,EAEL;AAAEC,MAAAA,eAAe,EAAEP,KAAK,CAACQ,MAAN,CAAaC;AAAhC,KAFK;AADT,kBAME,oBAAC,4BAAD;AACE,IAAA,IAAI,EAAC,cADP;AAEE,IAAA,OAAO,EAAEb,MAFX,CAGE;AAHF;AAIE,IAAA,mBAAmB,EAAEc,SAJvB;AAKE,IAAA,oBAAoB,EAAEA;AALxB,IANF,CAFF,eAiBE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLR,MAAM,CAACI,aADF,EAEL;AAAEC,MAAAA,eAAe,EAAEP,KAAK,CAACQ,MAAN,CAAaC;AAAhC,KAFK;AADT,kBAME,oBAAC,4BAAD;AACE,IAAA,IAAI,EAAC,eADP;AAEE,IAAA,OAAO,EAAEZ,MAFX,CAGE;AAHF;AAIE,IAAA,mBAAmB,EAAEa,SAJvB;AAKE,IAAA,oBAAoB,EAAEA;AALxB,IANF,CAjBF,CADW,GAiCT,IAlCN,eAmCE,oBAAC,iBAAD;AAAU,IAAA,eAAe,EAAEZ,eAA3B;AAA4C,IAAA,MAAM,EAAEC;AAApD,IAnCF,CADF;AAuCD;;AAED,MAAMG,MAAM,GAAGS,wBAAWC,MAAX,CAAkB;AAC/BT,EAAAA,gBAAgB,EAAE;AAChBU,IAAAA,QAAQ,EAAE,UADM;AAEhBC,IAAAA,GAAG,EAAE,CAFW;AAGhBC,IAAAA,KAAK,EAAE,CAHS;AAIhBC,IAAAA,IAAI,EAAE,CAJU;AAKhBC,IAAAA,MAAM,EAAE;AALQ,GADa;AAQ/Bb,EAAAA,eAAe,EAAE;AACfc,IAAAA,MAAM,EAAE7B,qBADO;AAEf8B,IAAAA,SAAS,EAAE7B,wBAFI;AAGf8B,IAAAA,YAAY,EAAE7B,2BAHC;AAIf8B,IAAAA,aAAa,EAAE,KAJA;AAKfC,IAAAA,UAAU,EAAE;AALG,GARc;AAe/BhB,EAAAA,aAAa,EAAE,EAfgB;AAgB/BD,EAAAA,MAAM,EAAE;AAAEkB,IAAAA,IAAI,EAAE;AAAR;AAhBuB,CAAlB,CAAf;;4BAmBeC,KAAK,CAACC,IAAN,CAAW9B,cAAX,C","sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { IconButton, useTheme } from 'react-native-paper'\nimport DayNames, { dayNamesHeight } from './DayNames'\nimport type { DisableWeekDaysType } from './dateUtils'\n\nconst buttonContainerHeight = 56\nconst buttonContainerMarginTop = 4\nconst buttonContainerMarginBottom = 8\n\nexport function getCalendarHeaderHeight(scrollMode: 'horizontal' | 'vertical') {\n if (scrollMode === 'horizontal') {\n return (\n buttonContainerHeight +\n buttonContainerMarginTop +\n buttonContainerMarginBottom +\n dayNamesHeight\n )\n }\n return dayNamesHeight\n}\n\nfunction CalendarHeader({\n scrollMode,\n onPrev,\n onNext,\n disableWeekDays,\n locale,\n}: {\n locale: undefined | string\n scrollMode: 'horizontal' | 'vertical'\n onPrev: () => any\n onNext: () => any\n disableWeekDays?: DisableWeekDaysType\n}) {\n const theme = useTheme()\n const isHorizontal = scrollMode === 'horizontal'\n return (\n <View style={styles.datePickerHeader} pointerEvents={'box-none'}>\n {isHorizontal ? (\n <View style={styles.buttonContainer} pointerEvents={'box-none'}>\n <View style={styles.spacer} pointerEvents={'box-none'} />\n <View\n style={[\n styles.buttonWrapper,\n { backgroundColor: theme.colors.surface },\n ]}\n >\n <IconButton\n icon=\"chevron-left\"\n onPress={onPrev}\n // RN types bug\n hasTVPreferredFocus={undefined}\n tvParallaxProperties={undefined}\n />\n </View>\n\n <View\n style={[\n styles.buttonWrapper,\n { backgroundColor: theme.colors.surface },\n ]}\n >\n <IconButton\n icon=\"chevron-right\"\n onPress={onNext}\n // RN types bug\n hasTVPreferredFocus={undefined}\n tvParallaxProperties={undefined}\n />\n </View>\n </View>\n ) : null}\n <DayNames disableWeekDays={disableWeekDays} locale={locale} />\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n datePickerHeader: {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0,\n zIndex: 10,\n },\n buttonContainer: {\n height: buttonContainerHeight,\n marginTop: buttonContainerMarginTop,\n marginBottom: buttonContainerMarginBottom,\n flexDirection: 'row',\n alignItems: 'center',\n },\n buttonWrapper: {},\n spacer: { flex: 1 },\n})\n\nexport default React.memo(CalendarHeader)\n"]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = DatePickerInput;
6
+ exports.default = void 0;
7
7
 
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
 
@@ -15,55 +15,128 @@ var _reactNative = require("react-native");
15
15
 
16
16
  var _DatePickerModal = _interopRequireDefault(require("./DatePickerModal"));
17
17
 
18
+ var _inputUtils = _interopRequireDefault(require("./inputUtils"));
19
+
20
+ var _utils = require("../utils");
21
+
18
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
23
 
20
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
24
+ 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); }
25
+
26
+ 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
27
 
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; }
28
+ 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); }
23
29
 
24
- function DatePickerInput() {
30
+ function DatePickerInput(_ref, ref) {
31
+ let {
32
+ label,
33
+ value,
34
+ onChange,
35
+ style,
36
+ locale,
37
+ validRange,
38
+ inputMode,
39
+ withModal = true,
40
+ withDateFormatInLabel = true,
41
+ ...rest
42
+ } = _ref;
43
+ const theme = (0, _reactNativePaper.useTheme)();
44
+ const {
45
+ formattedValue,
46
+ inputFormat,
47
+ onChangeText,
48
+ error
49
+ } = (0, _inputUtils.default)({
50
+ locale,
51
+ value,
52
+ validRange,
53
+ inputMode,
54
+ onChange
55
+ });
25
56
  const [visible, setVisible] = React.useState(false);
26
57
  const onDismiss = React.useCallback(() => {
27
58
  setVisible(false);
28
59
  }, [setVisible]);
29
- const onConfirm = React.useCallback(() => {
60
+ const onChangeRef = (0, _utils.useLatest)(onChange);
61
+ const onInnerConfirm = React.useCallback(_ref2 => {
62
+ let {
63
+ date
64
+ } = _ref2;
30
65
  setVisible(false);
31
- }, [setVisible]);
66
+ onChangeRef.current(date);
67
+ }, [setVisible, onChangeRef]);
32
68
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_reactNative.View, {
33
69
  style: styles.root
34
- }, /*#__PURE__*/React.createElement(_TextInputMask.default, {
35
- value: '',
36
- keyboardType: 'numeric',
37
- placeholder: 'DD-MM-YYY',
38
- mask: 'DD-MM-YYY',
39
- onChangeText: () => {},
40
- style: styles.input
41
- }), /*#__PURE__*/React.createElement(_reactNativePaper.IconButton, {
70
+ }, /*#__PURE__*/React.createElement(_TextInputMask.default, _extends({}, rest, {
71
+ ref: ref,
72
+ label: getLabel({
73
+ label,
74
+ inputFormat,
75
+ withDateFormatInLabel
76
+ }),
77
+ value: formattedValue,
78
+ keyboardType: 'number-pad',
79
+ placeholder: inputFormat,
80
+ mask: inputFormat,
81
+ onChangeText: onChangeText,
82
+ keyboardAppearance: theme.dark ? 'dark' : 'default',
83
+ error: !!error,
84
+ style: [styles.input, style]
85
+ })), withModal ? /*#__PURE__*/React.createElement(_reactNativePaper.IconButton, {
42
86
  size: 24,
43
87
  style: styles.calendarButton,
44
88
  icon: "calendar",
45
- onPress: () => setVisible(true)
46
- })), /*#__PURE__*/React.createElement(_DatePickerModal.default, {
89
+ onPress: () => setVisible(true) // RN types bug
90
+ ,
91
+ hasTVPreferredFocus: undefined,
92
+ tvParallaxProperties: undefined
93
+ }) : null), /*#__PURE__*/React.createElement(_reactNativePaper.HelperText, {
94
+ type: "error",
95
+ visible: !!error
96
+ }, error), withModal ? /*#__PURE__*/React.createElement(_DatePickerModal.default, {
97
+ date: value,
47
98
  mode: "single",
48
99
  visible: visible,
49
100
  onDismiss: onDismiss,
50
- onConfirm: onConfirm
51
- }));
101
+ onConfirm: onInnerConfirm,
102
+ locale: locale,
103
+ dateMode: inputMode
104
+ }) : null);
105
+ }
106
+
107
+ function getLabel(_ref3) {
108
+ let {
109
+ withDateFormatInLabel,
110
+ inputFormat,
111
+ label
112
+ } = _ref3;
113
+
114
+ if (withDateFormatInLabel) {
115
+ return label ? `${label} (${inputFormat})` : inputFormat;
116
+ }
117
+
118
+ return label || '';
52
119
  }
53
120
 
54
121
  const styles = _reactNative.StyleSheet.create({
55
122
  root: {
123
+ minWidth: 150,
56
124
  flexDirection: 'row',
57
125
  position: 'relative',
58
126
  alignItems: 'center',
59
- flex: 1
127
+ flexGrow: 1,
128
+ alignSelf: 'flex-start'
60
129
  },
61
130
  input: {
62
- flex: 1
131
+ flexGrow: 1
63
132
  },
64
133
  calendarButton: {
65
134
  position: 'absolute',
66
135
  right: 0
67
136
  }
68
137
  });
138
+
139
+ var _default = /*#__PURE__*/React.forwardRef(DatePickerInput);
140
+
141
+ exports.default = _default;
69
142
  //# sourceMappingURL=DatePickerInput.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["DatePickerInput.tsx"],"names":["DatePickerInput","visible","setVisible","React","useState","onDismiss","useCallback","onConfirm","styles","root","input","calendarButton","StyleSheet","create","flexDirection","position","alignItems","flex","right"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;AAEe,SAASA,eAAT,GAA2B;AACxC,QAAM,CAACC,OAAD,EAAUC,UAAV,IAAwBC,KAAK,CAACC,QAAN,CAAwB,KAAxB,CAA9B;AACA,QAAMC,SAAS,GAAGF,KAAK,CAACG,WAAN,CAAkB,MAAM;AACxCJ,IAAAA,UAAU,CAAC,KAAD,CAAV;AACD,GAFiB,EAEf,CAACA,UAAD,CAFe,CAAlB;AAGA,QAAMK,SAAS,GAAGJ,KAAK,CAACG,WAAN,CAAkB,MAAM;AACxCJ,IAAAA,UAAU,CAAC,KAAD,CAAV;AACD,GAFiB,EAEf,CAACA,UAAD,CAFe,CAAlB;AAIA,sBACE,uDACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEM,MAAM,CAACC;AAApB,kBACE,oBAAC,sBAAD;AACE,IAAA,KAAK,EAAE,EADT;AAEE,IAAA,YAAY,EAAE,SAFhB;AAGE,IAAA,WAAW,EAAE,WAHf;AAIE,IAAA,IAAI,EAAE,WAJR;AAKE,IAAA,YAAY,EAAE,MAAM,CAAE,CALxB;AAME,IAAA,KAAK,EAAED,MAAM,CAACE;AANhB,IADF,eASE,oBAAC,4BAAD;AACE,IAAA,IAAI,EAAE,EADR;AAEE,IAAA,KAAK,EAAEF,MAAM,CAACG,cAFhB;AAGE,IAAA,IAAI,EAAC,UAHP;AAIE,IAAA,OAAO,EAAE,MAAMT,UAAU,CAAC,IAAD;AAJ3B,IATF,CADF,eAiBE,oBAAC,wBAAD;AACE,IAAA,IAAI,EAAC,QADP;AAEE,IAAA,OAAO,EAAED,OAFX;AAGE,IAAA,SAAS,EAAEI,SAHb;AAIE,IAAA,SAAS,EAAEE;AAJb,IAjBF,CADF;AA0BD;;AAED,MAAMC,MAAM,GAAGI,wBAAWC,MAAX,CAAkB;AAC/BJ,EAAAA,IAAI,EAAE;AACJK,IAAAA,aAAa,EAAE,KADX;AAEJC,IAAAA,QAAQ,EAAE,UAFN;AAGJC,IAAAA,UAAU,EAAE,QAHR;AAIJC,IAAAA,IAAI,EAAE;AAJF,GADyB;AAO/BP,EAAAA,KAAK,EAAE;AAAEO,IAAAA,IAAI,EAAE;AAAR,GAPwB;AAQ/BN,EAAAA,cAAc,EAAE;AAAEI,IAAAA,QAAQ,EAAE,UAAZ;AAAwBG,IAAAA,KAAK,EAAE;AAA/B;AARe,CAAlB,CAAf","sourcesContent":["import * as React from 'react'\n\nimport TextInputWithMask from '../TextInputMask'\nimport { IconButton } from 'react-native-paper'\nimport { View, StyleSheet } from 'react-native'\nimport DatePickerModal from './DatePickerModal'\n\nexport default function DatePickerInput() {\n const [visible, setVisible] = React.useState<boolean>(false)\n const onDismiss = React.useCallback(() => {\n setVisible(false)\n }, [setVisible])\n const onConfirm = React.useCallback(() => {\n setVisible(false)\n }, [setVisible])\n\n return (\n <>\n <View style={styles.root}>\n <TextInputWithMask\n value={''}\n keyboardType={'numeric'}\n placeholder={'DD-MM-YYY'}\n mask={'DD-MM-YYY'}\n onChangeText={() => {}}\n style={styles.input}\n />\n <IconButton\n size={24}\n style={styles.calendarButton}\n icon=\"calendar\"\n onPress={() => setVisible(true)}\n />\n </View>\n <DatePickerModal\n mode=\"single\"\n visible={visible}\n onDismiss={onDismiss}\n onConfirm={onConfirm}\n />\n </>\n )\n}\n\nconst styles = StyleSheet.create({\n root: {\n flexDirection: 'row',\n position: 'relative',\n alignItems: 'center',\n flex: 1,\n },\n input: { flex: 1 },\n calendarButton: { position: 'absolute', right: 0 },\n})\n"]}
1
+ {"version":3,"sources":["DatePickerInput.tsx"],"names":["DatePickerInput","ref","label","value","onChange","style","locale","validRange","inputMode","withModal","withDateFormatInLabel","rest","theme","formattedValue","inputFormat","onChangeText","error","visible","setVisible","React","useState","onDismiss","useCallback","onChangeRef","onInnerConfirm","date","current","styles","root","getLabel","dark","input","calendarButton","undefined","StyleSheet","create","minWidth","flexDirection","position","alignItems","flexGrow","alignSelf","right","forwardRef"],"mappings":"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","sourcesContent":["import * as React from 'react'\n\nimport TextInputWithMask from '../TextInputMask'\nimport { HelperText, IconButton, TextInput, useTheme } from 'react-native-paper'\nimport { View, StyleSheet } from 'react-native'\nimport DatePickerModal from './DatePickerModal'\nimport useDateInput from './inputUtils'\nimport type { ValidRangeType } from './Calendar'\nimport { useLatest } from '../utils'\n\nfunction DatePickerInput(\n {\n label,\n value,\n onChange,\n style,\n locale,\n validRange,\n inputMode,\n withModal = true,\n withDateFormatInLabel = true,\n ...rest\n }: Omit<React.ComponentProps<typeof TextInput>, 'value' | 'onChange'> & {\n inputMode: 'start' | 'end'\n locale: string\n onChange: (date: Date | undefined) => void\n value: Date | undefined\n validRange?: ValidRangeType | undefined\n withModal?: boolean\n withDateFormatInLabel?: boolean\n },\n ref: any\n) {\n const theme = useTheme()\n const { formattedValue, inputFormat, onChangeText, error } = useDateInput({\n locale,\n value,\n validRange,\n inputMode,\n onChange,\n })\n\n const [visible, setVisible] = React.useState<boolean>(false)\n const onDismiss = React.useCallback(() => {\n setVisible(false)\n }, [setVisible])\n const onChangeRef = useLatest(onChange)\n const onInnerConfirm = React.useCallback(\n ({ date }) => {\n setVisible(false)\n onChangeRef.current(date)\n },\n [setVisible, onChangeRef]\n )\n\n return (\n <>\n <View style={styles.root}>\n <TextInputWithMask\n {...rest}\n ref={ref}\n label={getLabel({ label, inputFormat, withDateFormatInLabel })}\n value={formattedValue}\n keyboardType={'number-pad'}\n placeholder={inputFormat}\n mask={inputFormat}\n onChangeText={onChangeText}\n keyboardAppearance={theme.dark ? 'dark' : 'default'}\n error={!!error}\n style={[styles.input, style]}\n />\n {withModal ? (\n <IconButton\n size={24}\n style={styles.calendarButton}\n icon=\"calendar\"\n onPress={() => setVisible(true)}\n // RN types bug\n hasTVPreferredFocus={undefined}\n tvParallaxProperties={undefined}\n />\n ) : null}\n </View>\n <HelperText type=\"error\" visible={!!error}>\n {error}\n </HelperText>\n\n {withModal ? (\n <DatePickerModal\n date={value}\n mode=\"single\"\n visible={visible}\n onDismiss={onDismiss}\n onConfirm={onInnerConfirm}\n locale={locale}\n dateMode={inputMode}\n />\n ) : null}\n </>\n )\n}\n\nfunction getLabel({\n withDateFormatInLabel,\n inputFormat,\n label,\n}: {\n withDateFormatInLabel: boolean\n inputFormat: string\n label: string | undefined\n}) {\n if (withDateFormatInLabel) {\n return label ? `${label} (${inputFormat})` : inputFormat\n }\n return label || ''\n}\n\nconst styles = StyleSheet.create({\n root: {\n minWidth: 150,\n flexDirection: 'row',\n position: 'relative',\n alignItems: 'center',\n flexGrow: 1,\n alignSelf: 'flex-start',\n },\n input: {\n flexGrow: 1,\n },\n calendarButton: { position: 'absolute', right: 0 },\n})\nexport default React.forwardRef(DatePickerInput)\n"]}
@@ -14,15 +14,13 @@ var _reactNativePaper = require("react-native-paper");
14
14
 
15
15
  var _DatePickerModalContent = _interopRequireDefault(require("./DatePickerModalContent"));
16
16
 
17
- var _color = _interopRequireDefault(require("color"));
18
-
19
17
  var _utils = require("../utils");
20
18
 
21
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
20
 
23
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
21
+ 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); }
24
22
 
25
- 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; }
23
+ 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; }
26
24
 
27
25
  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); }
28
26
 
@@ -43,7 +41,7 @@ function DatePickerModal(props) {
43
41
  });
44
42
 
45
43
  const isLight = (0, _utils.useHeaderColorIsLight)();
46
- const statusBarColor = (0, React.useMemo)(() => (0, _color.default)(theme.colors.primary).darken(0.2).hex(), [theme]);
44
+ const headerBackgroundColor = (0, _utils.useHeaderBackgroundColor)();
47
45
  return /*#__PURE__*/React.createElement(_reactNative.View, {
48
46
  style: [_reactNative.StyleSheet.absoluteFill],
49
47
  pointerEvents: "box-none"
@@ -75,7 +73,7 @@ function DatePickerModal(props) {
75
73
  }), disableStatusBarPadding ? null : /*#__PURE__*/React.createElement(_reactNative.View, {
76
74
  style: [{
77
75
  height: _reactNative.StatusBar.currentHeight,
78
- backgroundColor: statusBarColor
76
+ backgroundColor: headerBackgroundColor
79
77
  }]
80
78
  }), /*#__PURE__*/React.createElement(_DatePickerModalContent.default, _extends({}, rest, {
81
79
  disableSafeTop: disableStatusBar
@@ -1 +1 @@
1
- {"version":3,"sources":["DatePickerModal.tsx"],"names":["DatePickerModal","props","theme","dimensions","visible","animationType","disableStatusBar","disableStatusBarPadding","rest","animationTypeCalculated","Platform","select","web","default","isLight","statusBarColor","colors","primary","darken","hex","StyleSheet","absoluteFill","onDismiss","supportedOrientations","styles","modalBackground","backgroundColor","backdrop","modalRoot","modalContent","surface","width","modalContentBig","height","StatusBar","currentHeight","create","justifyContent","alignItems","flex","maxWidth","maxHeight","borderRadius","overflow","React","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n Modal,\n StyleSheet,\n TouchableWithoutFeedback,\n useWindowDimensions,\n View,\n Platform,\n StatusBar,\n} from 'react-native'\n\nimport { useTheme } from 'react-native-paper'\nimport DatePickerModalContent, {\n DatePickerModalContentMultiProps,\n DatePickerModalContentRangeProps,\n DatePickerModalContentSingleProps,\n} from './DatePickerModalContent'\nimport { useMemo } from 'react'\nimport Color from 'color'\nimport { useHeaderColorIsLight } from '../utils'\n\ninterface DatePickerModalProps {\n visible: boolean\n animationType?: 'slide' | 'fade' | 'none'\n disableStatusBar?: boolean\n disableStatusBarPadding?: boolean\n}\n\nexport interface DatePickerModalSingleProps\n extends DatePickerModalContentSingleProps,\n DatePickerModalProps {}\n\nexport interface DatePickerModalMultiProps\n extends DatePickerModalContentMultiProps,\n DatePickerModalProps {}\n\nexport interface DatePickerModalRangeProps\n extends DatePickerModalContentRangeProps,\n DatePickerModalProps {}\n\nexport function DatePickerModal(\n props:\n | DatePickerModalRangeProps\n | DatePickerModalSingleProps\n | DatePickerModalMultiProps\n) {\n const theme = useTheme()\n const dimensions = useWindowDimensions()\n const {\n visible,\n animationType,\n disableStatusBar,\n disableStatusBarPadding,\n ...rest\n } = props\n const animationTypeCalculated =\n animationType ||\n Platform.select({\n web: 'none',\n default: 'slide',\n })\n\n const isLight = useHeaderColorIsLight()\n const statusBarColor = useMemo<string>(\n () => Color(theme.colors.primary).darken(0.2).hex(),\n [theme]\n )\n\n return (\n <View style={[StyleSheet.absoluteFill]} pointerEvents=\"box-none\">\n <Modal\n animationType={animationTypeCalculated}\n transparent={true}\n visible={visible}\n onRequestClose={rest.onDismiss}\n presentationStyle=\"overFullScreen\"\n supportedOrientations={supportedOrientations}\n //@ts-ignore\n statusBarTranslucent={true}\n >\n <>\n <TouchableWithoutFeedback onPress={rest.onDismiss}>\n <View\n style={[\n StyleSheet.absoluteFill,\n styles.modalBackground,\n { backgroundColor: theme.colors.backdrop },\n ]}\n />\n </TouchableWithoutFeedback>\n <View\n style={[StyleSheet.absoluteFill, styles.modalRoot]}\n pointerEvents=\"box-none\"\n >\n <View\n style={[\n styles.modalContent,\n { backgroundColor: theme.colors.surface },\n dimensions.width > 650 ? styles.modalContentBig : null,\n ]}\n >\n {disableStatusBar ? null : (\n <StatusBar\n translucent={true}\n barStyle={isLight ? 'dark-content' : 'light-content'}\n />\n )}\n {disableStatusBarPadding ? null : (\n <View\n style={[\n {\n height: StatusBar.currentHeight,\n backgroundColor: statusBarColor,\n },\n ]}\n />\n )}\n <DatePickerModalContent\n {...rest}\n disableSafeTop={disableStatusBar}\n />\n </View>\n </View>\n </>\n </Modal>\n </View>\n )\n}\nconst supportedOrientations: any = [\n 'portrait',\n 'portrait-upside-down',\n 'landscape',\n 'landscape-left',\n 'landscape-right',\n]\n\nconst styles = StyleSheet.create({\n modalRoot: {\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1,\n },\n modalBackground: {\n flex: 1,\n },\n modalContent: {\n flex: 1,\n width: '100%',\n },\n modalContentBig: {\n maxWidth: 600,\n maxHeight: 800,\n borderRadius: 10,\n width: '100%',\n overflow: 'hidden',\n },\n})\n\nexport default React.memo(DatePickerModal)\n"]}
1
+ {"version":3,"sources":["DatePickerModal.tsx"],"names":["DatePickerModal","props","theme","dimensions","visible","animationType","disableStatusBar","disableStatusBarPadding","rest","animationTypeCalculated","Platform","select","web","default","isLight","headerBackgroundColor","StyleSheet","absoluteFill","onDismiss","supportedOrientations","styles","modalBackground","backgroundColor","colors","backdrop","modalRoot","modalContent","surface","width","modalContentBig","height","StatusBar","currentHeight","create","justifyContent","alignItems","flex","maxWidth","maxHeight","borderRadius","overflow","React","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n Modal,\n StyleSheet,\n TouchableWithoutFeedback,\n useWindowDimensions,\n View,\n Platform,\n StatusBar,\n} from 'react-native'\n\nimport { useTheme } from 'react-native-paper'\nimport DatePickerModalContent, {\n DatePickerModalContentMultiProps,\n DatePickerModalContentRangeProps,\n DatePickerModalContentSingleProps,\n} from './DatePickerModalContent'\nimport { useHeaderBackgroundColor, useHeaderColorIsLight } from '../utils'\n\ninterface DatePickerModalProps {\n visible: boolean\n animationType?: 'slide' | 'fade' | 'none'\n disableStatusBar?: boolean\n disableStatusBarPadding?: boolean\n}\n\nexport interface DatePickerModalSingleProps\n extends DatePickerModalContentSingleProps,\n DatePickerModalProps {}\n\nexport interface DatePickerModalMultiProps\n extends DatePickerModalContentMultiProps,\n DatePickerModalProps {}\n\nexport interface DatePickerModalRangeProps\n extends DatePickerModalContentRangeProps,\n DatePickerModalProps {}\n\nexport function DatePickerModal(\n props:\n | DatePickerModalRangeProps\n | DatePickerModalSingleProps\n | DatePickerModalMultiProps\n) {\n const theme = useTheme()\n const dimensions = useWindowDimensions()\n const {\n visible,\n animationType,\n disableStatusBar,\n disableStatusBarPadding,\n ...rest\n } = props\n const animationTypeCalculated =\n animationType ||\n Platform.select({\n web: 'none',\n default: 'slide',\n })\n\n const isLight = useHeaderColorIsLight()\n const headerBackgroundColor = useHeaderBackgroundColor()\n\n return (\n <View style={[StyleSheet.absoluteFill]} pointerEvents=\"box-none\">\n <Modal\n animationType={animationTypeCalculated}\n transparent={true}\n visible={visible}\n onRequestClose={rest.onDismiss}\n presentationStyle=\"overFullScreen\"\n supportedOrientations={supportedOrientations}\n //@ts-ignore\n statusBarTranslucent={true}\n >\n <>\n <TouchableWithoutFeedback onPress={rest.onDismiss}>\n <View\n style={[\n StyleSheet.absoluteFill,\n styles.modalBackground,\n { backgroundColor: theme.colors.backdrop },\n ]}\n />\n </TouchableWithoutFeedback>\n <View\n style={[StyleSheet.absoluteFill, styles.modalRoot]}\n pointerEvents=\"box-none\"\n >\n <View\n style={[\n styles.modalContent,\n { backgroundColor: theme.colors.surface },\n dimensions.width > 650 ? styles.modalContentBig : null,\n ]}\n >\n {disableStatusBar ? null : (\n <StatusBar\n translucent={true}\n barStyle={isLight ? 'dark-content' : 'light-content'}\n />\n )}\n {disableStatusBarPadding ? null : (\n <View\n style={[\n {\n height: StatusBar.currentHeight,\n backgroundColor: headerBackgroundColor,\n },\n ]}\n />\n )}\n <DatePickerModalContent\n {...rest}\n disableSafeTop={disableStatusBar}\n />\n </View>\n </View>\n </>\n </Modal>\n </View>\n )\n}\nconst supportedOrientations: any = [\n 'portrait',\n 'portrait-upside-down',\n 'landscape',\n 'landscape-left',\n 'landscape-right',\n]\n\nconst styles = StyleSheet.create({\n modalRoot: {\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1,\n },\n modalBackground: {\n flex: 1,\n },\n modalContent: {\n flex: 1,\n width: '100%',\n },\n modalContentBig: {\n maxWidth: 600,\n maxHeight: 800,\n borderRadius: 10,\n width: '100%',\n overflow: 'hidden',\n },\n})\n\nexport default React.memo(DatePickerModal)\n"]}