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.
Files changed (245) hide show
  1. package/README.md +79 -22
  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 +32 -111
  9. package/lib/commonjs/Date/CalendarEdit.js.map +1 -1
  10. package/lib/commonjs/Date/CalendarHeader.js +23 -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 +2 -2
  15. package/lib/commonjs/Date/DatePickerModalContent.js +7 -4
  16. package/lib/commonjs/Date/DatePickerModalContent.js.map +1 -1
  17. package/lib/commonjs/Date/DatePickerModalContentHeader.js +43 -34
  18. package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
  19. package/lib/commonjs/Date/DatePickerModalHeader.js +12 -5
  20. package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
  21. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js +6 -5
  22. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
  23. package/lib/commonjs/Date/DateRangeInput.js +23 -24
  24. package/lib/commonjs/Date/DateRangeInput.js.map +1 -1
  25. package/lib/commonjs/Date/Day.js +7 -3
  26. package/lib/commonjs/Date/Day.js.map +1 -1
  27. package/lib/commonjs/Date/DayName.js +6 -5
  28. package/lib/commonjs/Date/DayName.js.map +1 -1
  29. package/lib/commonjs/Date/DayNames.js +7 -6
  30. package/lib/commonjs/Date/DayNames.js.map +1 -1
  31. package/lib/commonjs/Date/DayRange.js +9 -8
  32. package/lib/commonjs/Date/DayRange.js.map +1 -1
  33. package/lib/commonjs/Date/Month.js +59 -49
  34. package/lib/commonjs/Date/Month.js.map +1 -1
  35. package/lib/commonjs/Date/Swiper.js +35 -29
  36. package/lib/commonjs/Date/Swiper.js.map +1 -1
  37. package/lib/commonjs/Date/Swiper.native.js +29 -23
  38. package/lib/commonjs/Date/Swiper.native.js.map +1 -1
  39. package/lib/commonjs/Date/SwiperUtils.js +7 -6
  40. package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
  41. package/lib/commonjs/Date/YearPicker.js +30 -20
  42. package/lib/commonjs/Date/YearPicker.js.map +1 -1
  43. package/lib/commonjs/Date/dateUtils.js +106 -37
  44. package/lib/commonjs/Date/dateUtils.js.map +1 -1
  45. package/lib/commonjs/Date/inputUtils.js +84 -0
  46. package/lib/commonjs/Date/inputUtils.js.map +1 -0
  47. package/lib/commonjs/TextInputMask.js +11 -10
  48. package/lib/commonjs/TextInputMask.js.map +1 -1
  49. package/lib/commonjs/Time/AmPmSwitcher.js +37 -19
  50. package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
  51. package/lib/commonjs/Time/AnalogClock.js +25 -15
  52. package/lib/commonjs/Time/AnalogClock.js.map +1 -1
  53. package/lib/commonjs/Time/AnalogClockHours.js +17 -11
  54. package/lib/commonjs/Time/AnalogClockHours.js.map +1 -1
  55. package/lib/commonjs/Time/AnalogClockMinutes.js +7 -6
  56. package/lib/commonjs/Time/AnalogClockMinutes.js.map +1 -1
  57. package/lib/commonjs/Time/AnimatedClockSwitcher.js +8 -7
  58. package/lib/commonjs/Time/AnimatedClockSwitcher.js.map +1 -1
  59. package/lib/commonjs/Time/TimeInput.js +16 -12
  60. package/lib/commonjs/Time/TimeInput.js.map +1 -1
  61. package/lib/commonjs/Time/TimeInputs.js +12 -11
  62. package/lib/commonjs/Time/TimeInputs.js.map +1 -1
  63. package/lib/commonjs/Time/TimePicker.js +37 -15
  64. package/lib/commonjs/Time/TimePicker.js.map +1 -1
  65. package/lib/commonjs/Time/TimePickerModal.js +19 -15
  66. package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
  67. package/lib/commonjs/Time/timeUtils.js +14 -9
  68. package/lib/commonjs/Time/timeUtils.js.map +1 -1
  69. package/lib/commonjs/index.js +66 -5
  70. package/lib/commonjs/index.js.map +1 -1
  71. package/lib/commonjs/translations/en.js +25 -0
  72. package/lib/commonjs/translations/en.js.map +1 -0
  73. package/lib/commonjs/translations/enGB.js +25 -0
  74. package/lib/commonjs/translations/enGB.js.map +1 -0
  75. package/lib/commonjs/translations/nl.js +25 -0
  76. package/lib/commonjs/translations/nl.js.map +1 -0
  77. package/lib/commonjs/translations/pl.js +25 -0
  78. package/lib/commonjs/translations/pl.js.map +1 -0
  79. package/lib/commonjs/translations/utils.js +31 -0
  80. package/lib/commonjs/translations/utils.js.map +1 -0
  81. package/lib/commonjs/utils.js +19 -9
  82. package/lib/commonjs/utils.js.map +1 -1
  83. package/lib/module/Date/AnimatedCrossView.js +7 -6
  84. package/lib/module/Date/AnimatedCrossView.js.map +1 -1
  85. package/lib/module/Date/AutoSizer.js +4 -3
  86. package/lib/module/Date/AutoSizer.js.map +1 -1
  87. package/lib/module/Date/Calendar.js +46 -39
  88. package/lib/module/Date/Calendar.js.map +1 -1
  89. package/lib/module/Date/CalendarEdit.js +28 -104
  90. package/lib/module/Date/CalendarEdit.js.map +1 -1
  91. package/lib/module/Date/CalendarHeader.js +19 -9
  92. package/lib/module/Date/CalendarHeader.js.map +1 -1
  93. package/lib/module/Date/DatePickerInput.js +88 -18
  94. package/lib/module/Date/DatePickerInput.js.map +1 -1
  95. package/lib/module/Date/DatePickerModalContent.js +5 -2
  96. package/lib/module/Date/DatePickerModalContent.js.map +1 -1
  97. package/lib/module/Date/DatePickerModalContentHeader.js +38 -30
  98. package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
  99. package/lib/module/Date/DatePickerModalHeader.js +9 -3
  100. package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
  101. package/lib/module/Date/DatePickerModalHeaderBackground.js +4 -3
  102. package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
  103. package/lib/module/Date/DateRangeInput.js +22 -22
  104. package/lib/module/Date/DateRangeInput.js.map +1 -1
  105. package/lib/module/Date/Day.js +5 -1
  106. package/lib/module/Date/Day.js.map +1 -1
  107. package/lib/module/Date/DayName.js +4 -3
  108. package/lib/module/Date/DayName.js.map +1 -1
  109. package/lib/module/Date/DayNames.js +5 -4
  110. package/lib/module/Date/DayNames.js.map +1 -1
  111. package/lib/module/Date/DayRange.js +7 -6
  112. package/lib/module/Date/DayRange.js.map +1 -1
  113. package/lib/module/Date/Month.js +54 -45
  114. package/lib/module/Date/Month.js.map +1 -1
  115. package/lib/module/Date/Swiper.js +32 -26
  116. package/lib/module/Date/Swiper.js.map +1 -1
  117. package/lib/module/Date/Swiper.native.js +27 -21
  118. package/lib/module/Date/Swiper.native.js.map +1 -1
  119. package/lib/module/Date/SwiperUtils.js +5 -4
  120. package/lib/module/Date/SwiperUtils.js.map +1 -1
  121. package/lib/module/Date/YearPicker.js +28 -18
  122. package/lib/module/Date/YearPicker.js.map +1 -1
  123. package/lib/module/Date/dateUtils.js +78 -29
  124. package/lib/module/Date/dateUtils.js.map +1 -1
  125. package/lib/module/Date/inputUtils.js +70 -0
  126. package/lib/module/Date/inputUtils.js.map +1 -0
  127. package/lib/module/TextInputMask.js +9 -8
  128. package/lib/module/TextInputMask.js.map +1 -1
  129. package/lib/module/Time/AmPmSwitcher.js +35 -18
  130. package/lib/module/Time/AmPmSwitcher.js.map +1 -1
  131. package/lib/module/Time/AnalogClock.js +23 -14
  132. package/lib/module/Time/AnalogClock.js.map +1 -1
  133. package/lib/module/Time/AnalogClockHours.js +14 -9
  134. package/lib/module/Time/AnalogClockHours.js.map +1 -1
  135. package/lib/module/Time/AnalogClockMinutes.js +5 -4
  136. package/lib/module/Time/AnalogClockMinutes.js.map +1 -1
  137. package/lib/module/Time/AnimatedClockSwitcher.js +6 -5
  138. package/lib/module/Time/AnimatedClockSwitcher.js.map +1 -1
  139. package/lib/module/Time/TimeInput.js +14 -10
  140. package/lib/module/Time/TimeInput.js.map +1 -1
  141. package/lib/module/Time/TimeInputs.js +10 -9
  142. package/lib/module/Time/TimeInputs.js.map +1 -1
  143. package/lib/module/Time/TimePicker.js +32 -12
  144. package/lib/module/Time/TimePicker.js.map +1 -1
  145. package/lib/module/Time/TimePickerModal.js +17 -13
  146. package/lib/module/Time/TimePickerModal.js.map +1 -1
  147. package/lib/module/Time/timeUtils.js +5 -1
  148. package/lib/module/Time/timeUtils.js.map +1 -1
  149. package/lib/module/index.js +6 -0
  150. package/lib/module/index.js.map +1 -1
  151. package/lib/module/translations/en.js +18 -0
  152. package/lib/module/translations/en.js.map +1 -0
  153. package/lib/module/translations/enGB.js +18 -0
  154. package/lib/module/translations/enGB.js.map +1 -0
  155. package/lib/module/translations/nl.js +18 -0
  156. package/lib/module/translations/nl.js.map +1 -0
  157. package/lib/module/translations/pl.js +18 -0
  158. package/lib/module/translations/pl.js.map +1 -0
  159. package/lib/module/translations/utils.js +22 -0
  160. package/lib/module/translations/utils.js.map +1 -0
  161. package/lib/module/utils.js +11 -5
  162. package/lib/module/utils.js.map +1 -1
  163. package/lib/typescript/{src/Date → Date}/AnimatedCrossView.d.ts +0 -0
  164. package/lib/typescript/{src/Date → Date}/AutoSizer.d.ts +0 -0
  165. package/lib/typescript/{src/Date → Date}/Calendar.d.ts +5 -3
  166. package/lib/typescript/{src/Date → Date}/CalendarEdit.d.ts +3 -3
  167. package/lib/typescript/{src/Date → Date}/CalendarHeader.d.ts +1 -1
  168. package/lib/typescript/Date/DatePickerInput.d.ts +18 -0
  169. package/lib/typescript/{src/Date → Date}/DatePickerModal.d.ts +0 -0
  170. package/lib/typescript/{src/Date → Date}/DatePickerModalContent.d.ts +2 -1
  171. package/lib/typescript/{src/Date → Date}/DatePickerModalContentHeader.d.ts +4 -4
  172. package/lib/typescript/{src/Date → Date}/DatePickerModalHeader.d.ts +1 -0
  173. package/lib/typescript/{src/Date → Date}/DatePickerModalHeaderBackground.d.ts +0 -0
  174. package/lib/typescript/Date/DateRangeInput.d.ts +3 -0
  175. package/lib/typescript/{src/Date → Date}/Day.d.ts +0 -0
  176. package/lib/typescript/{src/Date → Date}/DayName.d.ts +0 -0
  177. package/lib/typescript/{src/Date → Date}/DayNames.d.ts +0 -0
  178. package/lib/typescript/{src/Date → Date}/DayRange.d.ts +0 -0
  179. package/lib/typescript/{src/Date → Date}/Month.d.ts +0 -0
  180. package/lib/typescript/{src/Date → Date}/Swiper.d.ts +0 -0
  181. package/lib/typescript/{src/Date → Date}/Swiper.native.d.ts +0 -0
  182. package/lib/typescript/{src/Date → Date}/SwiperUtils.d.ts +1 -1
  183. package/lib/typescript/{src/Date → Date}/Week.d.ts +0 -0
  184. package/lib/typescript/{src/Date → Date}/YearPicker.d.ts +0 -0
  185. package/lib/typescript/{src/Date → Date}/dateUtils.d.ts +15 -0
  186. package/lib/typescript/{src/Date → Date}/dateUtils.test.d.ts +0 -0
  187. package/lib/typescript/Date/inputUtils.d.ts +14 -0
  188. package/lib/typescript/TextInputMask.d.ts +11 -0
  189. package/lib/typescript/Time/AmPmSwitcher.d.ts +4 -0
  190. package/lib/typescript/{src/Time → Time}/AnalogClock.d.ts +1 -1
  191. package/lib/typescript/{src/Time → Time}/AnalogClockHours.d.ts +0 -0
  192. package/lib/typescript/{src/Time → Time}/AnalogClockMinutes.d.ts +0 -0
  193. package/lib/typescript/{src/Time → Time}/AnimatedClockSwitcher.d.ts +0 -0
  194. package/lib/typescript/{src/Time → Time}/TimeInput.d.ts +0 -0
  195. package/lib/typescript/{src/Time → Time}/TimeInputs.d.ts +1 -1
  196. package/lib/typescript/{src/Time → Time}/TimePicker.d.ts +4 -0
  197. package/lib/typescript/{src/Time → Time}/TimePickerModal.d.ts +1 -1
  198. package/lib/typescript/{src/Time → Time}/timeUtils.d.ts +0 -0
  199. package/lib/typescript/index.d.ts +13 -0
  200. package/lib/typescript/translations/en.d.ts +3 -0
  201. package/lib/typescript/translations/enGB.d.ts +3 -0
  202. package/lib/typescript/translations/nl.d.ts +3 -0
  203. package/lib/typescript/translations/pl.d.ts +3 -0
  204. package/lib/typescript/translations/utils.d.ts +18 -0
  205. package/lib/typescript/utils.d.ts +58 -0
  206. package/package.json +39 -38
  207. package/src/.DS_Store +0 -0
  208. package/src/Date/Calendar.tsx +14 -13
  209. package/src/Date/CalendarEdit.tsx +17 -121
  210. package/src/Date/CalendarHeader.tsx +18 -3
  211. package/src/Date/DatePickerInput.tsx +103 -25
  212. package/src/Date/DatePickerModalContent.tsx +5 -1
  213. package/src/Date/DatePickerModalContentHeader.tsx +26 -12
  214. package/src/Date/DatePickerModalHeader.tsx +8 -1
  215. package/src/Date/DateRangeInput.tsx +26 -17
  216. package/src/Date/Day.tsx +4 -0
  217. package/src/Date/Month.tsx +20 -44
  218. package/src/Date/Swiper.tsx +1 -0
  219. package/src/Date/SwiperUtils.ts +1 -1
  220. package/src/Date/YearPicker.tsx +6 -1
  221. package/src/Date/dateUtils.tsx +70 -9
  222. package/src/Date/inputUtils.ts +94 -0
  223. package/src/TextInputMask.tsx +10 -3
  224. package/src/Time/AmPmSwitcher.tsx +20 -11
  225. package/src/Time/AnalogClock.tsx +12 -14
  226. package/src/Time/AnalogClockHours.tsx +14 -5
  227. package/src/Time/AnalogClockMinutes.tsx +4 -1
  228. package/src/Time/TimeInput.tsx +3 -0
  229. package/src/Time/TimeInputs.tsx +1 -5
  230. package/src/Time/TimePicker.tsx +44 -22
  231. package/src/Time/TimePickerModal.tsx +4 -1
  232. package/src/Time/timeUtils.ts +4 -1
  233. package/src/index.tsx +7 -0
  234. package/src/translations/en.ts +20 -0
  235. package/src/translations/enGB.ts +20 -0
  236. package/src/translations/nl.ts +20 -0
  237. package/src/translations/pl.ts +21 -0
  238. package/src/translations/utils.ts +47 -0
  239. package/src/utils.ts +13 -5
  240. package/lib/typescript/src/Date/DatePickerInput.d.ts +0 -1
  241. package/lib/typescript/src/Date/DateRangeInput.d.ts +0 -1
  242. package/lib/typescript/src/TextInputMask.d.ts +0 -3
  243. package/lib/typescript/src/Time/AmPmSwitcher.d.ts +0 -4
  244. package/lib/typescript/src/index.d.ts +0 -6
  245. package/lib/typescript/src/utils.d.ts +0 -7
@@ -9,29 +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
- locale
34
- }) {
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;
35
32
  const dateInput = React.useRef(null);
36
33
  const startInput = React.useRef(null);
37
34
  const endInput = React.useRef(null); // when switching views focus, or un-focus text input
@@ -64,7 +61,8 @@ function CalendarEdit({
64
61
  style: styles.root
65
62
  }, /*#__PURE__*/React.createElement(_reactNative.View, {
66
63
  style: styles.inner
67
- }, mode === 'single' ? /*#__PURE__*/React.createElement(CalendarInput, {
64
+ }, mode === 'single' ? /*#__PURE__*/React.createElement(_DatePickerInput.default, {
65
+ inputMode: "start",
68
66
  ref: dateInput,
69
67
  label: label,
70
68
  value: state.date,
@@ -73,8 +71,11 @@ function CalendarEdit({
73
71
  }),
74
72
  onSubmitEditing: onSubmitInput,
75
73
  validRange: validRange,
76
- locale: locale
77
- }) : null, mode === 'range' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CalendarInput, {
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",
78
79
  ref: startInput,
79
80
  label: startLabel,
80
81
  value: state.startDate,
@@ -84,107 +85,27 @@ function CalendarEdit({
84
85
  returnKeyType: 'next',
85
86
  onSubmitEditing: onSubmitStartInput,
86
87
  validRange: validRange,
87
- locale: locale
88
+ locale: locale,
89
+ withModal: false,
90
+ autoCompleteType: 'off'
88
91
  }), /*#__PURE__*/React.createElement(_reactNative.View, {
89
92
  style: styles.separator
90
- }), /*#__PURE__*/React.createElement(CalendarInput, {
93
+ }), /*#__PURE__*/React.createElement(_DatePickerInput.default, {
94
+ inputMode: "end",
91
95
  ref: endInput,
92
96
  label: endLabel,
93
97
  value: state.endDate,
94
98
  onChange: endDate => onChange({ ...state,
95
99
  endDate
96
100
  }),
97
- isEndDate: true,
98
101
  onSubmitEditing: onSubmitEndInput,
99
102
  validRange: validRange,
100
- locale: locale
103
+ locale: locale,
104
+ withModal: false,
105
+ autoCompleteType: 'off'
101
106
  })) : null));
102
107
  }
103
108
 
104
- function CalendarInputPure({
105
- label,
106
- value,
107
- onChange,
108
- isEndDate,
109
- returnKeyType,
110
- onSubmitEditing,
111
- locale,
112
- validRange
113
- }, ref) {
114
- const theme = (0, _reactNativePaper.useTheme)();
115
- const [error, setError] = React.useState(null);
116
- const formatter = React.useMemo(() => {
117
- return new Intl.DateTimeFormat(locale, {
118
- month: '2-digit',
119
- day: '2-digit',
120
- year: 'numeric'
121
- });
122
- }, [locale]);
123
- const inputFormat = React.useMemo(() => {
124
- // TODO: something cleaner and more universal?
125
- const inputDate = formatter.format(new Date(2020, 10 - 1, 1));
126
- return inputDate.replace('2020', 'YYYY').replace('10', 'MM').replace('01', 'DD');
127
- }, [formatter]);
128
- const formattedValue = formatter.format(value);
129
-
130
- const onChangeText = date => {
131
- const dayIndex = inputFormat.indexOf('DD');
132
- const monthIndex = inputFormat.indexOf('MM');
133
- const yearIndex = inputFormat.indexOf('YYYY');
134
- const day = Number(date.slice(dayIndex, dayIndex + 2));
135
- const year = Number(date.slice(yearIndex, yearIndex + 4));
136
- const month = Number(date.slice(monthIndex, monthIndex + 2));
137
-
138
- if (Number.isNaN(day) || Number.isNaN(year) || Number.isNaN(month)) {
139
- setError(inputFormat);
140
- return;
141
- }
142
-
143
- const finalDate = isEndDate ? new Date(year, month - 1, day, 23, 59, 59) : new Date(year, month - 1, day);
144
- const validStart = validRange === null || validRange === void 0 ? void 0 : validRange.startDate;
145
- const validEnd = validRange === null || validRange === void 0 ? void 0 : validRange.endDate;
146
-
147
- if (!(0, _dateUtils.isDateWithinOptionalRange)(finalDate, {
148
- startUnix: validStart ? (0, _dateUtils.dateToUnix)(validStart) : undefined,
149
- endUnix: validEnd ? (0, _dateUtils.dateToUnix)(validEnd) : undefined
150
- })) {
151
- let errors = validStart && validEnd ? [`${formatter.format(validStart)} - ${formatter.format(validEnd)}`] : [validStart ? `> ${formatter.format(validStart)}` : '', validEnd ? `< ${formatter.format(validEnd)}` : ''];
152
- setError(errors.filter(n => n).join(' '));
153
- return;
154
- }
155
-
156
- setError(null);
157
-
158
- if (isEndDate) {
159
- onChange(finalDate);
160
- } else {
161
- onChange(finalDate);
162
- }
163
- };
164
-
165
- return /*#__PURE__*/React.createElement(_reactNative.View, {
166
- style: styles.inputContainer
167
- }, /*#__PURE__*/React.createElement(_TextInputMask.default, {
168
- ref: ref,
169
- value: formattedValue,
170
- style: styles.input,
171
- label: `${label} (${inputFormat})`,
172
- keyboardType: 'number-pad',
173
- placeholder: inputFormat,
174
- mask: inputFormat,
175
- onChangeText: onChangeText,
176
- returnKeyType: returnKeyType,
177
- onSubmitEditing: onSubmitEditing,
178
- keyboardAppearance: theme.dark ? 'dark' : 'default',
179
- error: !!error
180
- }), /*#__PURE__*/React.createElement(_reactNativePaper.HelperText, {
181
- type: "error",
182
- visible: !!error
183
- }, error));
184
- }
185
-
186
- const CalendarInput = /*#__PURE__*/React.forwardRef(CalendarInputPure);
187
-
188
109
  const styles = _reactNative.StyleSheet.create({
189
110
  root: {
190
111
  padding: 12
@@ -1 +1 @@
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","CalendarInputPure","value","isEndDate","returnKeyType","onSubmitEditing","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 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?: undefined | 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 <CalendarInput\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 />\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 locale={locale}\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 locale={locale}\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":";;;;;;;AAAA;;AACA;;AAUA;;;;;;;;AAEA,SAASA,YAAT,OAoBG;AAAA,MApBmB;AACpBC,IAAAA,IADoB;AAEpBC,IAAAA,KAFoB;AAGpBC,IAAAA,KAAK,GAAG,EAHY;AAIpBC,IAAAA,UAAU,GAAG,OAJO;AAKpBC,IAAAA,QAAQ,GAAG,KALS;AAMpBC,IAAAA,SANoB;AAOpBC,IAAAA,QAPoB;AAQpBC,IAAAA,UARoB;AASpBC,IAAAA;AAToB,GAoBnB;AACD,QAAMC,SAAS,GAAGC,KAAK,CAACC,MAAN,CAAqC,IAArC,CAAlB;AACA,QAAMC,UAAU,GAAGF,KAAK,CAACC,MAAN,CAAqC,IAArC,CAAnB;AACA,QAAME,QAAQ,GAAGH,KAAK,CAACC,MAAN,CAAqC,IAArC,CAAjB,CAHC,CAKD;;AACAD,EAAAA,KAAK,CAACI,SAAN,CAAgB,MAAM;AACpB;AACA,QAAIT,SAAJ,EAAe;AACbU,4BAASC,OAAT;AACD;;AAED,UAAMC,aAAa,GAAG,CAACR,SAAS,CAACS,OAAX,EAAoBN,UAAU,CAACM,OAA/B,EAAwCC,MAAxC,CACnBC,CAAD,IAAOA,CADa,CAAtB;AAIA,UAAMC,YAAY,GAAG,CACnBZ,SAAS,CAACS,OADS,EAEnBN,UAAU,CAACM,OAFQ,EAGnBL,QAAQ,CAACK,OAHU,EAInBC,MAJmB,CAIXC,CAAD,IAAOA,CAJK,CAArB;;AAMA,QAAIf,SAAJ,EAAe;AACbgB,MAAAA,YAAY,CAACC,OAAb,CAAsBC,EAAD,IAAQA,EAAE,CAACC,IAAH,EAA7B;AACD,KAFD,MAEO;AACLP,MAAAA,aAAa,CAACK,OAAd,CAAuBC,EAAD,IAAQA,EAAE,CAACE,KAAH,EAA9B;AACD;AACF,GArBD,EAqBG,CAACzB,IAAD,EAAOY,UAAP,EAAmBC,QAAnB,EAA6BJ,SAA7B,EAAwCJ,SAAxC,CArBH;AAuBA,QAAMqB,kBAAkB,GAAGhB,KAAK,CAACiB,WAAN,CAAkB,MAAM;AACjD,QAAId,QAAQ,CAACK,OAAb,EAAsB;AACpBL,MAAAA,QAAQ,CAACK,OAAT,CAAiBO,KAAjB;AACD;AACF,GAJ0B,EAIxB,CAACZ,QAAD,CAJwB,CAA3B;AAMA,QAAMe,gBAAgB,GAAGlB,KAAK,CAACiB,WAAN,CAAkB,MAAM,CAC/C;AACD,GAFwB,EAEtB,EAFsB,CAAzB;AAIA,QAAME,aAAa,GAAGnB,KAAK,CAACiB,WAAN,CAAkB,MAAM,CAC5C;AACD,GAFqB,EAEnB,EAFmB,CAAtB;AAIA,sBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEG,MAAM,CAACC;AAApB,kBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAED,MAAM,CAACE;AAApB,KACGhC,IAAI,KAAK,QAAT,gBACC,oBAAC,wBAAD;AACE,IAAA,SAAS,EAAC,OADZ;AAEE,IAAA,GAAG,EAAES,SAFP;AAGE,IAAA,KAAK,EAAEP,KAHT;AAIE,IAAA,KAAK,EAAED,KAAK,CAACgC,IAJf;AAKE,IAAA,QAAQ,EAAGA,IAAD,IAAU3B,QAAQ,CAAC,EAAE,GAAGL,KAAL;AAAYgC,MAAAA;AAAZ,KAAD,CAL9B;AAME,IAAA,eAAe,EAAEJ,aANnB;AAOE,IAAA,UAAU,EAAEtB,UAPd;AAQE,IAAA,MAAM,EAAEC,MARV;AASE,IAAA,SAAS,EAAE,KATb;AAUE,IAAA,gBAAgB,EAAE;AAVpB,IADD,GAaG,IAdN,EAeGR,IAAI,KAAK,OAAT,gBACC,uDACE,oBAAC,wBAAD;AACE,IAAA,SAAS,EAAC,OADZ;AAEE,IAAA,GAAG,EAAEY,UAFP;AAGE,IAAA,KAAK,EAAET,UAHT;AAIE,IAAA,KAAK,EAAEF,KAAK,CAACiC,SAJf;AAKE,IAAA,QAAQ,EAAGA,SAAD,IAAe5B,QAAQ,CAAC,EAAE,GAAGL,KAAL;AAAYiC,MAAAA;AAAZ,KAAD,CALnC;AAME,IAAA,aAAa,EAAE,MANjB;AAOE,IAAA,eAAe,EAAER,kBAPnB;AAQE,IAAA,UAAU,EAAEnB,UARd;AASE,IAAA,MAAM,EAAEC,MATV;AAUE,IAAA,SAAS,EAAE,KAVb;AAWE,IAAA,gBAAgB,EAAE;AAXpB,IADF,eAcE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEsB,MAAM,CAACK;AAApB,IAdF,eAeE,oBAAC,wBAAD;AACE,IAAA,SAAS,EAAC,KADZ;AAEE,IAAA,GAAG,EAAEtB,QAFP;AAGE,IAAA,KAAK,EAAET,QAHT;AAIE,IAAA,KAAK,EAAEH,KAAK,CAACmC,OAJf;AAKE,IAAA,QAAQ,EAAGA,OAAD,IAAa9B,QAAQ,CAAC,EAAE,GAAGL,KAAL;AAAYmC,MAAAA;AAAZ,KAAD,CALjC;AAME,IAAA,eAAe,EAAER,gBANnB;AAOE,IAAA,UAAU,EAAErB,UAPd;AAQE,IAAA,MAAM,EAAEC,MARV;AASE,IAAA,SAAS,EAAE,KATb;AAUE,IAAA,gBAAgB,EAAE;AAVpB,IAfF,CADD,GA6BG,IA5CN,CADF,CADF;AAkDD;;AAED,MAAMsB,MAAM,GAAGO,wBAAWC,MAAX,CAAkB;AAC/BP,EAAAA,IAAI,EAAE;AAAEQ,IAAAA,OAAO,EAAE;AAAX,GADyB;AAE/BP,EAAAA,KAAK,EAAE;AAAEQ,IAAAA,aAAa,EAAE;AAAjB,GAFwB;AAG/BC,EAAAA,cAAc,EAAE;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAHe;AAI/BC,EAAAA,KAAK,EAAE;AAAED,IAAAA,IAAI,EAAE;AAAR,GAJwB;AAK/BP,EAAAA,SAAS,EAAE;AAAES,IAAAA,KAAK,EAAE;AAAT;AALoB,CAAlB,CAAf;;4BAQelC,KAAK,CAACmC,IAAN,CAAW9C,YAAX,C","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,11 @@ 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
+ var _utils = require("../translations/utils");
18
+
19
+ 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
20
 
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; }
21
+ 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
22
 
21
23
  const buttonContainerHeight = 56;
22
24
  const buttonContainerMarginTop = 4;
@@ -30,13 +32,14 @@ function getCalendarHeaderHeight(scrollMode) {
30
32
  return _DayNames.dayNamesHeight;
31
33
  }
32
34
 
33
- function CalendarHeader({
34
- scrollMode,
35
- onPrev,
36
- onNext,
37
- disableWeekDays,
38
- locale
39
- }) {
35
+ function CalendarHeader(_ref) {
36
+ let {
37
+ scrollMode,
38
+ onPrev,
39
+ onNext,
40
+ disableWeekDays,
41
+ locale
42
+ } = _ref;
40
43
  const theme = (0, _reactNativePaper.useTheme)();
41
44
  const isHorizontal = scrollMode === 'horizontal';
42
45
  return /*#__PURE__*/React.createElement(_reactNative.View, {
@@ -54,14 +57,22 @@ function CalendarHeader({
54
57
  }]
55
58
  }, /*#__PURE__*/React.createElement(_reactNativePaper.IconButton, {
56
59
  icon: "chevron-left",
57
- onPress: onPrev
60
+ accessibilityLabel: (0, _utils.getTranslation)(locale, 'previous'),
61
+ onPress: onPrev // RN types bug
62
+ ,
63
+ hasTVPreferredFocus: undefined,
64
+ tvParallaxProperties: undefined
58
65
  })), /*#__PURE__*/React.createElement(_reactNative.View, {
59
66
  style: [styles.buttonWrapper, {
60
67
  backgroundColor: theme.colors.surface
61
68
  }]
62
69
  }, /*#__PURE__*/React.createElement(_reactNativePaper.IconButton, {
63
70
  icon: "chevron-right",
64
- onPress: onNext
71
+ accessibilityLabel: (0, _utils.getTranslation)(locale, 'next'),
72
+ onPress: onNext // RN types bug
73
+ ,
74
+ hasTVPreferredFocus: undefined,
75
+ tvParallaxProperties: undefined
65
76
  }))) : null, /*#__PURE__*/React.createElement(_DayNames.default, {
66
77
  disableWeekDays: disableWeekDays,
67
78
  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":"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","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'\nimport { getTranslation } from '../translations/utils'\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 accessibilityLabel={getTranslation(locale, 'previous')}\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 accessibilityLabel={getTranslation(locale, 'next')}\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"]}
@@ -18,9 +18,9 @@ var _utils = require("../utils");
18
18
 
19
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
20
 
21
- 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); }
22
22
 
23
- 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; }
24
24
 
25
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); }
26
26
 
@@ -22,9 +22,9 @@ var _DatePickerModalHeaderBackground = _interopRequireDefault(require("./DatePic
22
22
 
23
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
24
 
25
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
25
+ 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); }
26
26
 
27
- 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; }
27
+ 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; }
28
28
 
29
29
  function DatePickerModalContent(props) {
30
30
  const {
@@ -35,7 +35,8 @@ function DatePickerModalContent(props) {
35
35
  disableSafeTop,
36
36
  disableWeekDays,
37
37
  locale,
38
- validRange
38
+ validRange,
39
+ dateMode
39
40
  } = props;
40
41
  const anyProps = props; // use local state to add only onConfirm state changes
41
42
 
@@ -84,6 +85,7 @@ function DatePickerModalContent(props) {
84
85
  setCollapsed(prev => !prev);
85
86
  }, [setCollapsed]);
86
87
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_DatePickerModalHeaderBackground.default, null, /*#__PURE__*/React.createElement(_DatePickerModalHeader.default, {
88
+ locale: locale,
87
89
  onSave: onInnerConfirm,
88
90
  onDismiss: onDismiss,
89
91
  saveLabel: props.saveLabel,
@@ -111,7 +113,8 @@ function DatePickerModalContent(props) {
111
113
  onChange: onInnerChange,
112
114
  disableWeekDays: disableWeekDays,
113
115
  dates: state.dates,
114
- validRange: validRange
116
+ validRange: validRange,
117
+ dateMode: dateMode
115
118
  }),
116
119
  calendarEdit: /*#__PURE__*/React.createElement(_CalendarEdit.default, {
117
120
  mode: mode,