@draftbit/core 44.1.12-e30b54.2 → 44.1.13-2d7ff5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/lib/commonjs/Provider.js.map +1 -1
  2. package/lib/commonjs/components/Accordion/AccordionItem.js +21 -5
  3. package/lib/commonjs/components/Accordion/AccordionItem.js.map +1 -1
  4. package/lib/commonjs/components/Picker/Picker.js +53 -49
  5. package/lib/commonjs/components/Picker/Picker.js.map +1 -1
  6. package/lib/commonjs/components/Picker/PickerComponent.android.js +59 -0
  7. package/lib/commonjs/components/Picker/PickerComponent.android.js.map +1 -0
  8. package/lib/commonjs/components/Picker/PickerComponent.ios.js +92 -0
  9. package/lib/commonjs/components/Picker/PickerComponent.ios.js.map +1 -0
  10. package/lib/commonjs/components/Picker/PickerComponent.web.js +59 -0
  11. package/lib/commonjs/components/Picker/PickerComponent.web.js.map +1 -0
  12. package/lib/commonjs/components/RowHeadlineImageIcon.js.map +1 -1
  13. package/lib/commonjs/components/Typography.js.map +1 -1
  14. package/lib/commonjs/mappings/CircleImage.js.map +1 -1
  15. package/lib/commonjs/mappings/KeyboardAwareScrollView.js +1 -1
  16. package/lib/commonjs/mappings/KeyboardAwareScrollView.js.map +1 -1
  17. package/lib/commonjs/mappings/RowHeadlineImageCaption.js.map +1 -1
  18. package/lib/commonjs/mappings/SafeAreaView.js.map +1 -1
  19. package/lib/commonjs/mappings/TextArea.js.map +1 -1
  20. package/lib/module/components/Justification.js +1 -1
  21. package/lib/module/components/Picker/Picker.js +55 -49
  22. package/lib/module/components/Picker/Picker.js.map +1 -1
  23. package/lib/module/components/Picker/PickerComponent.android.js +41 -0
  24. package/lib/module/components/Picker/PickerComponent.android.js.map +1 -0
  25. package/lib/module/components/Picker/PickerComponent.ios.js +69 -0
  26. package/lib/module/components/Picker/PickerComponent.ios.js.map +1 -0
  27. package/lib/module/components/Picker/PickerComponent.web.js +41 -0
  28. package/lib/module/components/Picker/PickerComponent.web.js.map +1 -0
  29. package/lib/module/constants.js.map +1 -1
  30. package/lib/module/mappings/Banner.js.map +1 -1
  31. package/lib/module/mappings/KeyboardAwareScrollView.js +1 -1
  32. package/lib/module/mappings/KeyboardAwareScrollView.js.map +1 -1
  33. package/lib/typescript/src/components/Picker/PickerComponent.android.d.ts +13 -0
  34. package/lib/typescript/src/components/Picker/PickerComponent.ios.d.ts +13 -0
  35. package/lib/typescript/src/components/Picker/PickerComponent.web.d.ts +13 -0
  36. package/package.json +3 -3
  37. package/src/components/Picker/Picker.js +40 -20
  38. package/src/components/Picker/Picker.tsx +56 -18
  39. package/src/components/Picker/PickerComponent.android.js +20 -0
  40. package/src/components/Picker/PickerComponent.android.tsx +59 -0
  41. package/src/components/Picker/PickerComponent.ios.js +43 -0
  42. package/src/components/Picker/PickerComponent.ios.tsx +89 -0
  43. package/src/components/Picker/PickerComponent.web.js +20 -0
  44. package/src/components/Picker/PickerComponent.web.tsx +59 -0
  45. package/src/mappings/KeyboardAwareScrollView.js +1 -1
  46. package/src/mappings/KeyboardAwareScrollView.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["Provider.tsx"],"names":["Provider","React","Component","render","props","theme","children"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAQe,MAAMA,QAAN,SAAuBC,KAAK,CAACC,SAA7B,CAA8C;AAC3DC,EAAAA,MAAM,GAAG;AACP,wBACE,oBAAC,mBAAD,qBACE,oBAAC,sBAAD;AAAe,MAAA,KAAK,EAAE,KAAKC,KAAL,CAAWC;AAAjC,OACG,KAAKD,KAAL,CAAWE,QADd,CADF,CADF;AAOD;;AAT0D","sourcesContent":["import * as React from \"react\";\nimport { ThemeProvider } from \"./theming\";\nimport PortalHost from \"./components/Portal/PortalHost\";\nimport { Theme } from \"@draftbit/types\";\n\ntype Props = {\n children: React.ReactNode;\n theme?: Theme;\n};\n\nexport default class Provider extends React.Component<Props> {\n render() {\n return (\n <PortalHost>\n <ThemeProvider theme={this.props.theme}>\n {this.props.children}\n </ThemeProvider>\n </PortalHost>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["Provider.js"],"names":["Provider","React","Component","render","createElement","PortalHost","ThemeProvider","theme","props","children"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AACe,MAAMA,QAAN,SAAuBC,KAAK,CAACC,SAA7B,CAAuC;AAClDC,EAAAA,MAAM,GAAG;AACL,wBAAQF,KAAK,CAACG,aAAN,CAAoBC,mBAApB,EAAgC,IAAhC,eACJJ,KAAK,CAACG,aAAN,CAAoBE,sBAApB,EAAmC;AAAEC,MAAAA,KAAK,EAAE,KAAKC,KAAL,CAAWD;AAApB,KAAnC,EAAgE,KAAKC,KAAL,CAAWC,QAA3E,CADI,CAAR;AAEH;;AAJiD","sourcesContent":["import * as React from \"react\";\nimport { ThemeProvider } from \"./theming\";\nimport PortalHost from \"./components/Portal/PortalHost\";\nexport default class Provider extends React.Component {\n render() {\n return (React.createElement(PortalHost, null,\n React.createElement(ThemeProvider, { theme: this.props.theme }, this.props.children)));\n }\n}\n"]}
@@ -21,8 +21,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
21
21
 
22
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
23
 
24
- 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); }
25
-
26
24
  const AccordionItem = _ref => {
27
25
  let {
28
26
  Icon,
@@ -37,9 +35,10 @@ const AccordionItem = _ref => {
37
35
  textStyles,
38
36
  viewStyles
39
37
  } = (0, _utilities.extractStyles)(style);
40
- return /*#__PURE__*/React.createElement(_reactNative.Pressable, _extends({
41
- style: [styles.container, viewStyles]
42
- }, rest), /*#__PURE__*/React.createElement(_reactNative.View, {
38
+ return /*#__PURE__*/React.createElement(_reactNative.Pressable, {
39
+ style: [styles.container, viewStyles],
40
+ ...rest
41
+ }, /*#__PURE__*/React.createElement(_reactNative.View, {
43
42
  style: styles.row
44
43
  }, icon ? /*#__PURE__*/React.createElement(Icon, {
45
44
  name: icon,
@@ -74,5 +73,22 @@ const styles = _reactNative.StyleSheet.create({
74
73
 
75
74
  var _default = (0, _theming.withTheme)(AccordionItem);
76
75
 
76
+ exports.default = _default;
77
+ //# sourceMappingURL=AccordionItem.js.map flexDirection: "row",
78
+ alignItems: "center",
79
+ paddingLeft: 8
80
+ },
81
+ item: {
82
+ marginVertical: 6,
83
+ paddingLeft: 8
84
+ },
85
+ content: {
86
+ flex: 1,
87
+ justifyContent: "center"
88
+ }
89
+ });
90
+
91
+ var _default = (0, _theming.withTheme)(AccordionItem);
92
+
77
93
  exports.default = _default;
78
94
  //# sourceMappingURL=AccordionItem.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["AccordionItem.tsx"],"names":["AccordionItem","Icon","icon","label","style","iconColor","theme","rest","textStyles","viewStyles","styles","container","row","colors","primary","item","content","StyleSheet","create","padding","flexDirection","alignItems","paddingLeft","marginVertical","flex","justifyContent"],"mappings":";;;;;;;AAAA;;AACA;;AAQA;;AAEA;;AACA;;;;;;;;;;AAWA,MAAMA,aAAa,GAAG,QAQT;AAAA,MARU;AACrBC,IAAAA,IADqB;AAErBC,IAAAA,IAFqB;AAGrBC,IAAAA,KAHqB;AAIrBC,IAAAA,KAJqB;AAKrBC,IAAAA,SALqB;AAMrBC,IAAAA,KANqB;AAOrB,OAAGC;AAPkB,GAQV;AACX,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,MAA6B,8BAAcL,KAAd,CAAnC;AAEA,sBACE,oBAAC,sBAAD;AAAW,IAAA,KAAK,EAAE,CAACM,MAAM,CAACC,SAAR,EAAmBF,UAAnB;AAAlB,KAAsDF,IAAtD,gBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEG,MAAM,CAACE;AAApB,KACGV,IAAI,gBACH,oBAAC,IAAD;AACE,IAAA,IAAI,EAAEA,IADR;AAEE,IAAA,IAAI,EAAE,EAFR;AAGE,IAAA,KAAK,EAAEG,SAAS,IAAIC,KAAK,CAACO,MAAN,CAAaC;AAHnC,IADG,GAMD,IAPN,eAQE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACJ,MAAM,CAACK,IAAR,EAAcL,MAAM,CAACM,OAArB;AAAb,kBACE,oBAAC,aAAD;AAAM,IAAA,UAAU,EAAE,KAAlB;AAAyB,IAAA,KAAK,EAAER;AAAhC,KACGL,KADH,CADF,CARF,CADF,CADF;AAkBD,CA7BD;;AA+BA,MAAMO,MAAM,GAAGO,wBAAWC,MAAX,CAAkB;AAC/BP,EAAAA,SAAS,EAAE;AACTQ,IAAAA,OAAO,EAAE;AADA,GADoB;AAI/BP,EAAAA,GAAG,EAAE;AACHQ,IAAAA,aAAa,EAAE,KADZ;AAEHC,IAAAA,UAAU,EAAE,QAFT;AAGHC,IAAAA,WAAW,EAAE;AAHV,GAJ0B;AAS/BP,EAAAA,IAAI,EAAE;AACJQ,IAAAA,cAAc,EAAE,CADZ;AAEJD,IAAAA,WAAW,EAAE;AAFT,GATyB;AAa/BN,EAAAA,OAAO,EAAE;AACPQ,IAAAA,IAAI,EAAE,CADC;AAEPC,IAAAA,cAAc,EAAE;AAFT;AAbsB,CAAlB,CAAf;;eAmBe,wBAAUzB,aAAV,C","sourcesContent":["import * as React from \"react\";\nimport {\n Pressable,\n StyleSheet,\n View,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\n\nimport Text from \"../Text\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { extractStyles } from \"../../utilities\";\nimport { withTheme } from \"../../theming\";\nimport type { Theme } from \"../../styles/DefaultTheme\";\n\ntype Props = {\n icon?: string;\n label: string;\n iconColor?: string;\n style?: StyleProp<ViewStyle>;\n theme: Theme;\n} & IconSlot;\n\nconst AccordionItem = ({\n Icon,\n icon,\n label,\n style,\n iconColor,\n theme,\n ...rest\n}: Props) => {\n const { textStyles, viewStyles } = extractStyles(style);\n\n return (\n <Pressable style={[styles.container, viewStyles]} {...rest}>\n <View style={styles.row}>\n {icon ? (\n <Icon\n name={icon}\n size={24}\n color={iconColor || theme.colors.primary}\n />\n ) : null}\n <View style={[styles.item, styles.content]}>\n <Text selectable={false} style={textStyles}>\n {label}\n </Text>\n </View>\n </View>\n </Pressable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n padding: 8,\n },\n row: {\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingLeft: 8,\n },\n item: {\n marginVertical: 6,\n paddingLeft: 8,\n },\n content: {\n flex: 1,\n justifyContent: \"center\",\n },\n});\n\nexport default withTheme(AccordionItem);\n"]}
1
+ {"version":3,"sources":["AccordionItem.js"],"names":["AccordionItem","Icon","icon","label","style","iconColor","theme","rest","textStyles","viewStyles","React","createElement","Pressable","styles","container","View","row","name","size","color","colors","primary","item","content","Text","selectable","StyleSheet","create","padding","flexDirection","alignItems","paddingLeft","marginVertical","flex","justifyContent"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AACA,MAAMA,aAAa,GAAG,QAA6D;AAAA,MAA5D;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcC,IAAAA,KAAd;AAAqBC,IAAAA,KAArB;AAA4BC,IAAAA,SAA5B;AAAuCC,IAAAA,KAAvC;AAA8C,OAAGC;AAAjD,GAA4D;AAC/E,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,MAA6B,8BAAcL,KAAd,CAAnC;AACA,sBAAQM,KAAK,CAACC,aAAN,CAAoBC,sBAApB,EAA+B;AAAER,IAAAA,KAAK,EAAE,CAACS,MAAM,CAACC,SAAR,EAAmBL,UAAnB,CAAT;AAAyC,OAAGF;AAA5C,GAA/B,eACJG,KAAK,CAACC,aAAN,CAAoBI,iBAApB,EAA0B;AAAEX,IAAAA,KAAK,EAAES,MAAM,CAACG;AAAhB,GAA1B,EACId,IAAI,gBAAIQ,KAAK,CAACC,aAAN,CAAoBV,IAApB,EAA0B;AAAEgB,IAAAA,IAAI,EAAEf,IAAR;AAAcgB,IAAAA,IAAI,EAAE,EAApB;AAAwBC,IAAAA,KAAK,EAAEd,SAAS,IAAIC,KAAK,CAACc,MAAN,CAAaC;AAAzD,GAA1B,CAAJ,GAAqG,IAD7G,eAEIX,KAAK,CAACC,aAAN,CAAoBI,iBAApB,EAA0B;AAAEX,IAAAA,KAAK,EAAE,CAACS,MAAM,CAACS,IAAR,EAAcT,MAAM,CAACU,OAArB;AAAT,GAA1B,eACIb,KAAK,CAACC,aAAN,CAAoBa,aAApB,EAA0B;AAAEC,IAAAA,UAAU,EAAE,KAAd;AAAqBrB,IAAAA,KAAK,EAAEI;AAA5B,GAA1B,EAAoEL,KAApE,CADJ,CAFJ,CADI,CAAR;AAKH,CAPD;;AAQA,MAAMU,MAAM,GAAGa,wBAAWC,MAAX,CAAkB;AAC7Bb,EAAAA,SAAS,EAAE;AACPc,IAAAA,OAAO,EAAE;AADF,GADkB;AAI7BZ,EAAAA,GAAG,EAAE;AACDa,IAAAA,aAAa,EAAE,KADd;AAEDC,IAAAA,UAAU,EAAE,QAFX;AAGDC,IAAAA,WAAW,EAAE;AAHZ,GAJwB;AAS7BT,EAAAA,IAAI,EAAE;AACFU,IAAAA,cAAc,EAAE,CADd;AAEFD,IAAAA,WAAW,EAAE;AAFX,GATuB;AAa7BR,EAAAA,OAAO,EAAE;AACLU,IAAAA,IAAI,EAAE,CADD;AAELC,IAAAA,cAAc,EAAE;AAFX;AAboB,CAAlB,CAAf;;eAkBe,wBAAUlC,aAAV,C","sourcesContent":["import * as React from \"react\";\nimport { Pressable, StyleSheet, View, } from \"react-native\";\nimport Text from \"../Text\";\nimport { extractStyles } from \"../../utilities\";\nimport { withTheme } from \"../../theming\";\nconst AccordionItem = ({ Icon, icon, label, style, iconColor, theme, ...rest }) => {\n const { textStyles, viewStyles } = extractStyles(style);\n return (React.createElement(Pressable, { style: [styles.container, viewStyles], ...rest },\n React.createElement(View, { style: styles.row },\n icon ? (React.createElement(Icon, { name: icon, size: 24, color: iconColor || theme.colors.primary })) : null,\n React.createElement(View, { style: [styles.item, styles.content] },\n React.createElement(Text, { selectable: false, style: textStyles }, label)))));\n};\nconst styles = StyleSheet.create({\n container: {\n padding: 8,\n },\n row: {\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingLeft: 8,\n },\n item: {\n marginVertical: 6,\n paddingLeft: 8,\n },\n content: {\n flex: 1,\n justifyContent: \"center\",\n },\n});\nexport default withTheme(AccordionItem);\n"]}
@@ -11,26 +11,25 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _lodash = require("lodash");
13
13
 
14
- var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
15
-
16
- var _picker = require("@react-native-picker/picker");
17
-
18
14
  var _theming = require("../../theming");
19
15
 
20
- var _Portal = _interopRequireDefault(require("../Portal/Portal"));
21
-
22
- var _DeprecatedButton = _interopRequireDefault(require("../DeprecatedButton"));
23
-
24
16
  var _Touchable = _interopRequireDefault(require("../Touchable"));
25
17
 
26
18
  var _utilities = require("../../utilities");
27
19
 
20
+ var _PickerComponent = require("./PickerComponent");
21
+
28
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
23
 
30
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); }
31
25
 
32
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; }
33
27
 
28
+ // import { SafeAreaView } from "react-native-safe-area-context";
29
+ // import { Picker as NativePicker } from "@react-native-picker/picker";
30
+ // import Portal from "../Portal/Portal";
31
+ // import Button from "../DeprecatedButton";
32
+ // @ts-expect-error
34
33
  function normalizeOptions(options) {
35
34
  if (options.length === 0) {
36
35
  return [];
@@ -55,6 +54,12 @@ function normalizeOptions(options) {
55
54
  throw new Error('Picker options must be either an array of strings or array of { "label": string; "value": string; } objects.');
56
55
  }
57
56
 
57
+ const {
58
+ width: deviceWidth,
59
+ height: deviceHeight
60
+ } = _reactNative.Dimensions.get("screen"); // const isIos = Platform.OS === "ios";
61
+
62
+
58
63
  const unstyledColor = "rgba(165, 173, 183, 1)";
59
64
  const disabledColor = "rgb(240, 240, 240)";
60
65
  const errorColor = "rgba(255, 69, 100, 1)";
@@ -72,7 +77,7 @@ const Picker = _ref => {
72
77
  placeholder,
73
78
  value,
74
79
  disabled = false,
75
- theme,
80
+ // theme,
76
81
  assistiveText,
77
82
  label,
78
83
  iconColor = unstyledColor,
@@ -83,8 +88,14 @@ const Picker = _ref => {
83
88
  rightIconName,
84
89
  type = "solid"
85
90
  } = _ref;
91
+ const androidPickerRef = React.useRef(undefined);
86
92
  const [internalValue, setInternalValue] = React.useState(value || defaultValue);
87
- const [pickerVisible, togglePickerVisible] = React.useReducer(state => !state, false);
93
+ const [pickerVisible, setPickerVisible] = React.useState(false);
94
+
95
+ const togglePickerVisible = () => {
96
+ setPickerVisible(!pickerVisible);
97
+ };
98
+
88
99
  React.useEffect(() => {
89
100
  if (value != null) {
90
101
  setInternalValue(value);
@@ -95,14 +106,19 @@ const Picker = _ref => {
95
106
  setInternalValue(defaultValue);
96
107
  }
97
108
  }, [defaultValue]);
109
+ React.useEffect(() => {
110
+ if (pickerVisible && androidPickerRef.current) {
111
+ var _androidPickerRef$cur;
112
+
113
+ androidPickerRef === null || androidPickerRef === void 0 ? void 0 : (_androidPickerRef$cur = androidPickerRef.current) === null || _androidPickerRef$cur === void 0 ? void 0 : _androidPickerRef$cur.focus();
114
+ }
115
+ }, [pickerVisible, androidPickerRef]);
98
116
  const normalizedOptions = normalizeOptions(options);
99
117
  const pickerOptions = placeholder ? [{
100
118
  value: placeholder,
101
119
  label: placeholder
102
- }, ...normalizedOptions] : normalizedOptions;
103
- const {
104
- colors
105
- } = theme;
120
+ }, ...normalizedOptions] : normalizedOptions; // const { colors } = theme;
121
+
106
122
  const {
107
123
  viewStyles,
108
124
  textStyles
@@ -139,7 +155,6 @@ const Picker = _ref => {
139
155
  height: 60,
140
156
  ...extractedMarginStyles
141
157
  };
142
- const platform = _reactNative.Platform.OS;
143
158
  const stylesWithoutBordersAndMargins = (0, _lodash.omit)(viewStyles, [..._utilities.borderStyleNames, ..._utilities.marginStyleNames, ...additionalBorderStyles, ...additionalMarginStyles]);
144
159
  const selectedLabel = internalValue && ((_find$label = (_find = pickerOptions.find(option => option.value === internalValue)) === null || _find === void 0 ? void 0 : _find.label) !== null && _find$label !== void 0 ? _find$label : internalValue);
145
160
  const labelText = label ? /*#__PURE__*/React.createElement(_reactNative.Text, {
@@ -232,35 +247,14 @@ const Picker = _ref => {
232
247
  style: styles.primaryTextContainer
233
248
  }, labelText, /*#__PURE__*/React.createElement(_reactNative.Text, {
234
249
  style: primaryTextStyle
235
- }, String(selectedLabel !== null && selectedLabel !== void 0 ? selectedLabel : placeholder))), rightIcon)), assistiveTextLabel), platform === "ios" && pickerVisible ? /*#__PURE__*/React.createElement(_Portal.default, null, /*#__PURE__*/React.createElement(_reactNative.View, {
236
- style: [styles.iosPicker, {
237
- backgroundColor: colors.divider
238
- }]
239
- }, /*#__PURE__*/React.createElement(_reactNativeSafeAreaContext.SafeAreaView, {
240
- style: styles.iosSafeArea
241
- }, /*#__PURE__*/React.createElement(_DeprecatedButton.default, {
242
- Icon: Icon,
243
- type: "text",
244
- onPress: togglePickerVisible,
245
- style: styles.iosButton
246
- }, "Close"), /*#__PURE__*/React.createElement(_picker.Picker, {
247
- style: styles.iosNativePicker,
248
- selectedValue: internalValue,
249
- onValueChange: handleValueChange
250
- }, pickerOptions.map(option => /*#__PURE__*/React.createElement(_picker.Picker.Item, {
251
- label: option.label,
252
- value: option.value,
253
- key: option.value
254
- })))))) : null, platform !== "ios" ? /*#__PURE__*/React.createElement(_picker.Picker, {
255
- enabled: !disabled,
256
- selectedValue: internalValue,
257
- onValueChange: handleValueChange,
258
- style: styles.nonIosPicker
259
- }, pickerOptions.map(option => /*#__PURE__*/React.createElement(_picker.Picker.Item, {
260
- label: option.label,
261
- value: option.value,
262
- key: option.value
263
- }))) : null)
250
+ }, String(selectedLabel !== null && selectedLabel !== void 0 ? selectedLabel : placeholder))), rightIcon)), assistiveTextLabel), /*#__PURE__*/React.createElement(_reactNative.View, null, pickerVisible ? /*#__PURE__*/React.createElement(_PickerComponent.PickerComponent, {
251
+ Icon,
252
+ androidPickerRef,
253
+ togglePickerVisible,
254
+ pickerOptions,
255
+ internalValue,
256
+ handleValueChange
257
+ }) : null))
264
258
  );
265
259
  };
266
260
 
@@ -271,14 +265,18 @@ exports.default = _default;
271
265
  const styles = _reactNative.StyleSheet.create({
272
266
  marginsContainer: {
273
267
  alignSelf: "stretch",
274
- alignItems: "center"
268
+ alignItems: "center",
269
+ width: "100%",
270
+ maxWidth: deviceWidth
275
271
  },
276
272
  touchableContainer: {
277
273
  flex: 1,
278
274
  height: "100%",
279
275
  width: "100%",
280
276
  alignSelf: "stretch",
281
- alignItems: "center"
277
+ alignItems: "center",
278
+ backgroundColor: "pink" // TODO
279
+
282
280
  },
283
281
  outsetContainer: {
284
282
  flex: 1,
@@ -307,12 +305,16 @@ const styles = _reactNative.StyleSheet.create({
307
305
  left: 0,
308
306
  right: 0,
309
307
  flexDirection: "row",
310
- justifyContent: "center"
308
+ justifyContent: "center",
309
+ width: "100%",
310
+ maxWidth: deviceWidth,
311
+ maxHeight: deviceHeight
311
312
  },
312
313
  iosSafeArea: {
313
314
  backgroundColor: "white",
314
315
  flexDirection: "column",
315
- width: "100%"
316
+ width: "100%",
317
+ maxWidth: deviceWidth
316
318
  },
317
319
  iosButton: {
318
320
  alignSelf: "flex-end"
@@ -327,7 +329,9 @@ const styles = _reactNative.StyleSheet.create({
327
329
  left: 0,
328
330
  right: 0,
329
331
  bottom: 0,
330
- width: "100%"
332
+ width: "100%",
333
+ maxWidth: deviceWidth,
334
+ maxHeight: deviceHeight
331
335
  }
332
336
  });
333
337
  //# sourceMappingURL=Picker.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["Picker.tsx"],"names":["normalizeOptions","options","length","map","option","label","String","value","Error","unstyledColor","disabledColor","errorColor","Picker","error","onValueChange","defaultValue","Icon","style","placeholder","disabled","theme","assistiveText","iconColor","iconSize","leftIconMode","leftIconName","placeholderTextColor","rightIconName","type","internalValue","setInternalValue","React","useState","pickerVisible","togglePickerVisible","useReducer","state","useEffect","normalizedOptions","pickerOptions","colors","viewStyles","textStyles","additionalBorderStyles","additionalMarginStyles","borderStyles","extractedBorderStyles","marginStyles","extractedMarginStyles","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderTopWidth","borderRightWidth","borderLeftWidth","borderBottomWidth","borderColor","borderStyle","backgroundColor","height","platform","Platform","OS","stylesWithoutBordersAndMargins","borderStyleNames","marginStyleNames","selectedLabel","find","labelText","textAlign","color","fontSize","paddingBottom","leftIconOutset","leftIcon","marginRight","marginLeft","rightIcon","calculateLeftPadding","Math","abs","assistiveTextLabel","width","paddingLeft","paddingTop","primaryTextStyle","identity","handleValueChange","newValue","itemIndex","styles","marginsContainer","touchableContainer","outsetContainer","insetContainer","primaryTextContainer","iosPicker","divider","iosSafeArea","iosButton","iosNativePicker","nonIosPicker","StyleSheet","create","alignSelf","alignItems","flex","flexDirection","justifyContent","paddingRight","position","bottom","left","right","opacity","top"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n Text,\n Platform,\n ViewStyle,\n StyleProp,\n} from \"react-native\";\nimport { omit, pickBy, identity, isObject } from \"lodash\";\nimport { SafeAreaView } from \"react-native-safe-area-context\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport { withTheme } from \"../../theming\";\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport Touchable from \"../Touchable\";\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport {\n extractStyles,\n extractBorderAndMarginStyles,\n borderStyleNames,\n marginStyleNames,\n} from \"../../utilities\";\n\nexport interface PickerOption {\n value: string;\n label: string;\n}\n\nexport type PickerProps = {\n error?: any;\n placeholder?: string;\n disabled?: boolean;\n style?: StyleProp<ViewStyle> & { height?: number };\n value?: string;\n options: PickerOption[] | string[];\n onValueChange: (value: string, index: number) => void;\n defaultValue?: string;\n assistiveText?: string;\n label?: string;\n iconColor?: string;\n iconSize?: number;\n leftIconMode?: \"inset\" | \"outset\";\n leftIconName?: string;\n placeholderTextColor?: string;\n rightIconName?: string;\n type?: \"solid\" | \"underline\";\n theme: Theme;\n Icon: IconSlot[\"Icon\"];\n};\n\nfunction normalizeOptions(options: PickerProps[\"options\"]): PickerOption[] {\n if (options.length === 0) {\n return [];\n }\n\n if (typeof options[0] === (\"string\" || \"number\")) {\n return (options as string[]).map((option) => ({\n label: String(option),\n value: String(option),\n }));\n }\n\n if (\n isObject(options[0]) &&\n options[0].value !== null &&\n options[0].label !== null\n ) {\n return (options as PickerOption[]).map((option) => {\n return {\n label: String(option.label),\n value: String(option.value),\n };\n });\n }\n\n throw new Error(\n 'Picker options must be either an array of strings or array of { \"label\": string; \"value\": string; } objects.'\n );\n}\n\nconst unstyledColor = \"rgba(165, 173, 183, 1)\";\nconst disabledColor = \"rgb(240, 240, 240)\";\nconst errorColor = \"rgba(255, 69, 100, 1)\";\n\nconst Picker: React.FC<PickerProps> = ({\n error,\n options = [],\n onValueChange,\n defaultValue,\n Icon,\n style,\n placeholder,\n value,\n disabled = false,\n theme,\n assistiveText,\n label,\n iconColor = unstyledColor,\n iconSize = 24,\n leftIconMode = \"inset\",\n leftIconName,\n placeholderTextColor = unstyledColor,\n rightIconName,\n type = \"solid\",\n}) => {\n const [internalValue, setInternalValue] = React.useState<string | undefined>(\n value || defaultValue\n );\n\n const [pickerVisible, togglePickerVisible] = React.useReducer(\n (state) => !state,\n false\n );\n\n React.useEffect(() => {\n if (value != null) {\n setInternalValue(value);\n }\n }, [value]);\n\n React.useEffect(() => {\n if (defaultValue != null) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n const normalizedOptions = normalizeOptions(options);\n\n const pickerOptions = placeholder\n ? [{ value: placeholder, label: placeholder }, ...normalizedOptions]\n : normalizedOptions;\n\n const { colors } = theme;\n\n const { viewStyles, textStyles } = extractStyles(style);\n\n const additionalBorderStyles = [\"backgroundColor\"];\n\n const additionalMarginStyles = [\n \"bottom\",\n \"height\",\n \"left\",\n \"maxHeight\",\n \"maxWidth\",\n \"minHeight\",\n \"minWidth\",\n \"overflow\",\n \"position\",\n \"right\",\n \"top\",\n \"width\",\n \"zIndex\",\n ];\n\n const {\n borderStyles: extractedBorderStyles,\n marginStyles: extractedMarginStyles,\n } = extractBorderAndMarginStyles(\n viewStyles,\n additionalBorderStyles,\n additionalMarginStyles\n );\n\n const borderStyles = {\n ...{\n ...(type === \"solid\"\n ? {\n borderTopLeftRadius: 5,\n borderTopRightRadius: 5,\n borderBottomRightRadius: 5,\n borderBottomLeftRadius: 5,\n borderTopWidth: 1,\n borderRightWidth: 1,\n borderLeftWidth: 1,\n }\n : {}),\n borderBottomWidth: 1,\n borderColor: unstyledColor,\n borderStyle: \"solid\",\n },\n ...extractedBorderStyles,\n ...(error ? { borderColor: errorColor } : {}),\n ...(disabled\n ? { borderColor: \"transparent\", backgroundColor: disabledColor }\n : {}),\n };\n\n const marginStyles = {\n height: 60,\n ...extractedMarginStyles,\n };\n\n const platform = Platform.OS;\n\n const stylesWithoutBordersAndMargins = omit(viewStyles, [\n ...borderStyleNames,\n ...marginStyleNames,\n ...additionalBorderStyles,\n ...additionalMarginStyles,\n ]);\n\n const selectedLabel =\n internalValue &&\n ((pickerOptions as unknown as PickerOption[]).find(\n (option) => option.value === internalValue\n )?.label ??\n internalValue);\n\n const labelText = label ? (\n <Text\n style={{\n textAlign: textStyles.textAlign,\n color: unstyledColor,\n fontSize: 12,\n paddingBottom: 4,\n }}\n >\n {label}\n </Text>\n ) : null;\n\n const leftIconOutset = leftIconMode === \"outset\";\n\n const leftIcon = leftIconName ? (\n <Icon\n name={leftIconName}\n color={disabled ? unstyledColor : iconColor}\n size={iconSize}\n style={{\n marginRight: 4,\n marginLeft: 4,\n }}\n />\n ) : null;\n\n const rightIcon = rightIconName ? (\n <Icon\n name={rightIconName}\n color={disabled ? unstyledColor : iconColor}\n size={iconSize}\n style={{\n marginRight: -10,\n marginLeft: 8,\n }}\n />\n ) : null;\n\n const textAlign = textStyles?.textAlign;\n\n const calculateLeftPadding = () => {\n if (leftIconOutset) {\n if (textAlign === \"center\") {\n return iconSize - Math.abs(8 - iconSize);\n }\n\n return iconSize + 8;\n }\n\n return 0;\n };\n\n const assistiveTextLabel = assistiveText ? (\n <Text\n style={{\n textAlign,\n width: \"100%\",\n paddingLeft: calculateLeftPadding(),\n color: unstyledColor,\n fontSize: 12,\n paddingTop: 4,\n }}\n >\n {assistiveText}\n </Text>\n ) : null;\n\n const primaryTextStyle = {\n color: unstyledColor,\n fontSize: 14,\n ...pickBy(textStyles, identity),\n ...(placeholder === internalValue ? { color: placeholderTextColor } : {}),\n ...(disabled ? { color: unstyledColor } : {}),\n };\n\n const handleValueChange = (newValue: string, itemIndex: number) => {\n if (!placeholder || itemIndex > 0) {\n onValueChange?.(newValue, itemIndex);\n }\n setInternalValue(newValue);\n };\n\n return (\n /* marginsContainer */\n <View style={[styles.marginsContainer, marginStyles]}>\n {/* touchableContainer */}\n <Touchable\n disabled={disabled}\n onPress={togglePickerVisible}\n style={styles.touchableContainer}\n >\n {/* outsetContainer */}\n <View\n pointerEvents=\"none\"\n style={[\n styles.outsetContainer,\n stylesWithoutBordersAndMargins,\n !leftIconOutset ? (borderStyles as PickerProps[\"style\"]) : {},\n ]}\n >\n {leftIcon}\n\n {/* insetContainer */}\n <View\n style={[\n styles.insetContainer,\n leftIconOutset ? (borderStyles as PickerProps[\"style\"]) : {},\n ]}\n >\n {/* primaryTextContainer */}\n <View style={styles.primaryTextContainer}>\n {labelText}\n\n <Text style={primaryTextStyle}>\n {String(selectedLabel ?? placeholder)}\n </Text>\n </View>\n\n {rightIcon}\n </View>\n </View>\n {assistiveTextLabel}\n </Touchable>\n\n {/* iosPicker */}\n {platform === \"ios\" && pickerVisible ? (\n <Portal>\n <View\n style={[\n styles.iosPicker,\n {\n backgroundColor: colors.divider,\n },\n ]}\n >\n <SafeAreaView style={styles.iosSafeArea}>\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={togglePickerVisible}\n style={styles.iosButton}\n >\n {\"Close\"}\n </Button>\n\n <NativePicker\n style={styles.iosNativePicker}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n </SafeAreaView>\n </View>\n </Portal>\n ) : null}\n\n {/* nonIosPicker */}\n {platform !== \"ios\" ? (\n <NativePicker\n enabled={!disabled}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n style={styles.nonIosPicker}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n ) : null}\n </View>\n );\n};\n\nexport default withTheme(Picker);\n\nconst styles = StyleSheet.create({\n marginsContainer: {\n alignSelf: \"stretch\",\n alignItems: \"center\",\n },\n touchableContainer: {\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n alignSelf: \"stretch\",\n alignItems: \"center\",\n },\n outsetContainer: {\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n },\n insetContainer: {\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingLeft: 12,\n paddingRight: 12,\n },\n primaryTextContainer: {\n flex: 1,\n },\n iosPicker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n iosSafeArea: {\n backgroundColor: \"white\",\n flexDirection: \"column\",\n width: \"100%\",\n },\n iosButton: {\n alignSelf: \"flex-end\",\n },\n iosNativePicker: {\n backgroundColor: \"white\",\n },\n nonIosPicker: {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n },\n});\n"]}
1
+ {"version":3,"sources":["Picker.tsx"],"names":["normalizeOptions","options","length","map","option","label","String","value","Error","width","deviceWidth","height","deviceHeight","Dimensions","get","unstyledColor","disabledColor","errorColor","Picker","error","onValueChange","defaultValue","Icon","style","placeholder","disabled","assistiveText","iconColor","iconSize","leftIconMode","leftIconName","placeholderTextColor","rightIconName","type","androidPickerRef","React","useRef","undefined","internalValue","setInternalValue","useState","pickerVisible","setPickerVisible","togglePickerVisible","useEffect","current","focus","normalizedOptions","pickerOptions","viewStyles","textStyles","additionalBorderStyles","additionalMarginStyles","borderStyles","extractedBorderStyles","marginStyles","extractedMarginStyles","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderTopWidth","borderRightWidth","borderLeftWidth","borderBottomWidth","borderColor","borderStyle","backgroundColor","stylesWithoutBordersAndMargins","borderStyleNames","marginStyleNames","selectedLabel","find","labelText","textAlign","color","fontSize","paddingBottom","leftIconOutset","leftIcon","marginRight","marginLeft","rightIcon","calculateLeftPadding","Math","abs","assistiveTextLabel","paddingLeft","paddingTop","primaryTextStyle","identity","handleValueChange","newValue","itemIndex","styles","marginsContainer","touchableContainer","outsetContainer","insetContainer","primaryTextContainer","StyleSheet","create","alignSelf","alignItems","maxWidth","flex","flexDirection","justifyContent","paddingRight","iosPicker","position","bottom","left","right","maxHeight","iosSafeArea","iosButton","iosNativePicker","nonIosPicker","opacity","top"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n Text,\n // Platform,\n ViewStyle,\n StyleProp,\n Dimensions,\n} from \"react-native\";\nimport { omit, pickBy, identity, isObject } from \"lodash\";\n// import { SafeAreaView } from \"react-native-safe-area-context\";\n// import { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport { withTheme } from \"../../theming\";\n// import Portal from \"../Portal/Portal\";\n// import Button from \"../DeprecatedButton\";\nimport Touchable from \"../Touchable\";\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport {\n extractStyles,\n extractBorderAndMarginStyles,\n borderStyleNames,\n marginStyleNames,\n} from \"../../utilities\";\n// @ts-expect-error\nimport { PickerComponent } from \"./PickerComponent\";\n\nexport interface PickerOption {\n value: string;\n label: string;\n}\n\nexport type PickerProps = {\n error?: any;\n placeholder?: string;\n disabled?: boolean;\n style?: StyleProp<ViewStyle> & { height?: number };\n value?: string;\n options: PickerOption[] | string[];\n onValueChange: (value: string, index: number) => void;\n defaultValue?: string;\n assistiveText?: string;\n label?: string;\n iconColor?: string;\n iconSize?: number;\n leftIconMode?: \"inset\" | \"outset\";\n leftIconName?: string;\n placeholderTextColor?: string;\n rightIconName?: string;\n type?: \"solid\" | \"underline\";\n theme: Theme;\n Icon: IconSlot[\"Icon\"];\n};\n\nfunction normalizeOptions(options: PickerProps[\"options\"]): PickerOption[] {\n if (options.length === 0) {\n return [];\n }\n\n if (typeof options[0] === (\"string\" || \"number\")) {\n return (options as string[]).map((option) => ({\n label: String(option),\n value: String(option),\n }));\n }\n\n if (\n isObject(options[0]) &&\n options[0].value !== null &&\n options[0].label !== null\n ) {\n return (options as PickerOption[]).map((option) => {\n return {\n label: String(option.label),\n value: String(option.value),\n };\n });\n }\n\n throw new Error(\n 'Picker options must be either an array of strings or array of { \"label\": string; \"value\": string; } objects.'\n );\n}\n\nconst { width: deviceWidth, height: deviceHeight } = Dimensions.get(\"screen\");\n// const isIos = Platform.OS === \"ios\";\nconst unstyledColor = \"rgba(165, 173, 183, 1)\";\nconst disabledColor = \"rgb(240, 240, 240)\";\nconst errorColor = \"rgba(255, 69, 100, 1)\";\n\nconst Picker: React.FC<PickerProps> = ({\n error,\n options = [],\n onValueChange,\n defaultValue,\n Icon,\n style,\n placeholder,\n value,\n disabled = false,\n // theme,\n assistiveText,\n label,\n iconColor = unstyledColor,\n iconSize = 24,\n leftIconMode = \"inset\",\n leftIconName,\n placeholderTextColor = unstyledColor,\n rightIconName,\n type = \"solid\",\n}) => {\n const androidPickerRef = React.useRef<any | undefined>(undefined);\n\n const [internalValue, setInternalValue] = React.useState<string | undefined>(\n value || defaultValue\n );\n\n const [pickerVisible, setPickerVisible] = React.useState(false);\n\n const togglePickerVisible = () => {\n setPickerVisible(!pickerVisible);\n };\n\n React.useEffect(() => {\n if (value != null) {\n setInternalValue(value);\n }\n }, [value]);\n\n React.useEffect(() => {\n if (defaultValue != null) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n React.useEffect(() => {\n if (pickerVisible && androidPickerRef.current) {\n androidPickerRef?.current?.focus();\n }\n }, [pickerVisible, androidPickerRef]);\n\n const normalizedOptions = normalizeOptions(options);\n\n const pickerOptions = placeholder\n ? [{ value: placeholder, label: placeholder }, ...normalizedOptions]\n : normalizedOptions;\n\n // const { colors } = theme;\n\n const { viewStyles, textStyles } = extractStyles(style);\n\n const additionalBorderStyles = [\"backgroundColor\"];\n\n const additionalMarginStyles = [\n \"bottom\",\n \"height\",\n \"left\",\n \"maxHeight\",\n \"maxWidth\",\n \"minHeight\",\n \"minWidth\",\n \"overflow\",\n \"position\",\n \"right\",\n \"top\",\n \"width\",\n \"zIndex\",\n ];\n\n const {\n borderStyles: extractedBorderStyles,\n marginStyles: extractedMarginStyles,\n } = extractBorderAndMarginStyles(\n viewStyles,\n additionalBorderStyles,\n additionalMarginStyles\n );\n\n const borderStyles = {\n ...{\n ...(type === \"solid\"\n ? {\n borderTopLeftRadius: 5,\n borderTopRightRadius: 5,\n borderBottomRightRadius: 5,\n borderBottomLeftRadius: 5,\n borderTopWidth: 1,\n borderRightWidth: 1,\n borderLeftWidth: 1,\n }\n : {}),\n borderBottomWidth: 1,\n borderColor: unstyledColor,\n borderStyle: \"solid\",\n },\n ...extractedBorderStyles,\n ...(error ? { borderColor: errorColor } : {}),\n ...(disabled\n ? { borderColor: \"transparent\", backgroundColor: disabledColor }\n : {}),\n };\n\n const marginStyles = {\n height: 60,\n ...extractedMarginStyles,\n };\n\n const stylesWithoutBordersAndMargins = omit(viewStyles, [\n ...borderStyleNames,\n ...marginStyleNames,\n ...additionalBorderStyles,\n ...additionalMarginStyles,\n ]);\n\n const selectedLabel =\n internalValue &&\n ((pickerOptions as unknown as PickerOption[]).find(\n (option) => option.value === internalValue\n )?.label ??\n internalValue);\n\n const labelText = label ? (\n <Text\n style={{\n textAlign: textStyles.textAlign,\n color: unstyledColor,\n fontSize: 12,\n paddingBottom: 4,\n }}\n >\n {label}\n </Text>\n ) : null;\n\n const leftIconOutset = leftIconMode === \"outset\";\n\n const leftIcon = leftIconName ? (\n <Icon\n name={leftIconName}\n color={disabled ? unstyledColor : iconColor}\n size={iconSize}\n style={{\n marginRight: 4,\n marginLeft: 4,\n }}\n />\n ) : null;\n\n const rightIcon = rightIconName ? (\n <Icon\n name={rightIconName}\n color={disabled ? unstyledColor : iconColor}\n size={iconSize}\n style={{\n marginRight: -10,\n marginLeft: 8,\n }}\n />\n ) : null;\n\n const textAlign = textStyles?.textAlign;\n\n const calculateLeftPadding = () => {\n if (leftIconOutset) {\n if (textAlign === \"center\") {\n return iconSize - Math.abs(8 - iconSize);\n }\n\n return iconSize + 8;\n }\n\n return 0;\n };\n\n const assistiveTextLabel = assistiveText ? (\n <Text\n style={{\n textAlign,\n width: \"100%\",\n paddingLeft: calculateLeftPadding(),\n color: unstyledColor,\n fontSize: 12,\n paddingTop: 4,\n }}\n >\n {assistiveText}\n </Text>\n ) : null;\n\n const primaryTextStyle = {\n color: unstyledColor,\n fontSize: 14,\n ...pickBy(textStyles, identity),\n ...(placeholder === internalValue ? { color: placeholderTextColor } : {}),\n ...(disabled ? { color: unstyledColor } : {}),\n };\n\n const handleValueChange = (newValue: string, itemIndex: number) => {\n if (!placeholder || itemIndex > 0) {\n onValueChange?.(newValue, itemIndex);\n }\n setInternalValue(newValue);\n };\n\n return (\n /* marginsContainer */\n <View style={[styles.marginsContainer, marginStyles]}>\n {/* touchableContainer */}\n <Touchable\n disabled={disabled}\n onPress={togglePickerVisible}\n style={styles.touchableContainer}\n >\n {/* outsetContainer */}\n <View\n pointerEvents=\"none\"\n style={[\n styles.outsetContainer,\n stylesWithoutBordersAndMargins,\n !leftIconOutset ? (borderStyles as PickerProps[\"style\"]) : {},\n ]}\n >\n {leftIcon}\n\n {/* insetContainer */}\n <View\n style={[\n styles.insetContainer,\n leftIconOutset ? (borderStyles as PickerProps[\"style\"]) : {},\n ]}\n >\n {/* primaryTextContainer */}\n <View style={styles.primaryTextContainer}>\n {labelText}\n\n <Text style={primaryTextStyle}>\n {String(selectedLabel ?? placeholder)}\n </Text>\n </View>\n\n {rightIcon}\n </View>\n </View>\n {assistiveTextLabel}\n </Touchable>\n\n <View>\n {pickerVisible ? (\n <PickerComponent\n {...{\n Icon,\n androidPickerRef,\n togglePickerVisible,\n pickerOptions,\n internalValue,\n handleValueChange,\n }}\n />\n ) : null}\n </View>\n\n {/* iosPicker */}\n {/* isIos && pickerVisible ? (\n <Portal>\n <View\n style={[\n styles.iosPicker,\n {\n backgroundColor: colors.divider,\n },\n ]}\n >\n <SafeAreaView style={styles.iosSafeArea}>\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={togglePickerVisible}\n style={styles.iosButton}\n >\n {\"Close\"}\n </Button>\n\n <NativePicker\n style={styles.iosNativePicker}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n </SafeAreaView>\n </View>\n </Portal>\n ) : null */}\n\n {/* nonIosPicker */}\n {/* !isIos && pickerVisible ? (\n <NativePicker\n enabled={pickerVisible}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n style={styles.nonIosPicker}\n ref={androidPickerRef}\n onBlur={() => setPickerVisible(false)}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n ) : null */}\n </View>\n );\n};\n\nexport default withTheme(Picker);\n\nconst styles = StyleSheet.create({\n marginsContainer: {\n alignSelf: \"stretch\",\n alignItems: \"center\",\n width: \"100%\",\n maxWidth: deviceWidth,\n },\n touchableContainer: {\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n alignSelf: \"stretch\",\n alignItems: \"center\",\n backgroundColor: \"pink\", // TODO\n },\n outsetContainer: {\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n },\n insetContainer: {\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingLeft: 12,\n paddingRight: 12,\n },\n primaryTextContainer: {\n flex: 1,\n },\n iosPicker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n width: \"100%\",\n maxWidth: deviceWidth,\n maxHeight: deviceHeight,\n },\n iosSafeArea: {\n backgroundColor: \"white\",\n flexDirection: \"column\",\n width: \"100%\",\n maxWidth: deviceWidth,\n },\n iosButton: {\n alignSelf: \"flex-end\",\n },\n iosNativePicker: {\n backgroundColor: \"white\",\n },\n nonIosPicker: {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n maxWidth: deviceWidth,\n maxHeight: deviceHeight,\n },\n});\n"]}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PickerComponent = void 0;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _picker = require("@react-native-picker/picker");
13
+
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ const {
19
+ width: deviceWidth,
20
+ height: deviceHeight
21
+ } = _reactNative.Dimensions.get("screen");
22
+
23
+ const PickerComponent = _ref => {
24
+ let {
25
+ androidPickerRef,
26
+ togglePickerVisible,
27
+ pickerOptions,
28
+ internalValue,
29
+ handleValueChange
30
+ } = _ref;
31
+ return /*#__PURE__*/React.createElement(_picker.Picker, {
32
+ selectedValue: internalValue,
33
+ onValueChange: handleValueChange,
34
+ style: styles.nonIosPicker,
35
+ ref: androidPickerRef,
36
+ onBlur: togglePickerVisible
37
+ }, pickerOptions.map(option => /*#__PURE__*/React.createElement(_picker.Picker.Item, {
38
+ label: option.label,
39
+ value: option.value,
40
+ key: option.value
41
+ })));
42
+ };
43
+
44
+ exports.PickerComponent = PickerComponent;
45
+
46
+ const styles = _reactNative.StyleSheet.create({
47
+ nonIosPicker: {
48
+ opacity: 0,
49
+ position: "absolute",
50
+ top: 0,
51
+ left: 0,
52
+ right: 0,
53
+ bottom: 0,
54
+ width: "100%",
55
+ maxWidth: deviceWidth,
56
+ maxHeight: deviceHeight
57
+ }
58
+ });
59
+ //# sourceMappingURL=PickerComponent.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PickerComponent.android.tsx"],"names":["width","deviceWidth","height","deviceHeight","Dimensions","get","PickerComponent","androidPickerRef","togglePickerVisible","pickerOptions","internalValue","handleValueChange","styles","nonIosPicker","map","option","label","value","StyleSheet","create","opacity","position","top","left","right","bottom","maxWidth","maxHeight"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;;;AAMA,MAAM;AAAEA,EAAAA,KAAK,EAAEC,WAAT;AAAsBC,EAAAA,MAAM,EAAEC;AAA9B,IAA+CC,wBAAWC,GAAX,CAAe,QAAf,CAArD;;AAWO,MAAMC,eAA+C,GAAG,QAMzD;AAAA,MAN0D;AAC9DC,IAAAA,gBAD8D;AAE9DC,IAAAA,mBAF8D;AAG9DC,IAAAA,aAH8D;AAI9DC,IAAAA,aAJ8D;AAK9DC,IAAAA;AAL8D,GAM1D;AACJ,sBACE,oBAAC,cAAD;AACE,IAAA,aAAa,EAAED,aADjB;AAEE,IAAA,aAAa,EAAEC,iBAFjB;AAGE,IAAA,KAAK,EAAEC,MAAM,CAACC,YAHhB;AAIE,IAAA,GAAG,EAAEN,gBAJP;AAKE,IAAA,MAAM,EAAEC;AALV,KAOIC,aAAD,CAA6CK,GAA7C,CAAkDC,MAAD,iBAChD,oBAAC,cAAD,CAAc,IAAd;AACE,IAAA,KAAK,EAAEA,MAAM,CAACC,KADhB;AAEE,IAAA,KAAK,EAAED,MAAM,CAACE,KAFhB;AAGE,IAAA,GAAG,EAAEF,MAAM,CAACE;AAHd,IADD,CAPH,CADF;AAiBD,CAxBM;;;;AA0BP,MAAML,MAAM,GAAGM,wBAAWC,MAAX,CAAkB;AAC/BN,EAAAA,YAAY,EAAE;AACZO,IAAAA,OAAO,EAAE,CADG;AAEZC,IAAAA,QAAQ,EAAE,UAFE;AAGZC,IAAAA,GAAG,EAAE,CAHO;AAIZC,IAAAA,IAAI,EAAE,CAJM;AAKZC,IAAAA,KAAK,EAAE,CALK;AAMZC,IAAAA,MAAM,EAAE,CANI;AAOZzB,IAAAA,KAAK,EAAE,MAPK;AAQZ0B,IAAAA,QAAQ,EAAEzB,WARE;AASZ0B,IAAAA,SAAS,EAAExB;AATC;AADiB,CAAlB,CAAf","sourcesContent":["import * as React from \"react\";\nimport { StyleSheet, Dimensions } from \"react-native\";\n\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport { PickerOption } from \"./Picker\";\n\nconst { width: deviceWidth, height: deviceHeight } = Dimensions.get(\"screen\");\n\ninterface PickerComponentProps {\n Icon: IconSlot[\"Icon\"];\n androidPickerRef: React.RefObject<any>;\n togglePickerVisible: () => void;\n pickerOptions: PickerOption[];\n internalValue: string | undefined;\n handleValueChange: (newValue: string, itemIndex: number) => void;\n}\n\nexport const PickerComponent: React.FC<PickerComponentProps> = ({\n androidPickerRef,\n togglePickerVisible,\n pickerOptions,\n internalValue,\n handleValueChange,\n}) => {\n return (\n <NativePicker\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n style={styles.nonIosPicker}\n ref={androidPickerRef}\n onBlur={togglePickerVisible}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n );\n};\n\nconst styles = StyleSheet.create({\n nonIosPicker: {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n maxWidth: deviceWidth,\n maxHeight: deviceHeight,\n },\n});\n"]}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PickerComponent = void 0;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
13
+
14
+ var _picker = require("@react-native-picker/picker");
15
+
16
+ var _Portal = _interopRequireDefault(require("../Portal/Portal"));
17
+
18
+ var _DeprecatedButton = _interopRequireDefault(require("../DeprecatedButton"));
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ const {
27
+ width: deviceWidth,
28
+ height: deviceHeight
29
+ } = _reactNative.Dimensions.get("screen");
30
+
31
+ const PickerComponent = _ref => {
32
+ let {
33
+ Icon,
34
+ togglePickerVisible,
35
+ pickerOptions,
36
+ internalValue,
37
+ handleValueChange
38
+ } = _ref;
39
+ return /*#__PURE__*/React.createElement(_Portal.default, null, /*#__PURE__*/React.createElement(_reactNative.View, {
40
+ style: styles.iosPicker
41
+ }, /*#__PURE__*/React.createElement(_reactNativeSafeAreaContext.SafeAreaView, {
42
+ style: styles.iosSafeArea
43
+ }, /*#__PURE__*/React.createElement(_DeprecatedButton.default, {
44
+ Icon: Icon,
45
+ type: "text",
46
+ onPress: togglePickerVisible,
47
+ style: styles.iosButton
48
+ }, "Close"), /*#__PURE__*/React.createElement(_picker.Picker, {
49
+ style: styles.iosNativePicker,
50
+ selectedValue: internalValue,
51
+ onValueChange: handleValueChange
52
+ }, pickerOptions.map(option => /*#__PURE__*/React.createElement(_picker.Picker.Item, {
53
+ label: option.label,
54
+ value: option.value,
55
+ key: option.value
56
+ }))))));
57
+ };
58
+
59
+ exports.PickerComponent = PickerComponent;
60
+
61
+ const styles = _reactNative.StyleSheet.create({
62
+ iosPicker: {
63
+ position: "absolute",
64
+ bottom: 0,
65
+ left: 0,
66
+ right: 0,
67
+ flexDirection: "row",
68
+ justifyContent: "center",
69
+ width: deviceWidth,
70
+ // TODO
71
+ maxWidth: deviceWidth,
72
+ maxHeight: deviceHeight,
73
+ backgroundColor: "green" // TODO
74
+ // backgroundColor: "rgba(255, 255, 255, 1)",
75
+
76
+ },
77
+ iosSafeArea: {
78
+ backgroundColor: "yellow",
79
+ // backgroundColor: "white",// TODO
80
+ flexDirection: "column",
81
+ width: deviceWidth,
82
+ maxWidth: deviceWidth
83
+ },
84
+ iosButton: {
85
+ alignSelf: "flex-end"
86
+ },
87
+ iosNativePicker: {
88
+ //backgroundColor: "white",// TODO
89
+ backgroundColor: "red"
90
+ }
91
+ });
92
+ //# sourceMappingURL=PickerComponent.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PickerComponent.ios.tsx"],"names":["width","deviceWidth","height","deviceHeight","Dimensions","get","PickerComponent","Icon","togglePickerVisible","pickerOptions","internalValue","handleValueChange","styles","iosPicker","iosSafeArea","iosButton","iosNativePicker","map","option","label","value","StyleSheet","create","position","bottom","left","right","flexDirection","justifyContent","maxWidth","maxHeight","backgroundColor","alignSelf"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAGA;;AACA;;;;;;;;AAGA,MAAM;AAAEA,EAAAA,KAAK,EAAEC,WAAT;AAAsBC,EAAAA,MAAM,EAAEC;AAA9B,IAA+CC,wBAAWC,GAAX,CAAe,QAAf,CAArD;;AAWO,MAAMC,eAA+C,GAAG,QAMzD;AAAA,MAN0D;AAC9DC,IAAAA,IAD8D;AAE9DC,IAAAA,mBAF8D;AAG9DC,IAAAA,aAH8D;AAI9DC,IAAAA,aAJ8D;AAK9DC,IAAAA;AAL8D,GAM1D;AACJ,sBACE,oBAAC,eAAD,qBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEC,MAAM,CAACC;AAApB,kBACE,oBAAC,wCAAD;AAAc,IAAA,KAAK,EAAED,MAAM,CAACE;AAA5B,kBACE,oBAAC,yBAAD;AACE,IAAA,IAAI,EAAEP,IADR;AAEE,IAAA,IAAI,EAAC,MAFP;AAGE,IAAA,OAAO,EAAEC,mBAHX;AAIE,IAAA,KAAK,EAAEI,MAAM,CAACG;AAJhB,KAMG,OANH,CADF,eAUE,oBAAC,cAAD;AACE,IAAA,KAAK,EAAEH,MAAM,CAACI,eADhB;AAEE,IAAA,aAAa,EAAEN,aAFjB;AAGE,IAAA,aAAa,EAAEC;AAHjB,KAKIF,aAAD,CAA6CQ,GAA7C,CAAkDC,MAAD,iBAChD,oBAAC,cAAD,CAAc,IAAd;AACE,IAAA,KAAK,EAAEA,MAAM,CAACC,KADhB;AAEE,IAAA,KAAK,EAAED,MAAM,CAACE,KAFhB;AAGE,IAAA,GAAG,EAAEF,MAAM,CAACE;AAHd,IADD,CALH,CAVF,CADF,CADF,CADF;AA8BD,CArCM;;;;AAuCP,MAAMR,MAAM,GAAGS,wBAAWC,MAAX,CAAkB;AAC/BT,EAAAA,SAAS,EAAE;AACTU,IAAAA,QAAQ,EAAE,UADD;AAETC,IAAAA,MAAM,EAAE,CAFC;AAGTC,IAAAA,IAAI,EAAE,CAHG;AAITC,IAAAA,KAAK,EAAE,CAJE;AAKTC,IAAAA,aAAa,EAAE,KALN;AAMTC,IAAAA,cAAc,EAAE,QANP;AAOT5B,IAAAA,KAAK,EAAEC,WAPE;AAOW;AACpB4B,IAAAA,QAAQ,EAAE5B,WARD;AAST6B,IAAAA,SAAS,EAAE3B,YATF;AAUT4B,IAAAA,eAAe,EAAE,OAVR,CAUiB;AAC1B;;AAXS,GADoB;AAc/BjB,EAAAA,WAAW,EAAE;AACXiB,IAAAA,eAAe,EAAE,QADN;AAEX;AACAJ,IAAAA,aAAa,EAAE,QAHJ;AAIX3B,IAAAA,KAAK,EAAEC,WAJI;AAKX4B,IAAAA,QAAQ,EAAE5B;AALC,GAdkB;AAqB/Bc,EAAAA,SAAS,EAAE;AACTiB,IAAAA,SAAS,EAAE;AADF,GArBoB;AAwB/BhB,EAAAA,eAAe,EAAE;AACf;AACAe,IAAAA,eAAe,EAAE;AAFF;AAxBc,CAAlB,CAAf","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet, Dimensions } from \"react-native\";\nimport { SafeAreaView } from \"react-native-safe-area-context\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport { PickerOption } from \"./Picker\";\n\nconst { width: deviceWidth, height: deviceHeight } = Dimensions.get(\"screen\");\n\ninterface PickerComponentProps {\n Icon: IconSlot[\"Icon\"];\n androidPickerRef: React.RefObject<any>;\n togglePickerVisible: () => void;\n pickerOptions: PickerOption[];\n internalValue: string | undefined;\n handleValueChange: (newValue: string, itemIndex: number) => void;\n}\n\nexport const PickerComponent: React.FC<PickerComponentProps> = ({\n Icon,\n togglePickerVisible,\n pickerOptions,\n internalValue,\n handleValueChange,\n}) => {\n return (\n <Portal>\n <View style={styles.iosPicker}>\n <SafeAreaView style={styles.iosSafeArea}>\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={togglePickerVisible}\n style={styles.iosButton}\n >\n {\"Close\"}\n </Button>\n\n <NativePicker\n style={styles.iosNativePicker}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n </SafeAreaView>\n </View>\n </Portal>\n );\n};\n\nconst styles = StyleSheet.create({\n iosPicker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n width: deviceWidth, // TODO\n maxWidth: deviceWidth,\n maxHeight: deviceHeight,\n backgroundColor: \"green\", // TODO\n // backgroundColor: \"rgba(255, 255, 255, 1)\",\n },\n iosSafeArea: {\n backgroundColor: \"yellow\",\n // backgroundColor: \"white\",// TODO\n flexDirection: \"column\",\n width: deviceWidth,\n maxWidth: deviceWidth,\n },\n iosButton: {\n alignSelf: \"flex-end\",\n },\n iosNativePicker: {\n //backgroundColor: \"white\",// TODO\n backgroundColor: \"red\",\n },\n});\n"]}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PickerComponent = void 0;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _picker = require("@react-native-picker/picker");
13
+
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ const {
19
+ width: deviceWidth,
20
+ height: deviceHeight
21
+ } = _reactNative.Dimensions.get("screen");
22
+
23
+ const PickerComponent = _ref => {
24
+ let {
25
+ androidPickerRef,
26
+ togglePickerVisible,
27
+ pickerOptions,
28
+ internalValue,
29
+ handleValueChange
30
+ } = _ref;
31
+ return /*#__PURE__*/React.createElement(_picker.Picker, {
32
+ selectedValue: internalValue,
33
+ onValueChange: handleValueChange,
34
+ style: styles.nonIosPicker,
35
+ ref: androidPickerRef,
36
+ onBlur: togglePickerVisible
37
+ }, pickerOptions.map(option => /*#__PURE__*/React.createElement(_picker.Picker.Item, {
38
+ label: option.label,
39
+ value: option.value,
40
+ key: option.value
41
+ })));
42
+ };
43
+
44
+ exports.PickerComponent = PickerComponent;
45
+
46
+ const styles = _reactNative.StyleSheet.create({
47
+ nonIosPicker: {
48
+ opacity: 0,
49
+ position: "absolute",
50
+ top: 0,
51
+ left: 0,
52
+ right: 0,
53
+ bottom: 0,
54
+ width: "100%",
55
+ maxWidth: deviceWidth,
56
+ maxHeight: deviceHeight
57
+ }
58
+ });
59
+ //# sourceMappingURL=PickerComponent.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PickerComponent.web.tsx"],"names":["width","deviceWidth","height","deviceHeight","Dimensions","get","PickerComponent","androidPickerRef","togglePickerVisible","pickerOptions","internalValue","handleValueChange","styles","nonIosPicker","map","option","label","value","StyleSheet","create","opacity","position","top","left","right","bottom","maxWidth","maxHeight"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;;;AAMA,MAAM;AAAEA,EAAAA,KAAK,EAAEC,WAAT;AAAsBC,EAAAA,MAAM,EAAEC;AAA9B,IAA+CC,wBAAWC,GAAX,CAAe,QAAf,CAArD;;AAWO,MAAMC,eAA+C,GAAG,QAMzD;AAAA,MAN0D;AAC9DC,IAAAA,gBAD8D;AAE9DC,IAAAA,mBAF8D;AAG9DC,IAAAA,aAH8D;AAI9DC,IAAAA,aAJ8D;AAK9DC,IAAAA;AAL8D,GAM1D;AACJ,sBACE,oBAAC,cAAD;AACE,IAAA,aAAa,EAAED,aADjB;AAEE,IAAA,aAAa,EAAEC,iBAFjB;AAGE,IAAA,KAAK,EAAEC,MAAM,CAACC,YAHhB;AAIE,IAAA,GAAG,EAAEN,gBAJP;AAKE,IAAA,MAAM,EAAEC;AALV,KAOIC,aAAD,CAA6CK,GAA7C,CAAkDC,MAAD,iBAChD,oBAAC,cAAD,CAAc,IAAd;AACE,IAAA,KAAK,EAAEA,MAAM,CAACC,KADhB;AAEE,IAAA,KAAK,EAAED,MAAM,CAACE,KAFhB;AAGE,IAAA,GAAG,EAAEF,MAAM,CAACE;AAHd,IADD,CAPH,CADF;AAiBD,CAxBM;;;;AA0BP,MAAML,MAAM,GAAGM,wBAAWC,MAAX,CAAkB;AAC/BN,EAAAA,YAAY,EAAE;AACZO,IAAAA,OAAO,EAAE,CADG;AAEZC,IAAAA,QAAQ,EAAE,UAFE;AAGZC,IAAAA,GAAG,EAAE,CAHO;AAIZC,IAAAA,IAAI,EAAE,CAJM;AAKZC,IAAAA,KAAK,EAAE,CALK;AAMZC,IAAAA,MAAM,EAAE,CANI;AAOZzB,IAAAA,KAAK,EAAE,MAPK;AAQZ0B,IAAAA,QAAQ,EAAEzB,WARE;AASZ0B,IAAAA,SAAS,EAAExB;AATC;AADiB,CAAlB,CAAf","sourcesContent":["import * as React from \"react\";\nimport { StyleSheet, Dimensions } from \"react-native\";\n\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport { PickerOption } from \"./Picker\";\n\nconst { width: deviceWidth, height: deviceHeight } = Dimensions.get(\"screen\");\n\ninterface PickerComponentProps {\n Icon: IconSlot[\"Icon\"];\n androidPickerRef: React.RefObject<any>;\n togglePickerVisible: () => void;\n pickerOptions: PickerOption[];\n internalValue: string | undefined;\n handleValueChange: (newValue: string, itemIndex: number) => void;\n}\n\nexport const PickerComponent: React.FC<PickerComponentProps> = ({\n androidPickerRef,\n togglePickerVisible,\n pickerOptions,\n internalValue,\n handleValueChange,\n}) => {\n return (\n <NativePicker\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n style={styles.nonIosPicker}\n ref={androidPickerRef}\n onBlur={togglePickerVisible}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n );\n};\n\nconst styles = StyleSheet.create({\n nonIosPicker: {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n maxWidth: deviceWidth,\n maxHeight: deviceHeight,\n },\n});\n"]}