ferns-ui 0.36.1 → 0.36.3

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 (303) hide show
  1. package/dist/ActionSheet.d.ts +492 -0
  2. package/dist/ActionSheet.js +649 -0
  3. package/dist/ActionSheet.js.map +1 -0
  4. package/dist/Avatar.d.ts +68 -0
  5. package/dist/Avatar.js +152 -0
  6. package/dist/Avatar.js.map +1 -0
  7. package/dist/Badge.d.ts +10 -0
  8. package/dist/Badge.js +36 -0
  9. package/dist/Badge.js.map +1 -0
  10. package/dist/Banner.d.ts +27 -0
  11. package/dist/Banner.js +56 -0
  12. package/dist/Banner.js.map +1 -0
  13. package/dist/BlurBox.d.ts +5 -0
  14. package/dist/BlurBox.js +28 -0
  15. package/dist/BlurBox.js.map +1 -0
  16. package/dist/BlurBox.native.d.ts +6 -0
  17. package/dist/BlurBox.native.js +30 -0
  18. package/dist/BlurBox.native.js.map +1 -0
  19. package/dist/Body.d.ts +6 -0
  20. package/dist/Body.js +21 -0
  21. package/dist/Body.js.map +1 -0
  22. package/dist/Box.d.ts +3 -0
  23. package/dist/Box.js +251 -0
  24. package/dist/Box.js.map +1 -0
  25. package/dist/Button.d.ts +26 -0
  26. package/dist/Button.js +120 -0
  27. package/dist/Button.js.map +1 -0
  28. package/dist/Card.d.ts +5 -0
  29. package/dist/Card.js +8 -0
  30. package/dist/Card.js.map +1 -0
  31. package/dist/CheckBox.d.ts +3 -0
  32. package/dist/CheckBox.js +40 -0
  33. package/dist/CheckBox.js.map +1 -0
  34. package/dist/Common.d.ts +868 -0
  35. package/dist/Common.js +46 -0
  36. package/dist/Common.js.map +1 -0
  37. package/dist/Constants.d.ts +4 -0
  38. package/dist/Constants.js +54 -0
  39. package/dist/Constants.js.map +1 -0
  40. package/dist/CustomSelect.d.ts +14 -0
  41. package/dist/CustomSelect.js +43 -0
  42. package/dist/CustomSelect.js.map +1 -0
  43. package/dist/DateTimeActionSheet.d.ts +12 -0
  44. package/dist/DateTimeActionSheet.js +248 -0
  45. package/dist/DateTimeActionSheet.js.map +1 -0
  46. package/dist/DateTimeField.android.d.ts +3 -0
  47. package/dist/DateTimeField.android.js +66 -0
  48. package/dist/DateTimeField.android.js.map +1 -0
  49. package/dist/DateTimeField.d.ts +3 -0
  50. package/dist/DateTimeField.ios.d.ts +3 -0
  51. package/dist/DateTimeField.ios.js +48 -0
  52. package/dist/DateTimeField.ios.js.map +1 -0
  53. package/dist/DateTimeField.js +35 -0
  54. package/dist/DateTimeField.js.map +1 -0
  55. package/dist/DecimalRangeActionSheet.d.ts +18 -0
  56. package/dist/DecimalRangeActionSheet.js +65 -0
  57. package/dist/DecimalRangeActionSheet.js.map +1 -0
  58. package/dist/ErrorBoundary.d.ts +19 -0
  59. package/dist/ErrorBoundary.js +29 -0
  60. package/dist/ErrorBoundary.js.map +1 -0
  61. package/dist/ErrorPage.d.ts +10 -0
  62. package/dist/ErrorPage.js +20 -0
  63. package/dist/ErrorPage.js.map +1 -0
  64. package/dist/FernsProvider.d.ts +4 -0
  65. package/dist/FernsProvider.js +9 -0
  66. package/dist/FernsProvider.js.map +1 -0
  67. package/dist/Field.d.ts +17 -0
  68. package/dist/Field.js +114 -0
  69. package/dist/Field.js.map +1 -0
  70. package/dist/FieldWithLabels.d.ts +3 -0
  71. package/dist/FieldWithLabels.js +8 -0
  72. package/dist/FieldWithLabels.js.map +1 -0
  73. package/dist/FlatList.d.ts +2 -0
  74. package/dist/FlatList.js +3 -0
  75. package/dist/FlatList.js.map +1 -0
  76. package/dist/Form.d.ts +22 -0
  77. package/dist/Form.js +89 -0
  78. package/dist/Form.js.map +1 -0
  79. package/dist/HeaderButtons.d.ts +31 -0
  80. package/dist/HeaderButtons.js +53 -0
  81. package/dist/HeaderButtons.js.map +1 -0
  82. package/dist/Heading.d.ts +11 -0
  83. package/dist/Heading.js +46 -0
  84. package/dist/Heading.js.map +1 -0
  85. package/dist/HeightActionSheet.d.ts +16 -0
  86. package/dist/HeightActionSheet.js +58 -0
  87. package/dist/HeightActionSheet.js.map +1 -0
  88. package/dist/Hyperlink.d.ts +43 -0
  89. package/dist/Hyperlink.js +135 -0
  90. package/dist/Hyperlink.js.map +1 -0
  91. package/dist/Icon.d.ts +4 -0
  92. package/dist/Icon.js +14 -0
  93. package/dist/Icon.js.map +1 -0
  94. package/dist/IconButton.d.ts +26 -0
  95. package/dist/IconButton.js +78 -0
  96. package/dist/IconButton.js.map +1 -0
  97. package/dist/Image.d.ts +8 -0
  98. package/dist/Image.js +37 -0
  99. package/dist/Image.js.map +1 -0
  100. package/dist/ImageBackground.d.ts +10 -0
  101. package/dist/ImageBackground.js +8 -0
  102. package/dist/ImageBackground.js.map +1 -0
  103. package/dist/InfoTooltipButton.d.ts +8 -0
  104. package/dist/InfoTooltipButton.js +6 -0
  105. package/dist/InfoTooltipButton.js.map +1 -0
  106. package/dist/Layer.d.ts +9 -0
  107. package/dist/Layer.js +12 -0
  108. package/dist/Layer.js.map +1 -0
  109. package/dist/Link.d.ts +9 -0
  110. package/dist/Link.js +12 -0
  111. package/dist/Link.js.map +1 -0
  112. package/dist/Mask.d.ts +2 -0
  113. package/dist/Mask.js +19 -0
  114. package/dist/Mask.js.map +1 -0
  115. package/dist/MediaQuery.d.ts +4 -0
  116. package/dist/MediaQuery.js +52 -0
  117. package/dist/MediaQuery.js.map +1 -0
  118. package/dist/Meta.d.ts +5 -0
  119. package/dist/Meta.js +7 -0
  120. package/dist/Meta.js.map +1 -0
  121. package/dist/Modal.d.ts +19 -0
  122. package/dist/Modal.js +101 -0
  123. package/dist/Modal.js.map +1 -0
  124. package/dist/ModalSheet.d.ts +7 -0
  125. package/dist/ModalSheet.js +42 -0
  126. package/dist/ModalSheet.js.map +1 -0
  127. package/dist/NumberPickerActionSheet.d.ts +16 -0
  128. package/dist/NumberPickerActionSheet.js +29 -0
  129. package/dist/NumberPickerActionSheet.js.map +1 -0
  130. package/dist/Page.d.ts +26 -0
  131. package/dist/Page.js +38 -0
  132. package/dist/Page.js.map +1 -0
  133. package/dist/Permissions.d.ts +2 -0
  134. package/dist/Permissions.js +35 -0
  135. package/dist/Permissions.js.map +1 -0
  136. package/dist/PickerSelect.d.ts +109 -0
  137. package/dist/PickerSelect.js +296 -0
  138. package/dist/PickerSelect.js.map +1 -0
  139. package/dist/Pill.d.ts +5 -0
  140. package/dist/Pill.js +10 -0
  141. package/dist/Pill.js.map +1 -0
  142. package/dist/Pog.d.ts +15 -0
  143. package/dist/Pog.js +48 -0
  144. package/dist/Pog.js.map +1 -0
  145. package/dist/ProgressBar.d.ts +9 -0
  146. package/dist/ProgressBar.js +41 -0
  147. package/dist/ProgressBar.js.map +1 -0
  148. package/dist/ScrollView.d.ts +2 -0
  149. package/dist/ScrollView.js +3 -0
  150. package/dist/ScrollView.js.map +1 -0
  151. package/dist/SegmentedControl.d.ts +3 -0
  152. package/dist/SegmentedControl.js +55 -0
  153. package/dist/SegmentedControl.js.map +1 -0
  154. package/dist/SelectList.d.ts +18 -0
  155. package/dist/SelectList.js +48 -0
  156. package/dist/SelectList.js.map +1 -0
  157. package/dist/SideDrawer.d.ts +13 -0
  158. package/dist/SideDrawer.js +22 -0
  159. package/dist/SideDrawer.js.map +1 -0
  160. package/dist/Spinner.d.ts +3 -0
  161. package/dist/Spinner.js +16 -0
  162. package/dist/Spinner.js.map +1 -0
  163. package/dist/SplitPage.d.ts +3 -0
  164. package/dist/SplitPage.js +149 -0
  165. package/dist/SplitPage.js.map +1 -0
  166. package/dist/SplitPage.native.d.ts +3 -0
  167. package/dist/SplitPage.native.js +79 -0
  168. package/dist/SplitPage.native.js.map +1 -0
  169. package/dist/Switch.d.ts +5 -0
  170. package/dist/Switch.js +10 -0
  171. package/dist/Switch.js.map +1 -0
  172. package/dist/Table.d.ts +30 -0
  173. package/dist/Table.js +31 -0
  174. package/dist/Table.js.map +1 -0
  175. package/dist/TableHeader.d.ts +22 -0
  176. package/dist/TableHeader.js +11 -0
  177. package/dist/TableHeader.js.map +1 -0
  178. package/dist/TableHeaderCell.d.ts +15 -0
  179. package/dist/TableHeaderCell.js +36 -0
  180. package/dist/TableHeaderCell.js.map +1 -0
  181. package/dist/TableRow.d.ts +29 -0
  182. package/dist/TableRow.js +30 -0
  183. package/dist/TableRow.js.map +1 -0
  184. package/dist/TapToEdit.d.ts +19 -0
  185. package/dist/TapToEdit.js +136 -0
  186. package/dist/TapToEdit.js.map +1 -0
  187. package/dist/Text.d.ts +19 -0
  188. package/dist/Text.js +91 -0
  189. package/dist/Text.js.map +1 -0
  190. package/dist/TextArea.d.ts +6 -0
  191. package/dist/TextArea.js +24 -0
  192. package/dist/TextArea.js.map +1 -0
  193. package/dist/TextField.d.ts +3 -0
  194. package/dist/TextField.js +260 -0
  195. package/dist/TextField.js.map +1 -0
  196. package/dist/TextFieldNumberActionSheet.d.ts +15 -0
  197. package/dist/TextFieldNumberActionSheet.js +28 -0
  198. package/dist/TextFieldNumberActionSheet.js.map +1 -0
  199. package/dist/Toast.d.ts +12 -0
  200. package/dist/Toast.js +46 -0
  201. package/dist/Toast.js.map +1 -0
  202. package/dist/Tooltip.d.ts +9 -0
  203. package/dist/Tooltip.js +174 -0
  204. package/dist/Tooltip.js.map +1 -0
  205. package/dist/UnifiedScreens.d.ts +9 -0
  206. package/dist/UnifiedScreens.js +25 -0
  207. package/dist/UnifiedScreens.js.map +1 -0
  208. package/dist/Unifier.d.ts +45 -0
  209. package/dist/Unifier.js +291 -0
  210. package/dist/Unifier.js.map +1 -0
  211. package/dist/Utilities.d.ts +31 -0
  212. package/dist/Utilities.js +73 -0
  213. package/dist/Utilities.js.map +1 -0
  214. package/dist/WithLabel.d.ts +14 -0
  215. package/dist/WithLabel.js +15 -0
  216. package/dist/WithLabel.js.map +1 -0
  217. package/dist/dayjsExtended.d.ts +2 -0
  218. package/{src/dayjsExtended.ts → dist/dayjsExtended.js} +1 -2
  219. package/dist/dayjsExtended.js.map +1 -0
  220. package/dist/index.d.ts +1299 -0
  221. package/dist/index.js.map +1 -0
  222. package/dist/tableContext.d.ts +21 -0
  223. package/dist/tableContext.js +35 -0
  224. package/dist/tableContext.js.map +1 -0
  225. package/package.json +4 -1
  226. package/checkDeps.js +0 -19
  227. package/src/ActionSheet.tsx +0 -1231
  228. package/src/Avatar.tsx +0 -317
  229. package/src/Badge.tsx +0 -65
  230. package/src/Banner.tsx +0 -124
  231. package/src/BlurBox.native.tsx +0 -40
  232. package/src/BlurBox.tsx +0 -31
  233. package/src/Body.tsx +0 -32
  234. package/src/Box.tsx +0 -308
  235. package/src/Button.tsx +0 -219
  236. package/src/Card.tsx +0 -23
  237. package/src/CheckBox.tsx +0 -118
  238. package/src/Common.ts +0 -2743
  239. package/src/Constants.ts +0 -53
  240. package/src/CustomSelect.tsx +0 -85
  241. package/src/DateTimeActionSheet.tsx +0 -409
  242. package/src/DateTimeField.android.tsx +0 -101
  243. package/src/DateTimeField.ios.tsx +0 -83
  244. package/src/DateTimeField.tsx +0 -69
  245. package/src/DecimalRangeActionSheet.tsx +0 -113
  246. package/src/ErrorBoundary.tsx +0 -37
  247. package/src/ErrorPage.tsx +0 -44
  248. package/src/FernsProvider.tsx +0 -21
  249. package/src/Field.tsx +0 -299
  250. package/src/FieldWithLabels.tsx +0 -36
  251. package/src/FlatList.tsx +0 -2
  252. package/src/Form.tsx +0 -182
  253. package/src/HeaderButtons.tsx +0 -107
  254. package/src/Heading.tsx +0 -53
  255. package/src/HeightActionSheet.tsx +0 -104
  256. package/src/Hyperlink.tsx +0 -181
  257. package/src/Icon.tsx +0 -24
  258. package/src/IconButton.tsx +0 -165
  259. package/src/Image.tsx +0 -50
  260. package/src/ImageBackground.tsx +0 -14
  261. package/src/InfoTooltipButton.tsx +0 -23
  262. package/src/Layer.tsx +0 -17
  263. package/src/Link.tsx +0 -17
  264. package/src/Mask.tsx +0 -21
  265. package/src/MediaQuery.ts +0 -46
  266. package/src/Meta.tsx +0 -9
  267. package/src/Modal.tsx +0 -248
  268. package/src/ModalSheet.tsx +0 -58
  269. package/src/NumberPickerActionSheet.tsx +0 -66
  270. package/src/Page.tsx +0 -133
  271. package/src/Permissions.ts +0 -44
  272. package/src/PickerSelect.tsx +0 -553
  273. package/src/Pill.tsx +0 -24
  274. package/src/Pog.tsx +0 -87
  275. package/src/ProgressBar.tsx +0 -55
  276. package/src/ScrollView.tsx +0 -2
  277. package/src/SegmentedControl.tsx +0 -102
  278. package/src/SelectList.tsx +0 -89
  279. package/src/SideDrawer.tsx +0 -62
  280. package/src/Spinner.tsx +0 -20
  281. package/src/SplitPage.native.tsx +0 -160
  282. package/src/SplitPage.tsx +0 -302
  283. package/src/Switch.tsx +0 -19
  284. package/src/Table.tsx +0 -87
  285. package/src/TableHeader.tsx +0 -36
  286. package/src/TableHeaderCell.tsx +0 -76
  287. package/src/TableRow.tsx +0 -87
  288. package/src/TapToEdit.tsx +0 -221
  289. package/src/Text.tsx +0 -131
  290. package/src/TextArea.tsx +0 -16
  291. package/src/TextField.tsx +0 -401
  292. package/src/TextFieldNumberActionSheet.tsx +0 -61
  293. package/src/Toast.tsx +0 -106
  294. package/src/Tooltip.tsx +0 -269
  295. package/src/UnifiedScreens.ts +0 -24
  296. package/src/Unifier.ts +0 -371
  297. package/src/Utilities.tsx +0 -159
  298. package/src/WithLabel.tsx +0 -57
  299. package/src/index.tsx +0 -1346
  300. package/src/polyfill.d.ts +0 -11
  301. package/src/tableContext.tsx +0 -80
  302. package/tsconfig.json +0 -30
  303. package/updateDeps.js +0 -14
package/dist/Common.js ADDED
@@ -0,0 +1,46 @@
1
+ export const SPACING = 4;
2
+ export const iconSizeToNumber = (size) => {
3
+ return {
4
+ xs: 8,
5
+ sm: 12,
6
+ md: 14,
7
+ lg: 20,
8
+ xl: 26,
9
+ }[size || "md"];
10
+ };
11
+ export const iconNumberToSize = (size = 16) => {
12
+ let iconSize;
13
+ if (size < 8) {
14
+ iconSize = "xs";
15
+ }
16
+ else if (size < 12) {
17
+ iconSize = "sm";
18
+ }
19
+ else if (size < 14) {
20
+ iconSize = "md";
21
+ }
22
+ else if (size < 20) {
23
+ iconSize = "lg";
24
+ }
25
+ else {
26
+ iconSize = "xl";
27
+ }
28
+ return iconSize;
29
+ };
30
+ export function getSectionColor(section) {
31
+ return ({
32
+ Breakfast: "orchid",
33
+ Lunch: "blue",
34
+ Dinner: "orange",
35
+ Snack: "red",
36
+ "Second Snack": "red",
37
+ Workout: "pine",
38
+ workouts: "pine",
39
+ }[section] || "blue");
40
+ }
41
+ export function isTestUser(profile) {
42
+ return (profile &&
43
+ profile.email &&
44
+ (profile.email.indexOf("nang.io") > -1 || profile.email.indexOf("example.com") > -1));
45
+ }
46
+ //# sourceMappingURL=Common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":"AAqrDA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AAqBzB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAe,EAAE,EAAE;IAClD,OAAO;QACL,EAAE,EAAE,CAAC;QACL,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;KACP,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAI,GAAG,EAAE,EAAY,EAAE;IACtD,IAAI,QAAkB,CAAC;IACvB,IAAI,IAAI,GAAG,CAAC,EAAE;QACZ,QAAQ,GAAG,IAAI,CAAC;KACjB;SAAM,IAAI,IAAI,GAAG,EAAE,EAAE;QACpB,QAAQ,GAAG,IAAI,CAAC;KACjB;SAAM,IAAI,IAAI,GAAG,EAAE,EAAE;QACpB,QAAQ,GAAG,IAAI,CAAC;KACjB;SAAM,IAAI,IAAI,GAAG,EAAE,EAAE;QACpB,QAAQ,GAAG,IAAI,CAAC;KACjB;SAAM;QACL,QAAQ,GAAG,IAAI,CAAC;KACjB;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,OAAgE;IAC9F,OAAO,CAAC;QACN,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,KAAK;QACZ,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,MAAM;KACjB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAU,CAAC;AACjC,CAAC;AAo5BD,MAAM,UAAU,UAAU,CAAC,OAAqB;IAC9C,OAAO,CACL,OAAO;QACP,OAAO,CAAC,KAAK;QACb,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CACrF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const USSTATESLIST: {
2
+ label: string;
3
+ value: string;
4
+ }[];
@@ -0,0 +1,54 @@
1
+ export const USSTATESLIST = [
2
+ { label: "AL", value: "Alabama" },
3
+ { label: "AK", value: "Alaska" },
4
+ { label: "AZ", value: "Arizona" },
5
+ { label: "AR", value: "Arkansas" },
6
+ { label: "CA", value: "California" },
7
+ { label: "CO", value: "Colorado" },
8
+ { label: "CT", value: "Connecticut" },
9
+ { label: "DE", value: "Delaware" },
10
+ { label: "DC", value: "District Of Columbia" },
11
+ { label: "FL", value: "Florida" },
12
+ { label: "GA", value: "Georgia" },
13
+ { label: "HI", value: "Hawaii" },
14
+ { label: "ID", value: "Idaho" },
15
+ { label: "IL", value: "Illinois" },
16
+ { label: "IN", value: "Indiana" },
17
+ { label: "IA", value: "Iowa" },
18
+ { label: "KS", value: "Kansas" },
19
+ { label: "KY", value: "Kentucky" },
20
+ { label: "LA", value: "Louisiana" },
21
+ { label: "ME", value: "Maine" },
22
+ { label: "MD", value: "Maryland" },
23
+ { label: "MA", value: "Massachusetts" },
24
+ { label: "MI", value: "Michigan" },
25
+ { label: "MN", value: "Minnesota" },
26
+ { label: "MS", value: "Mississippi" },
27
+ { label: "MO", value: "Missouri" },
28
+ { label: "MT", value: "Montana" },
29
+ { label: "NE", value: "Nebraska" },
30
+ { label: "NV", value: "Nevada" },
31
+ { label: "NH", value: "New Hampshire" },
32
+ { label: "NJ", value: "New Jersey" },
33
+ { label: "NM", value: "New Mexico" },
34
+ { label: "NY", value: "New York" },
35
+ { label: "NC", value: "North Carolina" },
36
+ { label: "ND", value: "North Dakota" },
37
+ { label: "OH", value: "Ohio" },
38
+ { label: "OK", value: "Oklahoma" },
39
+ { label: "OR", value: "Oregon" },
40
+ { label: "PA", value: "Pennsylvania" },
41
+ { label: "RI", value: "Rhode Island" },
42
+ { label: "SC", value: "South Carolina" },
43
+ { label: "SD", value: "South Dakota" },
44
+ { label: "TN", value: "Tennessee" },
45
+ { label: "TX", value: "Texas" },
46
+ { label: "UT", value: "Utah" },
47
+ { label: "VT", value: "Vermont" },
48
+ { label: "VA", value: "Virginia" },
49
+ { label: "WA", value: "Washington" },
50
+ { label: "WV", value: "West Virginia" },
51
+ { label: "WI", value: "Wisconsin" },
52
+ { label: "WY", value: "Wyoming" },
53
+ ];
54
+ //# sourceMappingURL=Constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../src/Constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { ReactElement } from "react";
2
+ export interface CustomSelectProps {
3
+ value: string;
4
+ onChange: (value: string) => void;
5
+ options: Array<{
6
+ label: string;
7
+ value: string;
8
+ }>;
9
+ placeholder?: string;
10
+ disabled?: boolean;
11
+ label?: string;
12
+ labelColor?: string;
13
+ }
14
+ export declare const CustomSelect: ({ value, onChange, placeholder, disabled, options, }: CustomSelectProps) => ReactElement | null;
@@ -0,0 +1,43 @@
1
+ import React, { useEffect, useMemo, useState } from "react";
2
+ import { Box } from "./Box";
3
+ import { SelectList } from "./SelectList";
4
+ import { TextField } from "./TextField";
5
+ export const CustomSelect = ({ value, onChange, placeholder, disabled, options, }) => {
6
+ const [customValue, setCustomValue] = useState(value);
7
+ const [showCustomInput, setShowCustomInput] = useState(false);
8
+ // Boolean that checks if customValue is a value from the
9
+ // options prop or if it is a true custom value
10
+ const isValueCustom = useMemo(() => {
11
+ // We add an empty value to protect against an empty string custom value or if the placeholder value is selected
12
+ return ![...options, { value: "" }].map((i) => i.value).includes(customValue);
13
+ }, [options, customValue]);
14
+ useEffect(() => {
15
+ setShowCustomInput(isValueCustom);
16
+ if (!showCustomInput) {
17
+ setCustomValue(value);
18
+ }
19
+ }, [showCustomInput, value, isValueCustom]);
20
+ // Custom select has 3 values - the overall field value, the value of the select menu, and the value of the custom input
21
+ const handleCustomSelectListChange = (newValue) => {
22
+ // If "custom" is selected from the dropdown, toggle the custom input open and clear the previous value
23
+ if (newValue === "custom") {
24
+ setShowCustomInput(true);
25
+ setCustomValue(isValueCustom ? "custom" : newValue);
26
+ onChange("");
27
+ }
28
+ // If any non-custom value is selected
29
+ else {
30
+ // Close the custom input if open and clear the value
31
+ if (showCustomInput) {
32
+ setShowCustomInput(false);
33
+ }
34
+ // Update the field value and select value
35
+ onChange(newValue);
36
+ }
37
+ };
38
+ return (React.createElement(React.Fragment, null,
39
+ React.createElement(SelectList, { id: "providedOptions", options: [...options, { label: "Custom", value: "custom" }], placeholder: placeholder, value: isValueCustom ? "custom" : customValue, onChange: handleCustomSelectListChange }),
40
+ Boolean(showCustomInput) && (React.createElement(Box, { paddingY: 2 },
41
+ React.createElement(TextField, { disabled: disabled, id: "customOptions", placeholder: placeholder, type: "text", value: value, onChange: (result) => onChange(result.value) })))));
42
+ };
43
+ //# sourceMappingURL=CustomSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomSelect.js","sourceRoot":"","sources":["../src/CustomSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAe,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAExE,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAYtC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,OAAO,GACW,EAAuB,EAAE;IAC3C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9D,yDAAyD;IACzD,+CAA+C;IAC/C,MAAM,aAAa,GAAY,OAAO,CAAC,GAAY,EAAE;QACnD,gHAAgH;QAChH,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9E,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,EAAE;YACpB,cAAc,CAAC,KAAK,CAAC,CAAC;SACvB;IACH,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5C,wHAAwH;IACxH,MAAM,4BAA4B,GAAG,CAAC,QAAgB,EAAE,EAAE;QACxD,uGAAuG;QACvG,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACzB,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACzB,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACpD,QAAQ,CAAC,EAAE,CAAC,CAAC;SACd;QAED,sCAAsC;aACjC;YACH,qDAAqD;YACrD,IAAI,eAAe,EAAE;gBACnB,kBAAkB,CAAC,KAAK,CAAC,CAAC;aAC3B;YAED,0CAA0C;YAC1C,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACpB;IACH,CAAC,CAAC;IAEF,OAAO,CACL;QACE,oBAAC,UAAU,IACT,EAAE,EAAC,iBAAiB,EACpB,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,EACzD,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAC7C,QAAQ,EAAE,4BAA4B,GACtC;QACD,OAAO,CAAC,eAAe,CAAC,IAAI,CAC3B,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;YACd,oBAAC,SAAS,IACR,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAC,eAAe,EAClB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAC5C,CACE,CACP,CACA,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import { OnChangeCallback } from "./Common";
3
+ interface DateTimeActionSheetProps {
4
+ value?: string;
5
+ mode?: "date" | "time" | "datetime";
6
+ onChange: OnChangeCallback;
7
+ actionSheetRef: React.RefObject<any>;
8
+ visible: boolean;
9
+ onDismiss: () => void;
10
+ }
11
+ export declare function DateTimeActionSheet({ mode, value, onChange, visible, onDismiss, }: DateTimeActionSheetProps): React.JSX.Element;
12
+ export {};
@@ -0,0 +1,248 @@
1
+ import { Picker } from "@react-native-picker/picker";
2
+ import range from "lodash/range";
3
+ import React, { useEffect, useState } from "react";
4
+ import { Platform, TextInput, View } from "react-native";
5
+ import { Calendar } from "react-native-calendars";
6
+ import { Box } from "./Box";
7
+ import dayjs from "./dayjsExtended";
8
+ import { Heading } from "./Heading";
9
+ import { IconButton } from "./IconButton";
10
+ import { isMobileDevice } from "./MediaQuery";
11
+ import { Modal } from "./Modal";
12
+ import { SelectList } from "./SelectList";
13
+ import { Unifier } from "./Unifier";
14
+ const TIME_PICKER_HEIGHT = 104;
15
+ const INPUT_HEIGHT = 40;
16
+ const hours = range(1, 13).map((n) => String(n));
17
+ // TODO: support limited picker minutes, e.g. 5 or 15 minute increments.
18
+ const minutes = range(0, 60).map((n) => String(n).padStart(2, "0"));
19
+ const minutesOptions = [...minutes, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
20
+ function TimeInput({ type, value, onChange, }) {
21
+ const defaultText = type === "minute" ? String(value).padStart(2, "0") : String(value);
22
+ const [text, setText] = useState(defaultText);
23
+ const [focused, setFocused] = useState(false);
24
+ let error = false;
25
+ if (type === "hour") {
26
+ error = !hours.includes(String(Number(text)));
27
+ }
28
+ else if (type === "minute") {
29
+ error = !minutesOptions.includes(String(Number(text)));
30
+ }
31
+ // Broken out because types don't think "outline" is a valid style.
32
+ const textInputStyle = {
33
+ flex: 1,
34
+ paddingTop: 4,
35
+ paddingRight: 4,
36
+ paddingBottom: 4,
37
+ paddingLeft: 0,
38
+ height: INPUT_HEIGHT,
39
+ width: "100%",
40
+ color: Unifier.theme.darkGray,
41
+ fontFamily: Unifier.theme.primaryFont,
42
+ };
43
+ return (React.createElement(View, { style: {
44
+ flexDirection: "row",
45
+ justifyContent: "center",
46
+ alignItems: "center",
47
+ height: INPUT_HEIGHT,
48
+ width: "100%",
49
+ // Add padding so the border doesn't mess up layouts
50
+ paddingHorizontal: focused ? 10 : 14,
51
+ paddingVertical: focused ? 0 : 4,
52
+ borderColor: error ? Unifier.theme.red : Unifier.theme.blue,
53
+ borderWidth: focused ? 5 : 1,
54
+ borderRadius: 5,
55
+ backgroundColor: Unifier.theme.white,
56
+ } },
57
+ React.createElement(TextInput, { keyboardType: "number-pad", returnKeyType: "done", style: Object.assign(Object.assign({}, textInputStyle), { outline: Platform.select({ web: "none" }) }), textContentType: "none", underlineColorAndroid: "transparent", value: text, onBlur: () => {
58
+ setFocused(false);
59
+ }, onChangeText: (t) => {
60
+ setText(t);
61
+ onChange(Number(t));
62
+ }, onFocus: () => {
63
+ setFocused(true);
64
+ } })));
65
+ }
66
+ function CalendarHeader({ addMonth, month, }) {
67
+ const displayDate = dayjs(month[0]).format("MMM YYYY");
68
+ return (React.createElement(Box, { alignItems: "center", direction: "row", height: 40, justifyContent: "between", width: "100%" },
69
+ React.createElement(IconButton, { accessibilityLabel: "arrow", bgColor: "white", icon: "angle-double-left", iconColor: "primary", size: "md", onClick: () => {
70
+ addMonth(-12);
71
+ } }),
72
+ React.createElement(IconButton, { accessibilityLabel: "arrow", bgColor: "white", icon: "angle-left", iconColor: "primary", size: "md", onClick: () => {
73
+ addMonth(-1);
74
+ } }),
75
+ React.createElement(Heading, { size: "sm" }, displayDate),
76
+ React.createElement(IconButton, { accessibilityLabel: "arrow", bgColor: "white", icon: "angle-right", iconColor: "primary", size: "md", onClick: () => {
77
+ addMonth(1);
78
+ } }),
79
+ React.createElement(IconButton, { accessibilityLabel: "arrow", bgColor: "white", icon: "angle-double-right", iconColor: "primary", size: "md", onClick: () => {
80
+ addMonth(12);
81
+ } })));
82
+ }
83
+ // For mobile, renders all components in an action sheet.
84
+ // For web, renders all components in a modal.
85
+ // For mobile:
86
+ // If mode is "time", renders a spinner picker for time picker on both platforms.
87
+ // If mode is "date", renders our custom calendar on both platforms.
88
+ // If mode is "datetime", renders a spinner picker for time picker and our custom calendar on both platforms.
89
+ // For web, renders a simplistic text box for time picker and a calendar for date picker in a modal
90
+ // In the future, web time picker should be a typeahead dropdown like Google calendar.
91
+ export function DateTimeActionSheet({
92
+ // actionSheetRef,
93
+ mode, value, onChange, visible, onDismiss, }) {
94
+ // Accept ISO 8601, HH:mm, or hh:mm A formats. We may want only HH:mm or hh:mm A for mode=time
95
+ let m;
96
+ if (value) {
97
+ m = dayjs(value, ["YYYY", "YYYY-MM-DD", "HH:mm", "hh:mm A"]);
98
+ }
99
+ else {
100
+ m = dayjs();
101
+ }
102
+ if (!m.isValid()) {
103
+ throw new Error(`Invalid date/time value ${value}`);
104
+ }
105
+ let hr = dayjs(m).hour() % 12;
106
+ if (hr === 0) {
107
+ hr = 12;
108
+ }
109
+ const [hour, setHour] = useState(hr);
110
+ const [minute, setMinute] = useState(dayjs(m).minute());
111
+ const [amPm, setAmPm] = useState(dayjs(m).format("a") === "am" ? "am" : "pm");
112
+ const [date, setDate] = useState(dayjs(m).toISOString());
113
+ useEffect(() => {
114
+ let datetime;
115
+ if (value) {
116
+ datetime = dayjs(value, ["YYYY", "YYYY-MM-DD", "HH:mm", "hh:mm A"]);
117
+ }
118
+ else {
119
+ datetime = dayjs();
120
+ }
121
+ let h = dayjs(datetime).hour() % 12;
122
+ if (h === 0) {
123
+ h = 12;
124
+ }
125
+ setHour(h);
126
+ setMinute(dayjs(datetime).minute());
127
+ setAmPm(dayjs(datetime).format("a") === "am" ? "am" : "pm");
128
+ setDate(dayjs(datetime).toISOString());
129
+ }, [value]);
130
+ // TODO Support 24 hour time for time picker.
131
+ const renderMobileTime = () => {
132
+ return (React.createElement(Box, { direction: "row", width: "100%" },
133
+ React.createElement(Box, { paddingY: 2, width: "35%" },
134
+ React.createElement(Picker, { itemStyle: {
135
+ height: TIME_PICKER_HEIGHT,
136
+ }, selectedValue: hour, style: {
137
+ height: TIME_PICKER_HEIGHT,
138
+ backgroundColor: "#FFFFFF",
139
+ }, onValueChange: (itemValue) => setHour(itemValue) }, hours.map((n) => (React.createElement(Picker.Item, { key: String(n), label: String(n), value: String(n) }))))),
140
+ React.createElement(Box, { paddingY: 2, width: "35%" },
141
+ React.createElement(Picker, { itemStyle: {
142
+ height: TIME_PICKER_HEIGHT,
143
+ }, selectedValue: minute, style: {
144
+ height: TIME_PICKER_HEIGHT,
145
+ backgroundColor: "#FFFFFF",
146
+ }, onValueChange: (itemValue) => setMinute(itemValue) }, minutes.map((n) => (React.createElement(Picker.Item, { key: String(n), label: String(n), value: String(n) }))))),
147
+ React.createElement(Box, { paddingY: 2, width: "30%" },
148
+ React.createElement(Picker, { itemStyle: {
149
+ height: TIME_PICKER_HEIGHT,
150
+ }, selectedValue: amPm, style: {
151
+ height: TIME_PICKER_HEIGHT,
152
+ backgroundColor: "#FFFFFF",
153
+ }, onValueChange: (itemValue) => setAmPm(itemValue) },
154
+ React.createElement(Picker.Item, { key: "am", label: "am", value: "am" }),
155
+ React.createElement(Picker.Item, { key: "pm", label: "pm", value: "pm" })))));
156
+ };
157
+ // TODO: Support a typeahead dropdown for time picker, similar to Google Calendar on the web.
158
+ const renderWebTime = () => {
159
+ return (React.createElement(Box, { direction: "row", justifyContent: "center", width: "100%" },
160
+ React.createElement(Box, { width: 60 },
161
+ React.createElement(TimeInput, { type: "hour", value: hour, onChange: (v) => setHour(v) })),
162
+ React.createElement(Box, { alignItems: "center", height: INPUT_HEIGHT, justifyContent: "center", marginLeft: 2, marginRight: 2 },
163
+ React.createElement(Heading, { size: "md" }, ":")),
164
+ React.createElement(Box, { marginRight: 2, width: 60 },
165
+ React.createElement(TimeInput, { type: "minute", value: minute, onChange: (v) => setMinute(v) })),
166
+ React.createElement(Box, { width: 60 },
167
+ React.createElement(SelectList, { options: [
168
+ { label: "am", value: "am" },
169
+ { label: "pm", value: "pm" },
170
+ ], style: { minHeight: INPUT_HEIGHT }, value: amPm, onChange: (result) => {
171
+ setAmPm(result);
172
+ } }))));
173
+ };
174
+ const renderDateTime = () => {
175
+ return (React.createElement(Box, null,
176
+ React.createElement(Box, { marginBottom: 2 }, renderDateCalendar()),
177
+ isMobileDevice() ? renderMobileTime() : renderWebTime()));
178
+ };
179
+ // Note: do not call this if waiting on a state change.
180
+ const sendOnChange = () => {
181
+ const hourChange = amPm === "pm" && hour !== 12 ? Number(hour) + 12 : Number(hour);
182
+ if (mode === "date") {
183
+ onChange({ value: date });
184
+ }
185
+ else if (mode === "time") {
186
+ onChange({
187
+ value: dayjs().hour(hourChange).minute(Number(minute)).toISOString(),
188
+ });
189
+ }
190
+ else if (mode === "datetime") {
191
+ onChange({
192
+ value: dayjs(date).hour(hourChange).minute(Number(minute)).toISOString(),
193
+ });
194
+ }
195
+ onDismiss();
196
+ };
197
+ const sendClear = () => {
198
+ onChange({
199
+ value: "",
200
+ });
201
+ onDismiss();
202
+ };
203
+ // Renders our custom calendar component on mobile or web.
204
+ const renderDateCalendar = () => {
205
+ const markedDates = {};
206
+ if (date) {
207
+ markedDates[dayjs(date).format("YYYY-MM-DD")] = {
208
+ selected: true,
209
+ selectedColor: Unifier.theme.primary,
210
+ };
211
+ }
212
+ return (React.createElement(Calendar, { customHeader: CalendarHeader, initialDate: dayjs(date).format("YYYY-MM-DD"), markedDates: markedDates, onDayPress: (day) => {
213
+ setDate(day.dateString);
214
+ // If mode is just date, we can shortcut and close right away. time and datetime need to wait for the
215
+ // primary button.
216
+ if (mode === "date") {
217
+ onChange({ value: day.dateString });
218
+ onDismiss();
219
+ }
220
+ } }));
221
+ };
222
+ const renderContent = () => {
223
+ if (isMobileDevice()) {
224
+ if (mode === "date") {
225
+ return renderDateCalendar();
226
+ }
227
+ else if (mode === "time") {
228
+ return renderMobileTime();
229
+ }
230
+ else {
231
+ return renderDateTime();
232
+ }
233
+ }
234
+ else {
235
+ if (mode === "date") {
236
+ return renderDateCalendar();
237
+ }
238
+ else if (mode === "time") {
239
+ return renderWebTime();
240
+ }
241
+ else {
242
+ return renderDateTime();
243
+ }
244
+ }
245
+ };
246
+ return (React.createElement(Modal, { primaryButtonOnClick: sendOnChange, primaryButtonText: "Save", secondaryButtonOnClick: sendClear, secondaryButtonText: "Clear", showClose: true, visible: visible, onDismiss: onDismiss }, renderContent()));
247
+ }
248
+ //# sourceMappingURL=DateTimeActionSheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimeActionSheet.js","sourceRoot":"","sources":["../src/DateTimeActionSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,6BAA6B,CAAC;AACnD,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,KAAK,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAa,SAAS,EAAa,IAAI,EAAC,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAC,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,wEAAwE;AACxE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACpE,MAAM,cAAc,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEtF,SAAS,SAAS,CAAC,EACjB,IAAI,EACJ,KAAK,EACL,QAAQ,GAKT;IACC,MAAM,WAAW,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,IAAI,KAAK,MAAM,EAAE;QACnB,KAAK,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC/C;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;QAC5B,KAAK,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACxD;IAED,mEAAmE;IACnE,MAAM,cAAc,GAAyB;QAC3C,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,CAAC;QACd,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;QAC7B,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW;KACtC,CAAC;IAEF,OAAO,CACL,oBAAC,IAAI,IACH,KAAK,EAAE;YACL,aAAa,EAAE,KAAK;YACpB,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,MAAM;YACb,oDAAoD;YACpD,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACpC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;YAC3D,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;SACrC;QAED,oBAAC,SAAS,IACR,YAAY,EAAC,YAAY,EACzB,aAAa,EAAC,MAAM,EACpB,KAAK,EACH,gCACK,cAAc,KACjB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,CAAC,GACjC,EAEV,eAAe,EAAC,MAAM,EACtB,qBAAqB,EAAC,aAAa,EACnC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,GAAG,EAAE;gBACX,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,EACD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;gBAClB,OAAO,CAAC,CAAC,CAAC,CAAC;gBACX,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC,EACD,OAAO,EAAE,GAAG,EAAE;gBACZ,UAAU,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC,GACD,CACG,CACR,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,QAAQ,EACR,KAAK,GAIN;IACC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,OAAO,CACL,oBAAC,GAAG,IAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAC,KAAK,EAAC,MAAM,EAAE,EAAE,EAAE,cAAc,EAAC,SAAS,EAAC,KAAK,EAAC,MAAM;QACxF,oBAAC,UAAU,IACT,kBAAkB,EAAC,OAAO,EAC1B,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,mBAAmB,EACxB,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE;gBACZ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC,GACD;QACF,oBAAC,UAAU,IACT,kBAAkB,EAAC,OAAO,EAC1B,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,YAAY,EACjB,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE;gBACZ,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,CAAC,GACD;QACF,oBAAC,OAAO,IAAC,IAAI,EAAC,IAAI,IAAE,WAAW,CAAW;QAC1C,oBAAC,UAAU,IACT,kBAAkB,EAAC,OAAO,EAC1B,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,aAAa,EAClB,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE;gBACZ,QAAQ,CAAC,CAAC,CAAC,CAAC;YACd,CAAC,GACD;QACF,oBAAC,UAAU,IACT,kBAAkB,EAAC,OAAO,EAC1B,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,oBAAoB,EACzB,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE;gBACZ,QAAQ,CAAC,EAAE,CAAC,CAAC;YACf,CAAC,GACD,CACE,CACP,CAAC;AACJ,CAAC;AAYD,yDAAyD;AACzD,8CAA8C;AAC9C,cAAc;AACd,mFAAmF;AACnF,sEAAsE;AACtE,+GAA+G;AAC/G,mGAAmG;AACnG,wFAAwF;AACxF,MAAM,UAAU,mBAAmB,CAAC;AAClC,kBAAkB;AAClB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,GACgB;IACzB,8FAA8F;IAC9F,IAAI,CAAC,CAAC;IACN,IAAI,KAAK,EAAE;QACT,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;KAC9D;SAAM;QACL,CAAC,GAAG,KAAK,EAAE,CAAC;KACb;IAED,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;KACrD;IAED,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IAC9B,IAAI,EAAE,KAAK,CAAC,EAAE;QACZ,EAAE,GAAG,EAAE,CAAC;KACT;IAED,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAc,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3F,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,CAAC;QACb,IAAI,KAAK,EAAE;YACT,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;SACrE;aAAM;YACL,QAAQ,GAAG,KAAK,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,CAAC,GAAG,EAAE,CAAC;SACR;QACD,OAAO,CAAC,CAAC,CAAC,CAAC;QACX,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACzC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,6CAA6C;IAC7C,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,OAAO,CACL,oBAAC,GAAG,IAAC,SAAS,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM;YAC/B,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAC,KAAK;gBAC3B,oBAAC,MAAM,IACL,SAAS,EAAE;wBACT,MAAM,EAAE,kBAAkB;qBAC3B,EACD,aAAa,EAAE,IAAI,EACnB,KAAK,EAAE;wBACL,MAAM,EAAE,kBAAkB;wBAC1B,eAAe,EAAE,SAAS;qBAC3B,EACD,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAE/C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAChB,oBAAC,MAAM,CAAC,IAAI,IAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAI,CACpE,CAAC,CACK,CACL;YACN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAC,KAAK;gBAC3B,oBAAC,MAAM,IACL,SAAS,EAAE;wBACT,MAAM,EAAE,kBAAkB;qBAC3B,EACD,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE;wBACL,MAAM,EAAE,kBAAkB;wBAC1B,eAAe,EAAE,SAAS;qBAC3B,EACD,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAEjD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClB,oBAAC,MAAM,CAAC,IAAI,IAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAI,CACpE,CAAC,CACK,CACL;YACN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAC,KAAK;gBAC3B,oBAAC,MAAM,IACL,SAAS,EAAE;wBACT,MAAM,EAAE,kBAAkB;qBAC3B,EACD,aAAa,EAAE,IAAI,EACnB,KAAK,EAAE;wBACL,MAAM,EAAE,kBAAkB;wBAC1B,eAAe,EAAE,SAAS;qBAC3B,EACD,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;oBAEhD,oBAAC,MAAM,CAAC,IAAI,IAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAG;oBAC9C,oBAAC,MAAM,CAAC,IAAI,IAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAG,CACvC,CACL,CACF,CACP,CAAC;IACJ,CAAC,CAAC;IAEF,6FAA6F;IAC7F,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,OAAO,CACL,oBAAC,GAAG,IAAC,SAAS,EAAC,KAAK,EAAC,cAAc,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM;YACvD,oBAAC,GAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,oBAAC,SAAS,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAI,CAC/D;YACN,oBAAC,GAAG,IACF,UAAU,EAAC,QAAQ,EACnB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAC,QAAQ,EACvB,UAAU,EAAE,CAAC,EACb,WAAW,EAAE,CAAC;gBAEd,oBAAC,OAAO,IAAC,IAAI,EAAC,IAAI,QAAY,CAC1B;YACN,oBAAC,GAAG,IAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;gBAC5B,oBAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAI,CACrE;YAEN,oBAAC,GAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,oBAAC,UAAU,IACT,OAAO,EAAE;wBACP,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC;wBAC1B,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC;qBAC3B,EACD,KAAK,EAAE,EAAC,SAAS,EAAE,YAAY,EAAC,EAChC,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;wBACnB,OAAO,CAAC,MAAqB,CAAC,CAAC;oBACjC,CAAC,GACD,CACE,CACF,CACP,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAuB,EAAE;QAC9C,OAAO,CACL,oBAAC,GAAG;YACF,oBAAC,GAAG,IAAC,YAAY,EAAE,CAAC,IAAG,kBAAkB,EAAE,CAAO;YACjD,cAAc,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CACpD,CACP,CAAC;IACJ,CAAC,CAAC;IAEF,uDAAuD;IACvD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,UAAU,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnF,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,QAAQ,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;SACzB;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE;YAC1B,QAAQ,CAAC;gBACP,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE;aACrE,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,KAAK,UAAU,EAAE;YAC9B,QAAQ,CAAC;gBACP,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE;aACzE,CAAC,CAAC;SACJ;QACD,SAAS,EAAE,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,QAAQ,CAAC;YACP,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QACH,SAAS,EAAE,CAAC;IACd,CAAC,CAAC;IAEF,0DAA0D;IAC1D,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,MAAM,WAAW,GAA+D,EAAE,CAAC;QACnF,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG;gBAC9C,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;aACrC,CAAC;SACH;QACD,OAAO,CACL,oBAAC,QAAQ,IACP,YAAY,EAAE,cAAc,EAC5B,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAC7C,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;gBAClB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACxB,qGAAqG;gBACrG,kBAAkB;gBAClB,IAAI,IAAI,KAAK,MAAM,EAAE;oBACnB,QAAQ,CAAC,EAAC,KAAK,EAAE,GAAG,CAAC,UAAU,EAAC,CAAC,CAAC;oBAClC,SAAS,EAAE,CAAC;iBACb;YACH,CAAC,GACD,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAuB,EAAE;QAC7C,IAAI,cAAc,EAAE,EAAE;YACpB,IAAI,IAAI,KAAK,MAAM,EAAE;gBACnB,OAAO,kBAAkB,EAAE,CAAC;aAC7B;iBAAM,IAAI,IAAI,KAAK,MAAM,EAAE;gBAC1B,OAAO,gBAAgB,EAAE,CAAC;aAC3B;iBAAM;gBACL,OAAO,cAAc,EAAE,CAAC;aACzB;SACF;aAAM;YACL,IAAI,IAAI,KAAK,MAAM,EAAE;gBACnB,OAAO,kBAAkB,EAAE,CAAC;aAC7B;iBAAM,IAAI,IAAI,KAAK,MAAM,EAAE;gBAC1B,OAAO,aAAa,EAAE,CAAC;aACxB;iBAAM;gBACL,OAAO,cAAc,EAAE,CAAC;aACzB;SACF;IACH,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,KAAK,IACJ,oBAAoB,EAAE,YAAY,EAClC,iBAAiB,EAAC,MAAM,EACxB,sBAAsB,EAAE,SAAS,EACjC,mBAAmB,EAAC,OAAO,EAC3B,SAAS,QACT,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,IAEnB,aAAa,EAAE,CACV,CACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactElement } from "react";
2
+ import { DateTimeFieldProps } from "./Common";
3
+ export declare const DateTimeField: ({ mode, value, onChange, errorMessage, pickerType, dateFormat, errorMessageColor, }: DateTimeFieldProps) => ReactElement;
@@ -0,0 +1,66 @@
1
+ import DateTimePicker from "@react-native-community/datetimepicker";
2
+ import React, { useMemo, useState } from "react";
3
+ import { TextInput } from "react-native";
4
+ import dayjs from "./dayjsExtended";
5
+ import { Unifier } from "./Unifier";
6
+ import { WithLabel } from "./WithLabel";
7
+ export const DateTimeField = ({ mode, value, onChange, errorMessage, pickerType = "default", dateFormat, errorMessageColor, }) => {
8
+ // const [showCalendar, setShowCalendar] = useState(false);
9
+ // const [showClock, setShowClock] = useState(false);
10
+ // const [tempDate, setTempDate] = useState<Date>();
11
+ const [pickerMode, setPickerMode] = useState(mode);
12
+ const [showPicker, setShowPicker] = useState(false);
13
+ const showCalendarFirst = mode === "datetime" || mode === "date";
14
+ const defaultFormat = useMemo(() => {
15
+ if (dateFormat) {
16
+ return dateFormat;
17
+ }
18
+ else {
19
+ if (mode === "date") {
20
+ return "MMMM Do YYYY";
21
+ }
22
+ else if (mode === "time") {
23
+ return "h:mm a";
24
+ }
25
+ else {
26
+ return "MMMM Do YYYY, h:mm a";
27
+ }
28
+ }
29
+ }, [mode, dateFormat]);
30
+ const showMode = (currentMode) => {
31
+ setShowPicker(true);
32
+ setPickerMode(currentMode);
33
+ };
34
+ const showDatePicker = () => {
35
+ showMode("date");
36
+ };
37
+ const showTimePicker = () => {
38
+ showMode("time");
39
+ };
40
+ return (React.createElement(WithLabel, { label: errorMessage, labelColor: errorMessageColor || "red", labelPlacement: "after", labelSize: "sm" },
41
+ React.createElement(WithLabel, null,
42
+ React.createElement(TextInput, { inputMode: "none", style: {
43
+ flex: 1,
44
+ paddingTop: 10,
45
+ paddingRight: 10,
46
+ paddingBottom: 10,
47
+ paddingLeft: 10,
48
+ height: 40,
49
+ width: "100%",
50
+ color: Unifier.theme.darkGray,
51
+ fontFamily: Unifier.theme.primaryFont,
52
+ borderWidth: 1,
53
+ }, value: dayjs(value).format(defaultFormat), onPressIn: () => {
54
+ showCalendarFirst ? showDatePicker() : showTimePicker();
55
+ } }),
56
+ showPicker && (React.createElement(DateTimePicker, { display: pickerType, mode: pickerMode, testID: "dateTimePicker", value: value, onChange: (event, date) => {
57
+ if (date) {
58
+ onChange(date);
59
+ if (pickerMode === "date" && mode === "datetime") {
60
+ showTimePicker();
61
+ }
62
+ }
63
+ setShowPicker(false);
64
+ } })))));
65
+ };
66
+ //# sourceMappingURL=DateTimeField.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimeField.android.js","sourceRoot":"","sources":["../src/DateTimeField.android.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ReactElement } from "react";
2
+ import { DateTimeFieldProps, WithChildren } from "./Common";
3
+ export declare const DateTimeField: ({ mode, value, onChange, errorMessage, errorMessageColor, }: WithChildren<DateTimeFieldProps>) => ReactElement;
@@ -0,0 +1,3 @@
1
+ import { ReactElement } from "react";
2
+ import { DateTimeFieldProps } from "./Common";
3
+ export declare const DateTimeField: ({ mode, value, onChange, errorMessage, errorMessageColor, dateFormat, pickerType, label, }: DateTimeFieldProps) => ReactElement;
@@ -0,0 +1,48 @@
1
+ import DateTimePicker from "@react-native-community/datetimepicker";
2
+ import React, { useMemo, useState } from "react";
3
+ import { TextInput } from "react-native";
4
+ import dayjs from "./dayjsExtended";
5
+ import { Unifier } from "./Unifier";
6
+ import { WithLabel } from "./WithLabel";
7
+ export const DateTimeField = ({ mode, value, onChange, errorMessage, errorMessageColor, dateFormat, pickerType = "inline", label, }) => {
8
+ const [showPicker, setShowPicker] = useState(false);
9
+ const defaultFormat = useMemo(() => {
10
+ if (dateFormat) {
11
+ return dateFormat;
12
+ }
13
+ else {
14
+ if (mode === "date") {
15
+ return "MMMM Do YYYY";
16
+ }
17
+ else if (mode === "time") {
18
+ return "h:mm a";
19
+ }
20
+ else {
21
+ return "MMMM Do YYYY, h:mm a";
22
+ }
23
+ }
24
+ }, [mode, dateFormat]);
25
+ return (React.createElement(WithLabel, { label: label, labelSize: "lg" },
26
+ React.createElement(WithLabel, { label: errorMessage, labelColor: errorMessageColor || "red", labelPlacement: "after", labelSize: "sm" },
27
+ React.createElement(TextInput, { inputMode: "none", style: {
28
+ flex: 1,
29
+ paddingTop: 10,
30
+ paddingRight: 10,
31
+ paddingBottom: 10,
32
+ paddingLeft: 10,
33
+ height: 40,
34
+ width: "100%",
35
+ color: Unifier.theme.darkGray,
36
+ fontFamily: Unifier.theme.primaryFont,
37
+ borderWidth: 1,
38
+ }, value: dayjs(value).format(defaultFormat), onPressIn: () => {
39
+ setShowPicker(!showPicker);
40
+ } }),
41
+ showPicker && (React.createElement(DateTimePicker, { accentColor: Unifier.theme.primary, display: pickerType, mode: mode, style: { alignSelf: "flex-start" }, testID: "dateTimePicker", value: dayjs(value).toDate(), onChange: (event, date) => {
42
+ if (!date) {
43
+ return;
44
+ }
45
+ onChange(date);
46
+ } })))));
47
+ };
48
+ //# sourceMappingURL=DateTimeField.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimeField.ios.js","sourceRoot":"","sources":["../src/DateTimeField.ios.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,EAAE,EAAe,OAAO,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAGvC,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,UAAU,GAAG,QAAQ,EACrB,KAAK,GACc,EAAgB,EAAE;IACrC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,IAAI,UAAU,EAAE;YACd,OAAO,UAAU,CAAC;SACnB;aAAM;YACL,IAAI,IAAI,KAAK,MAAM,EAAE;gBACnB,OAAO,cAAc,CAAC;aACvB;iBAAM,IAAI,IAAI,KAAK,MAAM,EAAE;gBAC1B,OAAO,QAAQ,CAAC;aACjB;iBAAM;gBACL,OAAO,sBAAsB,CAAC;aAC/B;SACF;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,oBAAC,SAAS,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,IAAI;QACrC,oBAAC,SAAS,IACR,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,iBAAiB,IAAI,KAAK,EACtC,cAAc,EAAC,OAAO,EACtB,SAAS,EAAC,IAAI;YAEd,oBAAC,SAAS,IACR,SAAS,EAAC,MAAM,EAChB,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC;oBACP,UAAU,EAAE,EAAE;oBACd,YAAY,EAAE,EAAE;oBAChB,aAAa,EAAE,EAAE;oBACjB,WAAW,EAAE,EAAE;oBACf,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,MAAM;oBACb,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;oBAC7B,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW;oBACrC,WAAW,EAAE,CAAC;iBACf,EACD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EACzC,SAAS,EAAE,GAAG,EAAE;oBACd,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC7B,CAAC,GACD;YAED,UAAU,IAAI,CACb,oBAAC,cAAc,IACb,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EAClC,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,EAAC,SAAS,EAAE,YAAY,EAAC,EAChC,MAAM,EAAC,gBAAgB,EACvB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAC5B,QAAQ,EAAE,CAAC,KAAU,EAAE,IAAS,EAAE,EAAE;oBAClC,IAAI,CAAC,IAAI,EAAE;wBACT,OAAO;qBACR;oBACD,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,GACD,CACH,CACS,CACF,CACb,CAAC;AACJ,CAAC,CAAC"}