@draftbit/core 43.4.11-0e8ceb.4 → 43.4.11-3a52a5.6

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 (46) hide show
  1. package/lib/commonjs/components/Checkbox/Checkbox.js +6 -6
  2. package/lib/commonjs/components/Checkbox/Checkbox.js.map +1 -1
  3. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js +142 -0
  4. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js.map +1 -0
  5. package/lib/commonjs/components/Checkbox/CheckboxRow.js +54 -46
  6. package/lib/commonjs/components/Checkbox/CheckboxRow.js.map +1 -1
  7. package/lib/commonjs/components/DatePicker/DatePicker.js +2 -9
  8. package/lib/commonjs/components/DatePicker/DatePicker.js.map +1 -1
  9. package/lib/commonjs/components/Divider.js +13 -3
  10. package/lib/commonjs/components/Divider.js.map +1 -1
  11. package/lib/commonjs/components/FAB.js +5 -19
  12. package/lib/commonjs/components/FAB.js.map +1 -1
  13. package/lib/commonjs/components/RadioButton/RadioButtonRow.js +1 -1
  14. package/lib/commonjs/components/RadioButton/RadioButtonRow.js.map +1 -1
  15. package/lib/commonjs/mappings/CheckboxRow.js +25 -6
  16. package/lib/commonjs/mappings/CheckboxRow.js.map +1 -1
  17. package/lib/module/components/Checkbox/Checkbox.js +6 -6
  18. package/lib/module/components/Checkbox/Checkbox.js.map +1 -1
  19. package/lib/module/components/Checkbox/CheckboxGroupRow.js +120 -0
  20. package/lib/module/components/Checkbox/CheckboxGroupRow.js.map +1 -0
  21. package/lib/module/components/Checkbox/CheckboxRow.js +52 -46
  22. package/lib/module/components/Checkbox/CheckboxRow.js.map +1 -1
  23. package/lib/module/components/DatePicker/DatePicker.js +3 -9
  24. package/lib/module/components/DatePicker/DatePicker.js.map +1 -1
  25. package/lib/module/components/RadioButton/RadioButtonRow.js +1 -1
  26. package/lib/module/components/RadioButton/RadioButtonRow.js.map +1 -1
  27. package/lib/module/components/Stepper.js.map +1 -1
  28. package/lib/module/components/useAuthState.js.map +1 -1
  29. package/lib/module/mappings/CheckboxRow.js +26 -7
  30. package/lib/module/mappings/CheckboxRow.js.map +1 -1
  31. package/lib/typescript/src/components/Checkbox/CheckboxGroupRow.d.ts +21 -0
  32. package/lib/typescript/src/components/Checkbox/CheckboxRow.d.ts +3 -7
  33. package/lib/typescript/src/mappings/CheckboxRow.d.ts +50 -9
  34. package/package.json +2 -2
  35. package/src/components/Checkbox/Checkbox.js +6 -6
  36. package/src/components/Checkbox/Checkbox.tsx +8 -6
  37. package/src/components/Checkbox/CheckboxGroupRow.js +77 -0
  38. package/src/components/Checkbox/CheckboxGroupRow.tsx +152 -0
  39. package/src/components/Checkbox/CheckboxRow.js +33 -32
  40. package/src/components/Checkbox/CheckboxRow.tsx +66 -62
  41. package/src/components/DatePicker/DatePicker.js +2 -4
  42. package/src/components/DatePicker/DatePicker.tsx +1 -14
  43. package/src/components/RadioButton/RadioButtonRow.js +1 -1
  44. package/src/components/RadioButton/RadioButtonRow.tsx +1 -1
  45. package/src/mappings/CheckboxRow.js +26 -7
  46. package/src/mappings/CheckboxRow.ts +28 -6
@@ -28,7 +28,7 @@ const Checkbox = _ref => {
28
28
  Icon,
29
29
  status,
30
30
  disabled = false,
31
- onPress = () => {},
31
+ onPress,
32
32
  onCheck,
33
33
  onUncheck,
34
34
  color,
@@ -62,14 +62,14 @@ const Checkbox = _ref => {
62
62
  const handlePress = () => {
63
63
  const newValue = !internalValue;
64
64
  setInternalValue(newValue);
65
- onPress(newValue);
65
+ onPress === null || onPress === void 0 ? void 0 : onPress(newValue);
66
66
 
67
- if (onCheck && newValue) {
68
- onCheck();
67
+ if (newValue) {
68
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck();
69
69
  }
70
70
 
71
- if (onUncheck && !newValue) {
72
- onUncheck();
71
+ if (!newValue) {
72
+ onUncheck === null || onUncheck === void 0 ? void 0 : onUncheck();
73
73
  }
74
74
  };
75
75
 
@@ -1 +1 @@
1
- {"version":3,"sources":["Checkbox.tsx"],"names":["Checkbox","Icon","status","disabled","onPress","onCheck","onUncheck","color","uncheckedColor","defaultValue","checkedIcon","uncheckedIcon","size","style","rest","internalValue","setInternalValue","React","useState","useEffect","previousDefaultValue","Boolean","colors","checkboxColor","primary","handlePress","newValue","styles","container","width","height","icon","StyleSheet","absoluteFill","fillContainer","fill","opacity","borderColor","create","borderRadius","alignItems","justifyContent","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n TouchableHighlightProps,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport { useTheme } from \"../../theming\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport Touchable from \"../Touchable\";\nimport { usePrevious } from \"../../hooks\";\n\nexport interface CheckboxProps {\n status?: boolean;\n disabled?: boolean;\n onPress?: (checked: boolean) => void;\n onCheck?: () => void;\n onUncheck?: () => void;\n color?: string;\n uncheckedColor?: string;\n checkedIcon?: string;\n uncheckedIcon?: string;\n defaultValue?: boolean;\n size?: number;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Checkbox: React.FC<CheckboxProps & TouchableHighlightProps & IconSlot> =\n ({\n Icon,\n status,\n disabled = false,\n onPress = () => {},\n onCheck,\n onUncheck,\n color,\n uncheckedColor,\n defaultValue,\n checkedIcon = \"MaterialCommunityIcons/checkbox-marked\",\n uncheckedIcon = \"MaterialCommunityIcons/checkbox-blank-outline\",\n size = 24,\n style,\n ...rest\n }) => {\n const [internalValue, setInternalValue] = React.useState<boolean>(\n status || defaultValue || false\n );\n\n React.useEffect(() => {\n if (status != null) {\n setInternalValue(status);\n }\n }, [status]);\n\n // This special logic is to handle weird APIs like Airtable that return\n // true or undefined for a boolean\n const previousDefaultValue = usePrevious(defaultValue) as\n | boolean\n | undefined;\n React.useEffect(() => {\n if (defaultValue !== previousDefaultValue) {\n setInternalValue(Boolean(defaultValue));\n }\n }, [defaultValue, previousDefaultValue]);\n\n const { colors } = useTheme();\n\n const checkboxColor = internalValue\n ? color || colors.primary\n : uncheckedColor || colors.primary;\n\n const handlePress = () => {\n const newValue = !internalValue;\n setInternalValue(newValue);\n onPress(newValue);\n\n if (onCheck && newValue) {\n onCheck();\n }\n\n if (onUncheck && !newValue) {\n onUncheck();\n }\n };\n\n return (\n <Touchable\n {...rest}\n onPress={handlePress}\n disabled={disabled}\n accessibilityState={{ disabled }}\n accessibilityRole=\"button\"\n accessibilityLiveRegion=\"polite\"\n style={[styles.container, style, { width: size, height: size }]}\n >\n <Icon\n style={styles.icon}\n name={internalValue ? checkedIcon : uncheckedIcon}\n size={size}\n color={checkboxColor}\n />\n <View style={[StyleSheet.absoluteFill, styles.fillContainer]}>\n <View\n style={[\n styles.fill,\n { opacity: disabled ? 0.5 : 1 },\n { borderColor: checkboxColor },\n ]}\n />\n </View>\n </Touchable>\n );\n };\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n },\n fillContainer: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n icon: {\n alignSelf: \"center\",\n },\n fill: {\n borderRadius: 5,\n width: 30,\n height: 30,\n alignSelf: \"center\",\n },\n});\n\nexport default Checkbox;\n"]}
1
+ {"version":3,"sources":["Checkbox.tsx"],"names":["Checkbox","Icon","status","disabled","onPress","onCheck","onUncheck","color","uncheckedColor","defaultValue","checkedIcon","uncheckedIcon","size","style","rest","internalValue","setInternalValue","React","useState","useEffect","previousDefaultValue","Boolean","colors","checkboxColor","primary","handlePress","newValue","styles","container","width","height","icon","StyleSheet","absoluteFill","fillContainer","fill","opacity","borderColor","create","borderRadius","alignItems","justifyContent","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n TouchableHighlightProps,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport { useTheme } from \"../../theming\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport Touchable from \"../Touchable\";\nimport { usePrevious } from \"../../hooks\";\n\nexport interface CheckboxProps {\n status?: boolean;\n disabled?: boolean;\n onPress?: (checked: boolean) => void;\n onCheck?: () => void;\n onUncheck?: () => void;\n color?: string;\n uncheckedColor?: string;\n checkedIcon?: string;\n uncheckedIcon?: string;\n defaultValue?: boolean;\n size?: number;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Checkbox: React.FC<CheckboxProps & TouchableHighlightProps & IconSlot> =\n ({\n Icon,\n status,\n disabled = false,\n onPress,\n onCheck,\n onUncheck,\n color,\n uncheckedColor,\n defaultValue,\n checkedIcon = \"MaterialCommunityIcons/checkbox-marked\",\n uncheckedIcon = \"MaterialCommunityIcons/checkbox-blank-outline\",\n size = 24,\n style,\n ...rest\n }) => {\n const [internalValue, setInternalValue] = React.useState<boolean>(\n status || defaultValue || false\n );\n\n React.useEffect(() => {\n if (status != null) {\n setInternalValue(status);\n }\n }, [status]);\n\n // This special logic is to handle weird APIs like Airtable that return\n // true or undefined for a boolean\n const previousDefaultValue = usePrevious(defaultValue) as\n | boolean\n | undefined;\n\n React.useEffect(() => {\n if (defaultValue !== previousDefaultValue) {\n setInternalValue(Boolean(defaultValue));\n }\n }, [defaultValue, previousDefaultValue]);\n\n const { colors } = useTheme();\n\n const checkboxColor = internalValue\n ? color || colors.primary\n : uncheckedColor || colors.primary;\n\n const handlePress = () => {\n const newValue = !internalValue;\n\n setInternalValue(newValue);\n onPress?.(newValue);\n\n if (newValue) {\n onCheck?.();\n }\n\n if (!newValue) {\n onUncheck?.();\n }\n };\n\n return (\n <Touchable\n {...rest}\n onPress={handlePress}\n disabled={disabled}\n accessibilityState={{ disabled }}\n accessibilityRole=\"button\"\n accessibilityLiveRegion=\"polite\"\n style={[styles.container, style, { width: size, height: size }]}\n >\n <Icon\n style={styles.icon}\n name={internalValue ? checkedIcon : uncheckedIcon}\n size={size}\n color={checkboxColor}\n />\n <View style={[StyleSheet.absoluteFill, styles.fillContainer]}>\n <View\n style={[\n styles.fill,\n { opacity: disabled ? 0.5 : 1 },\n { borderColor: checkboxColor },\n ]}\n />\n </View>\n </Touchable>\n );\n };\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n },\n fillContainer: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n icon: {\n alignSelf: \"center\",\n },\n fill: {\n borderRadius: 5,\n width: 30,\n height: 30,\n alignSelf: \"center\",\n },\n});\n\nexport default Checkbox;\n"]}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.Direction = void 0;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _Checkbox = _interopRequireDefault(require("./Checkbox"));
13
+
14
+ var _Text = _interopRequireDefault(require("../Text"));
15
+
16
+ var _context = require("./context");
17
+
18
+ var _Touchable = _interopRequireDefault(require("../Touchable"));
19
+
20
+ var _utilities = require("../../utilities");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
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; }
27
+
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); }
29
+
30
+ let Direction;
31
+ exports.Direction = Direction;
32
+
33
+ (function (Direction) {
34
+ Direction["Row"] = "row";
35
+ Direction["RowReverse"] = "row-reverse";
36
+ })(Direction || (exports.Direction = Direction = {}));
37
+
38
+ const getCheckboxAlignment = (parentDirection, direction) => {
39
+ if (parentDirection === _context.Direction.Horizontal) {
40
+ return direction === Direction.Row ? "flex-start" : "flex-end";
41
+ } else if (direction === Direction.RowReverse) {
42
+ return "flex-start";
43
+ } else {
44
+ return "flex-end";
45
+ }
46
+ };
47
+
48
+ const renderLabel = (value, labelStyle, textStyle) => {
49
+ if (typeof value === "string") {
50
+ return /*#__PURE__*/React.createElement(_Text.default, {
51
+ style: [labelStyle, textStyle]
52
+ }, value);
53
+ } else {
54
+ return /*#__PURE__*/React.createElement(React.Fragment, null, value);
55
+ }
56
+ };
57
+
58
+ const CheckboxGroupRow = _ref => {
59
+ let {
60
+ Icon,
61
+ label = "Label",
62
+ status,
63
+ value,
64
+ onPress,
65
+ labelContainerStyle,
66
+ labelStyle,
67
+ checkboxStyle,
68
+ direction = Direction.Row,
69
+ disabled,
70
+ style,
71
+ color,
72
+ uncheckedColor,
73
+ ...rest
74
+ } = _ref;
75
+ const {
76
+ values: selectedValues,
77
+ onValueChange,
78
+ direction: parentDirection
79
+ } = (0, _context.useCheckboxGroupContext)();
80
+ const values = Array.isArray(selectedValues) ? selectedValues : [];
81
+ const isChecked = status || values.includes(value);
82
+
83
+ const handlePress = () => {
84
+ if (!disabled) {
85
+ onPress === null || onPress === void 0 ? void 0 : onPress(!isChecked);
86
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(value, !isChecked);
87
+ }
88
+ };
89
+
90
+ const {
91
+ textStyles,
92
+ viewStyles
93
+ } = (0, _utilities.extractStyles)(style);
94
+ return /*#__PURE__*/React.createElement(_Touchable.default, _extends({
95
+ onPress: handlePress,
96
+ style: [styles.mainParent, {
97
+ flexDirection: direction
98
+ }, viewStyles],
99
+ disabled: disabled
100
+ }, rest), /*#__PURE__*/React.createElement(_reactNative.View, {
101
+ style: [styles.label, {
102
+ alignItems: direction === Direction.Row ? "flex-start" : "flex-end"
103
+ }, labelContainerStyle]
104
+ }, renderLabel(label, labelStyle, textStyles)), /*#__PURE__*/React.createElement(_reactNative.View, {
105
+ style: {
106
+ flex: 1,
107
+ alignItems: getCheckboxAlignment(parentDirection, direction)
108
+ }
109
+ }, /*#__PURE__*/React.createElement(_Checkbox.default, {
110
+ Icon: Icon,
111
+ status: isChecked,
112
+ onPress: handlePress,
113
+ style: checkboxStyle,
114
+ disabled: disabled,
115
+ color: color,
116
+ uncheckedColor: uncheckedColor
117
+ })));
118
+ };
119
+
120
+ const styles = _reactNative.StyleSheet.create({
121
+ mainParent: {
122
+ alignItems: "center",
123
+ justifyContent: "space-around",
124
+ paddingStart: 20,
125
+ minHeight: 50,
126
+ paddingEnd: 20,
127
+ display: "flex",
128
+ ..._reactNative.Platform.select({
129
+ web: {
130
+ cursor: "pointer",
131
+ userSelect: "none"
132
+ }
133
+ })
134
+ },
135
+ label: {
136
+ flex: 3
137
+ }
138
+ });
139
+
140
+ var _default = CheckboxGroupRow;
141
+ exports.default = _default;
142
+ //# sourceMappingURL=CheckboxGroupRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["CheckboxGroupRow.tsx"],"names":["Direction","getCheckboxAlignment","parentDirection","direction","GroupDirection","Horizontal","Row","RowReverse","renderLabel","value","labelStyle","textStyle","CheckboxGroupRow","Icon","label","status","onPress","labelContainerStyle","checkboxStyle","disabled","style","color","uncheckedColor","rest","values","selectedValues","onValueChange","Array","isArray","isChecked","includes","handlePress","textStyles","viewStyles","styles","mainParent","flexDirection","alignItems","flex","StyleSheet","create","justifyContent","paddingStart","minHeight","paddingEnd","display","Platform","select","web","cursor","userSelect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n StyleProp,\n ViewStyle,\n StyleSheet,\n TextStyle,\n View,\n Platform,\n} from \"react-native\";\nimport Checkbox, { CheckboxProps } from \"./Checkbox\";\nimport Text from \"../Text\";\nimport { useCheckboxGroupContext } from \"./context\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { Direction as GroupDirection } from \"./context\";\nimport Touchable from \"../Touchable\";\nimport { extractStyles } from \"../../utilities\";\n\nexport enum Direction {\n Row = \"row\",\n RowReverse = \"row-reverse\",\n}\n\nexport interface CheckboxGroupRowProps extends Omit<CheckboxProps, \"onPress\"> {\n label: string | React.ReactNode;\n value: string; // A string that this checkbox represents\n labelContainerStyle: StyleProp<ViewStyle>;\n checkboxStyle?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n onPress?: (value: boolean) => void;\n direction?: Direction;\n color: string;\n unselectedColor: string;\n}\n\nconst getCheckboxAlignment = (\n parentDirection: GroupDirection | undefined,\n direction: Direction\n) => {\n if (parentDirection === GroupDirection.Horizontal) {\n return direction === Direction.Row ? \"flex-start\" : \"flex-end\";\n } else if (direction === Direction.RowReverse) {\n return \"flex-start\";\n } else {\n return \"flex-end\";\n }\n};\n\nconst renderLabel = (\n value: string | React.ReactNode,\n labelStyle: StyleProp<TextStyle>,\n textStyle: StyleProp<TextStyle>\n) => {\n if (typeof value === \"string\") {\n return <Text style={[labelStyle, textStyle]}>{value}</Text>;\n } else {\n return <>{value}</>;\n }\n};\n\nconst CheckboxGroupRow: React.FC<CheckboxGroupRowProps & IconSlot> = ({\n Icon,\n label = \"Label\",\n status,\n value,\n onPress,\n labelContainerStyle,\n labelStyle,\n checkboxStyle,\n direction = Direction.Row,\n disabled,\n style,\n color,\n uncheckedColor,\n ...rest\n}) => {\n const {\n values: selectedValues,\n onValueChange,\n direction: parentDirection,\n } = useCheckboxGroupContext();\n\n const values = Array.isArray(selectedValues) ? selectedValues : [];\n const isChecked = status || values.includes(value);\n\n const handlePress = () => {\n if (!disabled) {\n onPress?.(!isChecked);\n onValueChange?.(value, !isChecked);\n }\n };\n\n const { textStyles, viewStyles } = extractStyles(style);\n\n return (\n <Touchable\n onPress={handlePress}\n style={[styles.mainParent, { flexDirection: direction }, viewStyles]}\n disabled={disabled}\n {...rest}\n >\n <View\n style={[\n styles.label,\n {\n alignItems: direction === Direction.Row ? \"flex-start\" : \"flex-end\",\n },\n labelContainerStyle,\n ]}\n >\n {renderLabel(label, labelStyle, textStyles)}\n </View>\n <View\n style={{\n flex: 1,\n alignItems: getCheckboxAlignment(parentDirection, direction),\n }}\n >\n <Checkbox\n Icon={Icon}\n status={isChecked}\n onPress={handlePress}\n style={checkboxStyle}\n disabled={disabled}\n color={color}\n uncheckedColor={uncheckedColor}\n />\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n mainParent: {\n alignItems: \"center\",\n justifyContent: \"space-around\",\n paddingStart: 20,\n minHeight: 50,\n paddingEnd: 20,\n display: \"flex\",\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n label: {\n flex: 3,\n },\n});\n\nexport default CheckboxGroupRow;\n"]}
@@ -9,15 +9,17 @@ var React = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _reactNative = require("react-native");
11
11
 
12
- var _Checkbox = _interopRequireDefault(require("./Checkbox"));
12
+ var _lodash = require("lodash");
13
13
 
14
- var _Text = _interopRequireDefault(require("../Text"));
14
+ var _utilities = require("../../utilities");
15
15
 
16
- var _context = require("./context");
16
+ var _hooks = require("../../hooks");
17
+
18
+ var _Text = _interopRequireDefault(require("../Text"));
17
19
 
18
20
  var _Touchable = _interopRequireDefault(require("../Touchable"));
19
21
 
20
- var _utilities = require("../../utilities");
22
+ var _Checkbox = _interopRequireDefault(require("./Checkbox"));
21
23
 
22
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
25
 
@@ -35,20 +37,10 @@ exports.Direction = Direction;
35
37
  Direction["RowReverse"] = "row-reverse";
36
38
  })(Direction || (exports.Direction = Direction = {}));
37
39
 
38
- const getCheckboxAlignment = (parentDirection, direction) => {
39
- if (parentDirection === _context.Direction.Horizontal) {
40
- return direction === Direction.Row ? "flex-start" : "flex-end";
41
- } else if (direction === Direction.RowReverse) {
42
- return "flex-start";
43
- } else {
44
- return "flex-end";
45
- }
46
- };
47
-
48
40
  const renderLabel = (value, labelStyle, textStyle) => {
49
- if (typeof value === "string") {
41
+ if ((0, _lodash.isString)(value)) {
50
42
  return /*#__PURE__*/React.createElement(_Text.default, {
51
- style: [labelStyle, textStyle]
43
+ style: [textStyle, labelStyle]
52
44
  }, value);
53
45
  } else {
54
46
  return /*#__PURE__*/React.createElement(React.Fragment, null, value);
@@ -57,33 +49,52 @@ const renderLabel = (value, labelStyle, textStyle) => {
57
49
 
58
50
  const CheckboxRow = _ref => {
59
51
  let {
60
- Icon,
61
52
  label = "Label",
62
- status,
63
- value,
64
- onPress = () => {},
65
- labelContainerStyle,
66
53
  labelStyle,
54
+ labelContainerStyle,
67
55
  checkboxStyle,
68
56
  direction = Direction.Row,
69
- disabled,
70
- style,
57
+ Icon,
58
+ status,
59
+ disabled = false,
60
+ onPress,
61
+ onCheck,
62
+ onUncheck,
71
63
  color,
72
64
  uncheckedColor,
65
+ defaultValue,
66
+ checkedIcon,
67
+ uncheckedIcon,
68
+ size,
69
+ style,
73
70
  ...rest
74
71
  } = _ref;
75
- const {
76
- values: selectedValues,
77
- onValueChange,
78
- direction: parentDirection
79
- } = (0, _context.useCheckboxGroupContext)();
80
- const values = Array.isArray(selectedValues) ? selectedValues : [];
81
- const isChecked = status || values.includes(value);
72
+ const [internalValue, setInternalValue] = React.useState(status || defaultValue || false);
73
+ React.useEffect(() => {
74
+ if (status != null) {
75
+ setInternalValue(status);
76
+ }
77
+ }, [status]); // This special logic is to handle weird APIs like Airtable that return
78
+ // true or undefined for a boolean
79
+
80
+ const previousDefaultValue = (0, _hooks.usePrevious)(defaultValue);
81
+ React.useEffect(() => {
82
+ if (defaultValue !== previousDefaultValue) {
83
+ setInternalValue(Boolean(defaultValue));
84
+ }
85
+ }, [defaultValue, previousDefaultValue]);
82
86
 
83
87
  const handlePress = () => {
84
- if (!disabled) {
85
- onPress(!isChecked);
86
- onValueChange && onValueChange(value, !isChecked);
88
+ const newValue = !internalValue;
89
+ setInternalValue(newValue);
90
+ onPress === null || onPress === void 0 ? void 0 : onPress(newValue);
91
+
92
+ if (newValue) {
93
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck();
94
+ }
95
+
96
+ if (!newValue) {
97
+ onUncheck === null || onUncheck === void 0 ? void 0 : onUncheck();
87
98
  }
88
99
  };
89
100
 
@@ -93,28 +104,25 @@ const CheckboxRow = _ref => {
93
104
  } = (0, _utilities.extractStyles)(style);
94
105
  return /*#__PURE__*/React.createElement(_Touchable.default, _extends({
95
106
  onPress: handlePress,
96
- style: [styles.mainParent, {
107
+ style: [viewStyles, styles.mainParent, {
97
108
  flexDirection: direction
98
- }, viewStyles],
109
+ }],
99
110
  disabled: disabled
100
111
  }, rest), /*#__PURE__*/React.createElement(_reactNative.View, {
101
112
  style: [styles.label, {
102
113
  alignItems: direction === Direction.Row ? "flex-start" : "flex-end"
103
114
  }, labelContainerStyle]
104
- }, renderLabel(label, labelStyle, textStyles)), /*#__PURE__*/React.createElement(_reactNative.View, {
105
- style: {
106
- flex: 1,
107
- alignItems: getCheckboxAlignment(parentDirection, direction)
108
- }
109
- }, /*#__PURE__*/React.createElement(_Checkbox.default, {
115
+ }, renderLabel(label, textStyles, labelStyle)), /*#__PURE__*/React.createElement(_Checkbox.default, {
110
116
  Icon: Icon,
111
- status: isChecked,
112
- onPress: handlePress,
117
+ status: internalValue,
113
118
  style: checkboxStyle,
114
119
  disabled: disabled,
115
120
  color: color,
116
- uncheckedColor: uncheckedColor
117
- })));
121
+ uncheckedColor: uncheckedColor,
122
+ checkedIcon: checkedIcon,
123
+ uncheckedIcon: uncheckedIcon,
124
+ size: size
125
+ }));
118
126
  };
119
127
 
120
128
  const styles = _reactNative.StyleSheet.create({
@@ -124,7 +132,7 @@ const styles = _reactNative.StyleSheet.create({
124
132
  paddingStart: 20,
125
133
  minHeight: 50,
126
134
  paddingEnd: 20,
127
- flex: 1,
135
+ display: "flex",
128
136
  ..._reactNative.Platform.select({
129
137
  web: {
130
138
  cursor: "pointer",
@@ -1 +1 @@
1
- {"version":3,"sources":["CheckboxRow.tsx"],"names":["Direction","getCheckboxAlignment","parentDirection","direction","GroupDirection","Horizontal","Row","RowReverse","renderLabel","value","labelStyle","textStyle","CheckboxRow","Icon","label","status","onPress","labelContainerStyle","checkboxStyle","disabled","style","color","uncheckedColor","rest","values","selectedValues","onValueChange","Array","isArray","isChecked","includes","handlePress","textStyles","viewStyles","styles","mainParent","flexDirection","alignItems","flex","StyleSheet","create","justifyContent","paddingStart","minHeight","paddingEnd","Platform","select","web","cursor","userSelect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n StyleProp,\n ViewStyle,\n StyleSheet,\n TextStyle,\n View,\n Platform,\n} from \"react-native\";\nimport Checkbox, { CheckboxProps } from \"./Checkbox\";\nimport Text from \"../Text\";\nimport { useCheckboxGroupContext } from \"./context\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { Direction as GroupDirection } from \"./context\";\nimport Touchable from \"../Touchable\";\nimport { extractStyles } from \"../../utilities\";\n\nexport enum Direction {\n Row = \"row\",\n RowReverse = \"row-reverse\",\n}\n\nexport interface CheckboxRowProps extends Omit<CheckboxProps, \"onPress\"> {\n label: string | React.ReactNode;\n value: string; // A string that this checkbox represents\n labelContainerStyle: StyleProp<ViewStyle>;\n checkboxStyle?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n onPress?: (value: boolean) => void;\n direction?: Direction;\n color: string;\n unselectedColor: string;\n}\n\nconst getCheckboxAlignment = (\n parentDirection: GroupDirection | undefined,\n direction: Direction\n) => {\n if (parentDirection === GroupDirection.Horizontal) {\n return direction === Direction.Row ? \"flex-start\" : \"flex-end\";\n } else if (direction === Direction.RowReverse) {\n return \"flex-start\";\n } else {\n return \"flex-end\";\n }\n};\n\nconst renderLabel = (\n value: string | React.ReactNode,\n labelStyle: StyleProp<TextStyle>,\n textStyle: StyleProp<TextStyle>\n) => {\n if (typeof value === \"string\") {\n return <Text style={[labelStyle, textStyle]}>{value}</Text>;\n } else {\n return <>{value}</>;\n }\n};\n\nconst CheckboxRow: React.FC<CheckboxRowProps & IconSlot> = ({\n Icon,\n label = \"Label\",\n status,\n value,\n onPress = () => {},\n labelContainerStyle,\n labelStyle,\n checkboxStyle,\n direction = Direction.Row,\n disabled,\n style,\n color,\n uncheckedColor,\n ...rest\n}) => {\n const {\n values: selectedValues,\n onValueChange,\n direction: parentDirection,\n } = useCheckboxGroupContext();\n\n const values = Array.isArray(selectedValues) ? selectedValues : [];\n const isChecked = status || values.includes(value);\n\n const handlePress = () => {\n if (!disabled) {\n onPress(!isChecked);\n onValueChange && onValueChange(value, !isChecked);\n }\n };\n\n const { textStyles, viewStyles } = extractStyles(style);\n\n return (\n <Touchable\n onPress={handlePress}\n style={[styles.mainParent, { flexDirection: direction }, viewStyles]}\n disabled={disabled}\n {...rest}\n >\n <View\n style={[\n styles.label,\n {\n alignItems: direction === Direction.Row ? \"flex-start\" : \"flex-end\",\n },\n labelContainerStyle,\n ]}\n >\n {renderLabel(label, labelStyle, textStyles)}\n </View>\n <View\n style={{\n flex: 1,\n alignItems: getCheckboxAlignment(parentDirection, direction),\n }}\n >\n <Checkbox\n Icon={Icon}\n status={isChecked}\n onPress={handlePress}\n style={checkboxStyle}\n disabled={disabled}\n color={color}\n uncheckedColor={uncheckedColor}\n />\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n mainParent: {\n alignItems: \"center\",\n justifyContent: \"space-around\",\n paddingStart: 20,\n minHeight: 50,\n paddingEnd: 20,\n flex: 1,\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n label: {\n flex: 3,\n },\n});\n\nexport default CheckboxRow;\n"]}
1
+ {"version":3,"sources":["CheckboxRow.tsx"],"names":["Direction","renderLabel","value","labelStyle","textStyle","CheckboxRow","label","labelContainerStyle","checkboxStyle","direction","Row","Icon","status","disabled","onPress","onCheck","onUncheck","color","uncheckedColor","defaultValue","checkedIcon","uncheckedIcon","size","style","rest","internalValue","setInternalValue","React","useState","useEffect","previousDefaultValue","Boolean","handlePress","newValue","textStyles","viewStyles","styles","mainParent","flexDirection","alignItems","StyleSheet","create","justifyContent","paddingStart","minHeight","paddingEnd","display","Platform","select","web","cursor","userSelect","flex"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n StyleProp,\n ViewStyle,\n StyleSheet,\n TextStyle,\n View,\n Platform,\n} from \"react-native\";\nimport { isString } from \"lodash\";\n\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { extractStyles } from \"../../utilities\";\nimport { usePrevious } from \"../../hooks\";\nimport Text from \"../Text\";\nimport Touchable from \"../Touchable\";\nimport Checkbox, { CheckboxProps } from \"./Checkbox\";\n\nexport enum Direction {\n Row = \"row\",\n RowReverse = \"row-reverse\",\n}\n\nexport interface CheckboxRowProps extends CheckboxProps {\n label: string | React.ReactNode;\n labelStyle?: StyleProp<TextStyle>;\n labelContainerStyle: StyleProp<ViewStyle>;\n checkboxStyle?: StyleProp<ViewStyle>;\n direction?: Direction;\n}\n\nconst renderLabel = (\n value: string | React.ReactNode,\n labelStyle: StyleProp<TextStyle>,\n textStyle: StyleProp<TextStyle>\n) => {\n if (isString(value)) {\n return <Text style={[textStyle, labelStyle]}>{value}</Text>;\n } else {\n return <>{value}</>;\n }\n};\n\nconst CheckboxRow: React.FC<CheckboxRowProps & IconSlot> = ({\n label = \"Label\",\n labelStyle,\n labelContainerStyle,\n checkboxStyle,\n direction = Direction.Row,\n Icon,\n status,\n disabled = false,\n onPress,\n onCheck,\n onUncheck,\n color,\n uncheckedColor,\n defaultValue,\n checkedIcon,\n uncheckedIcon,\n size,\n style,\n ...rest\n}) => {\n const [internalValue, setInternalValue] = React.useState<boolean>(\n status || defaultValue || false\n );\n\n React.useEffect(() => {\n if (status != null) {\n setInternalValue(status);\n }\n }, [status]);\n\n // This special logic is to handle weird APIs like Airtable that return\n // true or undefined for a boolean\n const previousDefaultValue = usePrevious(defaultValue) as boolean | undefined;\n\n React.useEffect(() => {\n if (defaultValue !== previousDefaultValue) {\n setInternalValue(Boolean(defaultValue));\n }\n }, [defaultValue, previousDefaultValue]);\n\n const handlePress = () => {\n const newValue = !internalValue;\n\n setInternalValue(newValue);\n onPress?.(newValue);\n\n if (newValue) {\n onCheck?.();\n }\n\n if (!newValue) {\n onUncheck?.();\n }\n };\n\n const { textStyles, viewStyles } = extractStyles(style);\n\n return (\n <Touchable\n onPress={handlePress}\n style={[viewStyles, styles.mainParent, { flexDirection: direction }]}\n disabled={disabled}\n {...rest}\n >\n <View\n style={[\n styles.label,\n {\n alignItems: direction === Direction.Row ? \"flex-start\" : \"flex-end\",\n },\n labelContainerStyle,\n ]}\n >\n {renderLabel(label, textStyles, labelStyle)}\n </View>\n\n <Checkbox\n Icon={Icon}\n status={internalValue}\n style={checkboxStyle}\n disabled={disabled}\n color={color}\n uncheckedColor={uncheckedColor}\n checkedIcon={checkedIcon}\n uncheckedIcon={uncheckedIcon}\n size={size}\n />\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n mainParent: {\n alignItems: \"center\",\n justifyContent: \"space-around\",\n paddingStart: 20,\n minHeight: 50,\n paddingEnd: 20,\n display: \"flex\",\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n label: {\n flex: 3,\n },\n});\n\nexport default CheckboxRow;\n"]}
@@ -17,8 +17,6 @@ var _theming = require("../../theming");
17
17
 
18
18
  var _Portal = _interopRequireDefault(require("../Portal/Portal"));
19
19
 
20
- var _DeprecatedButton = _interopRequireDefault(require("../DeprecatedButton"));
21
-
22
20
  var _Touchable = _interopRequireDefault(require("../Touchable"));
23
21
 
24
22
  var _DatePickerComponent = _interopRequireDefault(require("./DatePickerComponent"));
@@ -370,18 +368,13 @@ const DatePicker = _ref => {
370
368
  paddingLeft: insets.left,
371
369
  paddingRight: insets.right
372
370
  }]
373
- }, _reactNative.Platform.OS === "ios" && /*#__PURE__*/React.createElement(_DeprecatedButton.default, {
374
- Icon: Icon,
375
- type: "text",
376
- onPress: toggleVisibility,
377
- style: styles.closeButton
378
- }, "Close"), /*#__PURE__*/React.createElement(_DatePickerComponent.default, {
371
+ }, /*#__PURE__*/React.createElement(_DatePickerComponent.default, {
379
372
  value: getValidDate(),
380
373
  mode: mode,
381
374
  isVisible: pickerVisible,
382
375
  toggleVisibility: toggleVisibility,
383
376
  onChange: (_event, data) => {
384
- _reactNative.Platform.OS === "ios" ? null : toggleVisibility();
377
+ toggleVisibility();
385
378
  setValue(data);
386
379
  onDateChange(data);
387
380
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["DatePicker.tsx"],"names":["AnimatedText","Animated","createAnimatedComponent","Text","FOCUS_ANIMATION_DURATION","BLUR_ANIMATION_DURATION","ICON_SIZE","MONTHS","DatePicker","Icon","style","theme","colors","typography","roundness","disabledOpacity","date","onDateChange","defaultValue","disabled","mode","format","type","leftIconName","rightIconName","leftIconMode","label","placeholder","props","value","setValue","React","useState","useEffect","pickerVisible","setPickerVisible","labeled","Value","placeholder1","setPlaceholder1","focused","setFocused","labelLayout","setLabelLayout","measured","width","getValidDate","Date","getMonth","formatDate","newDate","toLocaleTimeString","toLocaleString","getDate","getFullYear","toggleVisibility","_handleBlur","_handleFocus","insets","_hidePlaceholder","timing","toValue","duration","useNativeDriver","start","_showPlaceholder","setTimeout","clearTimeout","MINIMIZED_LABEL_Y_OFFSET","caption","lineHeight","OUTLINE_MINIMIZED_LABEL_Y_OFFSET","MAXIMIZED_LABEL_FONT_SIZE","subtitle1","fontSize","MINIMIZED_LABEL_FONT_SIZE","hasActiveOutline","inputTextColor","activeColor","underlineColor","borderColor","placeholderColor","containerStyle","backgroundColor","inputStyle","strong","light","divider","primary","background","paddingVertical","color","paddingLeft","paddingRight","height","borderTopLeftRadius","borderTopRightRadius","paddingBottom","marginTop","borderRadius","borderWidth","paddingTop","opacity","paddingHorizontal","marginLeft","leftIconColor","leftIconProps","size","name","leftIconStyle","position","labelStyle","top","left","transform","translateY","interpolate","inputRange","outputRange","scale","translateX","inputStyles","styles","input","marginHorizontal","container","underline","scaleY","StyleSheet","absoluteFill","e","nativeEvent","layout","right","picker","pickerContainer","bottom","Platform","OS","closeButton","_event","data","create","alignSelf","flexDirection","justifyContent","flexGrow","textAlignVertical","margin","textAlign","I18nManager","isRTL"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n Animated,\n Text,\n StyleSheet,\n StyleProp,\n ViewStyle,\n TextStyle,\n Platform,\n TextInputProps,\n ImageStyle,\n I18nManager,\n LayoutChangeEvent,\n TextInput as NativeTextInput,\n} from \"react-native\";\nimport { useSafeAreaInsets } from \"react-native-safe-area-context\";\n\nimport dateFormat from \"dateformat\";\nimport { withTheme } from \"../../theming\";\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport Touchable from \"../Touchable\";\nimport DateTimePicker from \"./DatePickerComponent\";\n\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nconst AnimatedText = Animated.createAnimatedComponent(Text);\n\nconst FOCUS_ANIMATION_DURATION = 150;\nconst BLUR_ANIMATION_DURATION = 180;\nconst ICON_SIZE = 24;\n\ntype Props = {\n style?: StyleProp<ViewStyle> & { height?: number };\n theme: Theme;\n // initialDate?: string;\n // locale?: string;\n // minuteInterval?: number;\n // timeZoneOffsetInMinutes?: number;\n // error?: boolean;\n // type?: string;\n date?: Date;\n format?: string;\n onDateChange?: (data?: Date) => void;\n defaultValue?: Date;\n disabled?: boolean;\n mode?: \"date\" | \"time\" | \"datetime\";\n type?: \"solid\" | \"underline\";\n label?: string;\n placeholder?: string;\n leftIconName?: string;\n leftIconMode?: \"outset\" | \"inset\";\n rightIconName?: string;\n} & IconSlot &\n TextInputProps;\n\nconst MONTHS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst DatePicker: React.FC<Props> = ({\n Icon,\n style,\n theme: { colors, typography, roundness, disabledOpacity },\n date,\n onDateChange = () => {},\n defaultValue,\n disabled = false,\n mode = \"date\",\n format,\n type = \"underline\",\n leftIconName,\n rightIconName,\n leftIconMode = \"inset\",\n label,\n placeholder,\n ...props\n}) => {\n const [value, setValue] = React.useState<any>(date || defaultValue);\n\n React.useEffect(() => {\n if (defaultValue != null) {\n setValue(defaultValue);\n }\n }, [defaultValue]);\n\n const [pickerVisible, setPickerVisible] = React.useState(false);\n const [labeled] = React.useState<Animated.Value>(\n new Animated.Value(date ? 0 : 1)\n );\n const [placeholder1, setPlaceholder1] = React.useState(\"\");\n const [focused, setFocused] = React.useState<boolean>(false);\n const [labelLayout, setLabelLayout] = React.useState<{\n measured: Boolean;\n width: number;\n }>({ measured: false, width: 0 });\n\n const getValidDate = (): Date => {\n if (!value) {\n return new Date();\n }\n return typeof value?.getMonth === \"function\" ? value : new Date();\n };\n\n const formatDate = (): string => {\n if (!value) return \"\";\n let newDate = getValidDate();\n\n if (format) return dateFormat(newDate, format);\n\n if (mode === \"time\") {\n return `${newDate.toLocaleTimeString()}`;\n }\n\n if (mode === \"datetime\") {\n return `${newDate.toLocaleString()}`;\n }\n\n return `${\n MONTHS[newDate.getMonth()]\n } ${newDate.getDate()}, ${newDate.getFullYear()}`;\n };\n\n const toggleVisibility = async () => {\n setPickerVisible(!pickerVisible);\n focused ? _handleBlur() : _handleFocus();\n };\n const insets = useSafeAreaInsets();\n\n // const _restoreLabel = () =>\n // Animated.timing(labeled, {\n // toValue: 1,\n // duration: FOCUS_ANIMATION_DURATION,\n // useNativeDriver: true,\n // }).start();\n\n // const _minmizeLabel = () =>\n // Animated.timing(labeled, {\n // toValue: 0,\n // duration: BLUR_ANIMATION_DURATION,\n // useNativeDriver: true,\n // }).start();\n\n // const _showPlaceholder = () =>\n // setTimeout(() => setPlaceholder1(placeholder || \"\"), 50);\n\n const _hidePlaceholder = () => {\n setPlaceholder1(\"\");\n };\n\n React.useEffect(() => {\n setValue(date);\n }, [date]);\n\n React.useEffect(() => {\n if (value || focused || placeholder1) {\n // _minmizeLabel();\n Animated.timing(labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n } else {\n // _restoreLabel();\n Animated.timing(labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n }\n }, [value, focused, placeholder1, labeled]);\n\n React.useEffect(() => {\n const _showPlaceholder = () =>\n setTimeout(() => setPlaceholder1(placeholder || \"\"), 50);\n if (focused || !label) {\n _showPlaceholder();\n } else {\n _hidePlaceholder();\n }\n return () => {\n clearTimeout(_showPlaceholder());\n };\n }, [focused, label, placeholder]);\n\n const _handleFocus = () => {\n if (disabled) {\n return;\n }\n\n setFocused(true);\n };\n\n const _handleBlur = () => {\n if (disabled) {\n return;\n }\n setFocused(false);\n };\n\n const MINIMIZED_LABEL_Y_OFFSET = -(typography.caption.lineHeight + 4);\n const OUTLINE_MINIMIZED_LABEL_Y_OFFSET = -(16 * 0.5 + 4);\n const MAXIMIZED_LABEL_FONT_SIZE = typography.subtitle1.fontSize;\n const MINIMIZED_LABEL_FONT_SIZE = typography.caption.fontSize;\n\n const hasActiveOutline = focused;\n\n let inputTextColor,\n activeColor,\n underlineColor,\n borderColor,\n placeholderColor,\n containerStyle: StyleProp<ViewStyle>,\n backgroundColor,\n inputStyle: StyleProp<TextStyle>;\n\n inputTextColor = colors.strong;\n if (disabled) {\n activeColor = colors.light;\n placeholderColor = colors.light;\n borderColor = \"transparent\";\n underlineColor = \"transparent\";\n backgroundColor = colors.divider;\n } else {\n activeColor = colors.primary;\n placeholderColor = borderColor = colors.light;\n underlineColor = colors.light;\n backgroundColor = colors.background;\n }\n\n const { lineHeight, ...subtitle1 } = typography.subtitle1;\n\n inputStyle = {\n paddingVertical: 0,\n color: inputTextColor,\n paddingLeft:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n paddingRight: rightIconName ? ICON_SIZE + 16 + 4 : 12,\n ...subtitle1,\n height: lineHeight,\n };\n\n if (type === \"underline\") {\n containerStyle = {\n borderTopLeftRadius: roundness,\n borderTopRightRadius: roundness,\n paddingBottom: 12,\n marginTop: 16,\n };\n } else {\n containerStyle = {\n borderRadius: roundness,\n borderColor: hasActiveOutline ? activeColor : borderColor,\n borderWidth: 1,\n paddingTop: labeled ? 16 * 1.5 : 16,\n paddingBottom: labeled ? 16 * 0.5 : 16,\n opacity: disabled ? disabledOpacity : 1,\n backgroundColor,\n };\n\n inputStyle.paddingHorizontal = 12;\n }\n\n if (leftIconName && leftIconMode === \"outset\") {\n containerStyle.marginLeft = ICON_SIZE + 8;\n }\n\n let leftIconColor;\n if (focused) {\n leftIconColor = colors.primary;\n } else {\n leftIconColor = colors.light;\n }\n\n const leftIconProps = {\n size: 24,\n color: leftIconColor,\n name: leftIconName || \"\",\n };\n\n const leftIconStyle: ImageStyle = {\n position: \"absolute\",\n marginTop:\n type === \"solid\"\n ? leftIconMode === \"inset\"\n ? MINIMIZED_LABEL_FONT_SIZE + 4\n : 16\n : leftIconMode === \"outset\"\n ? 16\n : 0,\n };\n\n const labelStyle = {\n ...typography.subtitle1,\n top: type === \"solid\" ? 16 : 0,\n left:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n transform: [\n {\n // Move label to top\n translateY: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n type === \"solid\"\n ? OUTLINE_MINIMIZED_LABEL_Y_OFFSET\n : MINIMIZED_LABEL_Y_OFFSET,\n 0,\n ],\n }),\n },\n {\n // Make label smaller\n scale: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE,\n 1,\n ],\n }),\n },\n {\n // Offset label scale since RN doesn't support transform origin\n translateX: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n -(1 - MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE) *\n (labelLayout.width / 2),\n 0,\n ],\n }),\n },\n ],\n };\n\n const inputStyles = [\n styles.input,\n inputStyle,\n type === \"solid\" ? { marginHorizontal: 12 } : {},\n ];\n\n // const render = (props) => <NativeTextInput {...props} />;\n\n return (\n <View style={[styles.container, style]}>\n <Touchable disabled={disabled} onPress={toggleVisibility}>\n <View pointerEvents=\"none\">\n <View style={[styles.container, style]}>\n {leftIconName && leftIconMode === \"outset\" ? (\n <Icon {...leftIconProps} style={leftIconStyle} />\n ) : null}\n <View\n style={[containerStyle, style ? { height: style.height } : {}]}\n >\n {type === \"underline\" ? (\n // When type === 'flat', render an underline\n <Animated.View\n style={[\n styles.underline,\n {\n backgroundColor: focused ? activeColor : underlineColor,\n // Underlines is thinner when input is not focused\n transform: [{ scaleY: focused ? 1 : 0.5 }],\n },\n ]}\n />\n ) : null}\n\n {label ? (\n // Position colored placeholder and gray placeholder on top of each other and crossfade them\n // This gives the effect of animating the color, but allows us to use native driver\n <View\n pointerEvents=\"none\"\n style={[\n StyleSheet.absoluteFill,\n {\n opacity:\n // Hide the label in minimized state until we measure its width\n date || focused ? (labelLayout.measured ? 1 : 0) : 1,\n },\n ]}\n >\n <AnimatedText\n onLayout={(e: LayoutChangeEvent) =>\n setLabelLayout({\n width: e.nativeEvent.layout.width,\n measured: true,\n })\n }\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: colors.light,\n opacity: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0],\n }),\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n <AnimatedText\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: placeholderColor,\n opacity: hasActiveOutline ? labeled : 1,\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n </View>\n ) : null}\n\n {leftIconName && leftIconMode === \"inset\" ? (\n <Icon\n {...leftIconProps}\n style={{\n ...leftIconStyle,\n marginLeft: type === \"solid\" ? 16 : 0,\n }}\n />\n ) : null}\n\n <NativeTextInput\n value={formatDate()}\n placeholder={label ? placeholder1 : placeholder}\n editable={!disabled}\n placeholderTextColor={placeholderColor}\n selectionColor={activeColor}\n onFocus={_handleFocus}\n onBlur={_handleBlur}\n underlineColorAndroid={\"transparent\"}\n style={inputStyles}\n {...props}\n />\n </View>\n {rightIconName ? (\n <Icon\n name={rightIconName}\n size={ICON_SIZE}\n color={colors.light}\n style={{\n position: \"absolute\",\n right: 16,\n marginTop:\n type === \"solid\" ? MINIMIZED_LABEL_FONT_SIZE + 4 : 16,\n }}\n />\n ) : null}\n </View>\n </View>\n </Touchable>\n {pickerVisible && (\n <Portal>\n <View\n style={[\n styles.picker,\n {\n backgroundColor: colors.divider,\n },\n ]}\n >\n <View\n style={[\n styles.pickerContainer,\n {\n paddingTop: insets.top,\n paddingBottom: insets.bottom,\n paddingLeft: insets.left,\n paddingRight: insets.right,\n },\n ]}\n >\n {Platform.OS === \"ios\" && (\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={toggleVisibility}\n style={styles.closeButton}\n >\n Close\n </Button>\n )}\n\n <DateTimePicker\n value={getValidDate()}\n mode={mode}\n isVisible={pickerVisible}\n toggleVisibility={toggleVisibility}\n onChange={(_event: any, data: any) => {\n Platform.OS === \"ios\" ? null : toggleVisibility();\n setValue(data);\n onDateChange(data);\n }}\n />\n </View>\n </View>\n </Portal>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n picker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n underline: {\n position: \"absolute\",\n left: 0,\n right: 0,\n bottom: 0,\n height: 2,\n },\n input: {\n flexGrow: 1,\n justifyContent: \"center\",\n textAlignVertical: \"center\",\n margin: 0,\n textAlign: I18nManager.isRTL ? \"right\" : \"left\",\n },\n placeholder: {\n position: \"absolute\",\n left: 0,\n },\n pickerContainer: { flexDirection: \"column\", width: \"100%\" },\n closeButton: {\n alignSelf: \"flex-end\",\n },\n});\n\nexport default withTheme(DatePicker);\n"]}
1
+ {"version":3,"sources":["DatePicker.tsx"],"names":["AnimatedText","Animated","createAnimatedComponent","Text","FOCUS_ANIMATION_DURATION","BLUR_ANIMATION_DURATION","ICON_SIZE","MONTHS","DatePicker","Icon","style","theme","colors","typography","roundness","disabledOpacity","date","onDateChange","defaultValue","disabled","mode","format","type","leftIconName","rightIconName","leftIconMode","label","placeholder","props","value","setValue","React","useState","useEffect","pickerVisible","setPickerVisible","labeled","Value","placeholder1","setPlaceholder1","focused","setFocused","labelLayout","setLabelLayout","measured","width","getValidDate","Date","getMonth","formatDate","newDate","toLocaleTimeString","toLocaleString","getDate","getFullYear","toggleVisibility","_handleBlur","_handleFocus","insets","_hidePlaceholder","timing","toValue","duration","useNativeDriver","start","_showPlaceholder","setTimeout","clearTimeout","MINIMIZED_LABEL_Y_OFFSET","caption","lineHeight","OUTLINE_MINIMIZED_LABEL_Y_OFFSET","MAXIMIZED_LABEL_FONT_SIZE","subtitle1","fontSize","MINIMIZED_LABEL_FONT_SIZE","hasActiveOutline","inputTextColor","activeColor","underlineColor","borderColor","placeholderColor","containerStyle","backgroundColor","inputStyle","strong","light","divider","primary","background","paddingVertical","color","paddingLeft","paddingRight","height","borderTopLeftRadius","borderTopRightRadius","paddingBottom","marginTop","borderRadius","borderWidth","paddingTop","opacity","paddingHorizontal","marginLeft","leftIconColor","leftIconProps","size","name","leftIconStyle","position","labelStyle","top","left","transform","translateY","interpolate","inputRange","outputRange","scale","translateX","inputStyles","styles","input","marginHorizontal","container","underline","scaleY","StyleSheet","absoluteFill","e","nativeEvent","layout","right","picker","pickerContainer","bottom","_event","data","create","alignSelf","flexDirection","justifyContent","flexGrow","textAlignVertical","margin","textAlign","I18nManager","isRTL","closeButton"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n Animated,\n Text,\n StyleSheet,\n StyleProp,\n ViewStyle,\n TextStyle,\n TextInputProps,\n ImageStyle,\n I18nManager,\n LayoutChangeEvent,\n TextInput as NativeTextInput,\n} from \"react-native\";\nimport { useSafeAreaInsets } from \"react-native-safe-area-context\";\n\nimport dateFormat from \"dateformat\";\nimport { withTheme } from \"../../theming\";\nimport Portal from \"../Portal/Portal\";\nimport Touchable from \"../Touchable\";\nimport DateTimePicker from \"./DatePickerComponent\";\n\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nconst AnimatedText = Animated.createAnimatedComponent(Text);\n\nconst FOCUS_ANIMATION_DURATION = 150;\nconst BLUR_ANIMATION_DURATION = 180;\nconst ICON_SIZE = 24;\n\ntype Props = {\n style?: StyleProp<ViewStyle> & { height?: number };\n theme: Theme;\n // initialDate?: string;\n // locale?: string;\n // minuteInterval?: number;\n // timeZoneOffsetInMinutes?: number;\n // error?: boolean;\n // type?: string;\n date?: Date;\n format?: string;\n onDateChange?: (data?: Date) => void;\n defaultValue?: Date;\n disabled?: boolean;\n mode?: \"date\" | \"time\" | \"datetime\";\n type?: \"solid\" | \"underline\";\n label?: string;\n placeholder?: string;\n leftIconName?: string;\n leftIconMode?: \"outset\" | \"inset\";\n rightIconName?: string;\n} & IconSlot &\n TextInputProps;\n\nconst MONTHS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst DatePicker: React.FC<Props> = ({\n Icon,\n style,\n theme: { colors, typography, roundness, disabledOpacity },\n date,\n onDateChange = () => {},\n defaultValue,\n disabled = false,\n mode = \"date\",\n format,\n type = \"underline\",\n leftIconName,\n rightIconName,\n leftIconMode = \"inset\",\n label,\n placeholder,\n ...props\n}) => {\n const [value, setValue] = React.useState<any>(date || defaultValue);\n\n React.useEffect(() => {\n if (defaultValue != null) {\n setValue(defaultValue);\n }\n }, [defaultValue]);\n\n const [pickerVisible, setPickerVisible] = React.useState(false);\n const [labeled] = React.useState<Animated.Value>(\n new Animated.Value(date ? 0 : 1)\n );\n const [placeholder1, setPlaceholder1] = React.useState(\"\");\n const [focused, setFocused] = React.useState<boolean>(false);\n const [labelLayout, setLabelLayout] = React.useState<{\n measured: Boolean;\n width: number;\n }>({ measured: false, width: 0 });\n\n const getValidDate = (): Date => {\n if (!value) {\n return new Date();\n }\n return typeof value?.getMonth === \"function\" ? value : new Date();\n };\n\n const formatDate = (): string => {\n if (!value) return \"\";\n let newDate = getValidDate();\n\n if (format) return dateFormat(newDate, format);\n\n if (mode === \"time\") {\n return `${newDate.toLocaleTimeString()}`;\n }\n\n if (mode === \"datetime\") {\n return `${newDate.toLocaleString()}`;\n }\n\n return `${\n MONTHS[newDate.getMonth()]\n } ${newDate.getDate()}, ${newDate.getFullYear()}`;\n };\n\n const toggleVisibility = async () => {\n setPickerVisible(!pickerVisible);\n focused ? _handleBlur() : _handleFocus();\n };\n const insets = useSafeAreaInsets();\n\n // const _restoreLabel = () =>\n // Animated.timing(labeled, {\n // toValue: 1,\n // duration: FOCUS_ANIMATION_DURATION,\n // useNativeDriver: true,\n // }).start();\n\n // const _minmizeLabel = () =>\n // Animated.timing(labeled, {\n // toValue: 0,\n // duration: BLUR_ANIMATION_DURATION,\n // useNativeDriver: true,\n // }).start();\n\n // const _showPlaceholder = () =>\n // setTimeout(() => setPlaceholder1(placeholder || \"\"), 50);\n\n const _hidePlaceholder = () => {\n setPlaceholder1(\"\");\n };\n\n React.useEffect(() => {\n setValue(date);\n }, [date]);\n\n React.useEffect(() => {\n if (value || focused || placeholder1) {\n // _minmizeLabel();\n Animated.timing(labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n } else {\n // _restoreLabel();\n Animated.timing(labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n }\n }, [value, focused, placeholder1, labeled]);\n\n React.useEffect(() => {\n const _showPlaceholder = () =>\n setTimeout(() => setPlaceholder1(placeholder || \"\"), 50);\n if (focused || !label) {\n _showPlaceholder();\n } else {\n _hidePlaceholder();\n }\n return () => {\n clearTimeout(_showPlaceholder());\n };\n }, [focused, label, placeholder]);\n\n const _handleFocus = () => {\n if (disabled) {\n return;\n }\n\n setFocused(true);\n };\n\n const _handleBlur = () => {\n if (disabled) {\n return;\n }\n setFocused(false);\n };\n\n const MINIMIZED_LABEL_Y_OFFSET = -(typography.caption.lineHeight + 4);\n const OUTLINE_MINIMIZED_LABEL_Y_OFFSET = -(16 * 0.5 + 4);\n const MAXIMIZED_LABEL_FONT_SIZE = typography.subtitle1.fontSize;\n const MINIMIZED_LABEL_FONT_SIZE = typography.caption.fontSize;\n\n const hasActiveOutline = focused;\n\n let inputTextColor,\n activeColor,\n underlineColor,\n borderColor,\n placeholderColor,\n containerStyle: StyleProp<ViewStyle>,\n backgroundColor,\n inputStyle: StyleProp<TextStyle>;\n\n inputTextColor = colors.strong;\n if (disabled) {\n activeColor = colors.light;\n placeholderColor = colors.light;\n borderColor = \"transparent\";\n underlineColor = \"transparent\";\n backgroundColor = colors.divider;\n } else {\n activeColor = colors.primary;\n placeholderColor = borderColor = colors.light;\n underlineColor = colors.light;\n backgroundColor = colors.background;\n }\n\n const { lineHeight, ...subtitle1 } = typography.subtitle1;\n\n inputStyle = {\n paddingVertical: 0,\n color: inputTextColor,\n paddingLeft:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n paddingRight: rightIconName ? ICON_SIZE + 16 + 4 : 12,\n ...subtitle1,\n height: lineHeight,\n };\n\n if (type === \"underline\") {\n containerStyle = {\n borderTopLeftRadius: roundness,\n borderTopRightRadius: roundness,\n paddingBottom: 12,\n marginTop: 16,\n };\n } else {\n containerStyle = {\n borderRadius: roundness,\n borderColor: hasActiveOutline ? activeColor : borderColor,\n borderWidth: 1,\n paddingTop: labeled ? 16 * 1.5 : 16,\n paddingBottom: labeled ? 16 * 0.5 : 16,\n opacity: disabled ? disabledOpacity : 1,\n backgroundColor,\n };\n\n inputStyle.paddingHorizontal = 12;\n }\n\n if (leftIconName && leftIconMode === \"outset\") {\n containerStyle.marginLeft = ICON_SIZE + 8;\n }\n\n let leftIconColor;\n if (focused) {\n leftIconColor = colors.primary;\n } else {\n leftIconColor = colors.light;\n }\n\n const leftIconProps = {\n size: 24,\n color: leftIconColor,\n name: leftIconName || \"\",\n };\n\n const leftIconStyle: ImageStyle = {\n position: \"absolute\",\n marginTop:\n type === \"solid\"\n ? leftIconMode === \"inset\"\n ? MINIMIZED_LABEL_FONT_SIZE + 4\n : 16\n : leftIconMode === \"outset\"\n ? 16\n : 0,\n };\n\n const labelStyle = {\n ...typography.subtitle1,\n top: type === \"solid\" ? 16 : 0,\n left:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n transform: [\n {\n // Move label to top\n translateY: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n type === \"solid\"\n ? OUTLINE_MINIMIZED_LABEL_Y_OFFSET\n : MINIMIZED_LABEL_Y_OFFSET,\n 0,\n ],\n }),\n },\n {\n // Make label smaller\n scale: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE,\n 1,\n ],\n }),\n },\n {\n // Offset label scale since RN doesn't support transform origin\n translateX: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n -(1 - MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE) *\n (labelLayout.width / 2),\n 0,\n ],\n }),\n },\n ],\n };\n\n const inputStyles = [\n styles.input,\n inputStyle,\n type === \"solid\" ? { marginHorizontal: 12 } : {},\n ];\n\n // const render = (props) => <NativeTextInput {...props} />;\n\n return (\n <View style={[styles.container, style]}>\n <Touchable disabled={disabled} onPress={toggleVisibility}>\n <View pointerEvents=\"none\">\n <View style={[styles.container, style]}>\n {leftIconName && leftIconMode === \"outset\" ? (\n <Icon {...leftIconProps} style={leftIconStyle} />\n ) : null}\n <View\n style={[containerStyle, style ? { height: style.height } : {}]}\n >\n {type === \"underline\" ? (\n // When type === 'flat', render an underline\n <Animated.View\n style={[\n styles.underline,\n {\n backgroundColor: focused ? activeColor : underlineColor,\n // Underlines is thinner when input is not focused\n transform: [{ scaleY: focused ? 1 : 0.5 }],\n },\n ]}\n />\n ) : null}\n\n {label ? (\n // Position colored placeholder and gray placeholder on top of each other and crossfade them\n // This gives the effect of animating the color, but allows us to use native driver\n <View\n pointerEvents=\"none\"\n style={[\n StyleSheet.absoluteFill,\n {\n opacity:\n // Hide the label in minimized state until we measure its width\n date || focused ? (labelLayout.measured ? 1 : 0) : 1,\n },\n ]}\n >\n <AnimatedText\n onLayout={(e: LayoutChangeEvent) =>\n setLabelLayout({\n width: e.nativeEvent.layout.width,\n measured: true,\n })\n }\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: colors.light,\n opacity: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0],\n }),\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n <AnimatedText\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: placeholderColor,\n opacity: hasActiveOutline ? labeled : 1,\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n </View>\n ) : null}\n\n {leftIconName && leftIconMode === \"inset\" ? (\n <Icon\n {...leftIconProps}\n style={{\n ...leftIconStyle,\n marginLeft: type === \"solid\" ? 16 : 0,\n }}\n />\n ) : null}\n\n <NativeTextInput\n value={formatDate()}\n placeholder={label ? placeholder1 : placeholder}\n editable={!disabled}\n placeholderTextColor={placeholderColor}\n selectionColor={activeColor}\n onFocus={_handleFocus}\n onBlur={_handleBlur}\n underlineColorAndroid={\"transparent\"}\n style={inputStyles}\n {...props}\n />\n </View>\n {rightIconName ? (\n <Icon\n name={rightIconName}\n size={ICON_SIZE}\n color={colors.light}\n style={{\n position: \"absolute\",\n right: 16,\n marginTop:\n type === \"solid\" ? MINIMIZED_LABEL_FONT_SIZE + 4 : 16,\n }}\n />\n ) : null}\n </View>\n </View>\n </Touchable>\n {pickerVisible && (\n <Portal>\n <View\n style={[\n styles.picker,\n {\n backgroundColor: colors.divider,\n },\n ]}\n >\n <View\n style={[\n styles.pickerContainer,\n {\n paddingTop: insets.top,\n paddingBottom: insets.bottom,\n paddingLeft: insets.left,\n paddingRight: insets.right,\n },\n ]}\n >\n <DateTimePicker\n value={getValidDate()}\n mode={mode}\n isVisible={pickerVisible}\n toggleVisibility={toggleVisibility}\n onChange={(_event: any, data: any) => {\n toggleVisibility();\n setValue(data);\n onDateChange(data);\n }}\n />\n </View>\n </View>\n </Portal>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n picker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n underline: {\n position: \"absolute\",\n left: 0,\n right: 0,\n bottom: 0,\n height: 2,\n },\n input: {\n flexGrow: 1,\n justifyContent: \"center\",\n textAlignVertical: \"center\",\n margin: 0,\n textAlign: I18nManager.isRTL ? \"right\" : \"left\",\n },\n placeholder: {\n position: \"absolute\",\n left: 0,\n },\n pickerContainer: { flexDirection: \"column\", width: \"100%\" },\n closeButton: {\n alignSelf: \"flex-end\",\n },\n});\n\nexport default withTheme(DatePicker);\n"]}