@draftbit/core 44.1.11-ff48ef.0 → 44.1.11

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["Config.ts"],"names":["getWindowDimensions","width","height","Dimensions","get","windowWidth","windowHeight","getFilters","options","filters","push","join","buildImageUrl","name","getExtension","Platform","OS","avatarImageUrl","avatarImageSize","cardImageSize","cardImageUrl","cardIconSize","cardIconBackgroundOpacity","cardIconElevation","placeholderImageURL","getPlaceholderImageUrl","size","squareImageUrl","FABSize","FABBorderRadius","FABFixedHeight","cardContainerShortImageAspectRatio","rowSingleLineImageSize","rowMultiLineImageSize","rowSingleLineIconSize","rowMultiLineIconSize","headerIconSize","buttonIconSize","swiperInactiveDotSize","swiperActiveDotSize","fieldSearchBarFullIconSize","stepperButtonSize","radioButtonSize","topSafeAreaViewHeight"],"mappings":"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","sourcesContent":["import { Dimensions, Platform } from \"react-native\";\n\nconst getWindowDimensions = () => {\n const { width, height } = Dimensions.get(\"window\");\n return {\n windowWidth: width,\n windowHeight: height,\n };\n};\n\nconst { windowWidth, windowHeight } = getWindowDimensions();\n\nconst getFilters = (options: { width: number; height: number }) => {\n const { width, height } = options;\n const filters = [\"c_scale\", \"q_auto\", \"dpr_auto\"];\n\n if (width) filters.push(`w_${width}`);\n if (height) filters.push(`h_${height}`);\n\n return filters.join(\",\");\n};\n\nconst buildImageUrl = (\n options: { width: number; height: number },\n name: string\n) => {\n const filters = getFilters(options);\n return [\n \"https://res.cloudinary.com/altos/image/upload\",\n filters,\n `${name}.png`,\n ].join(\"/\");\n};\n\nconst getExtension = () => {\n return Platform.OS === \"web\" ? \".svg\" : \".png\";\n};\n\nexport default {\n windowWidth,\n windowHeight,\n avatarImageUrl: buildImageUrl(\n {\n width: 60,\n height: 60,\n },\n \"Avatar\"\n ),\n avatarImageSize: 60,\n cardImageSize: 200,\n cardImageUrl:\n \"https://static.draftbit.com/images/placeholder-image\" + getExtension(),\n cardIconSize: 16,\n cardIconBackgroundOpacity: 0.24,\n cardIconElevation: 1,\n placeholderImageURL:\n \"https://static.draftbit.com/images/placeholder-image\" + getExtension(),\n getPlaceholderImageUrl: (size: { width: number; height: number }) =>\n buildImageUrl(\n { width: size.width, height: size.height },\n \"image-placeholder_1\"\n ),\n squareImageUrl: buildImageUrl({ width: 100, height: 100 }, \"Avatar\"),\n FABSize: 40,\n FABBorderRadius: 20,\n FABFixedHeight: 64,\n cardContainerShortImageAspectRatio: 1,\n rowSingleLineImageSize: 24,\n rowMultiLineImageSize: 48,\n rowSingleLineIconSize: 24,\n rowMultiLineIconSize: 16,\n headerIconSize: 24,\n buttonIconSize: 24,\n swiperInactiveDotSize: 6,\n swiperActiveDotSize: 10,\n fieldSearchBarFullIconSize: 24,\n stepperButtonSize: 40,\n radioButtonSize: 24,\n topSafeAreaViewHeight: 0,\n // topSafeAreaViewHeight: Platform.OS === \"android\" ? Constants.statusBarHeight : 0\n};\n"]}
1
+ {"version":3,"sources":["Config.js"],"names":["getWindowDimensions","width","height","Dimensions","get","windowWidth","windowHeight","getFilters","options","filters","push","join","buildImageUrl","name","getExtension","Platform","OS","avatarImageUrl","avatarImageSize","cardImageSize","cardImageUrl","cardIconSize","cardIconBackgroundOpacity","cardIconElevation","placeholderImageURL","getPlaceholderImageUrl","size","squareImageUrl","FABSize","FABBorderRadius","FABFixedHeight","cardContainerShortImageAspectRatio","rowSingleLineImageSize","rowMultiLineImageSize","rowSingleLineIconSize","rowMultiLineIconSize","headerIconSize","buttonIconSize","swiperInactiveDotSize","swiperActiveDotSize","fieldSearchBarFullIconSize","stepperButtonSize","radioButtonSize","topSafeAreaViewHeight"],"mappings":"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","sourcesContent":["import { Dimensions, Platform } from \"react-native\";\nconst getWindowDimensions = () => {\n const { width, height } = Dimensions.get(\"window\");\n return {\n windowWidth: width,\n windowHeight: height,\n };\n};\nconst { windowWidth, windowHeight } = getWindowDimensions();\nconst getFilters = (options) => {\n const { width, height } = options;\n const filters = [\"c_scale\", \"q_auto\", \"dpr_auto\"];\n if (width)\n filters.push(`w_${width}`);\n if (height)\n filters.push(`h_${height}`);\n return filters.join(\",\");\n};\nconst buildImageUrl = (options, name) => {\n const filters = getFilters(options);\n return [\n \"https://res.cloudinary.com/altos/image/upload\",\n filters,\n `${name}.png`,\n ].join(\"/\");\n};\nconst getExtension = () => {\n return Platform.OS === \"web\" ? \".svg\" : \".png\";\n};\nexport default {\n windowWidth,\n windowHeight,\n avatarImageUrl: buildImageUrl({\n width: 60,\n height: 60,\n }, \"Avatar\"),\n avatarImageSize: 60,\n cardImageSize: 200,\n cardImageUrl: \"https://static.draftbit.com/images/placeholder-image\" + getExtension(),\n cardIconSize: 16,\n cardIconBackgroundOpacity: 0.24,\n cardIconElevation: 1,\n placeholderImageURL: \"https://static.draftbit.com/images/placeholder-image\" + getExtension(),\n getPlaceholderImageUrl: (size) => buildImageUrl({ width: size.width, height: size.height }, \"image-placeholder_1\"),\n squareImageUrl: buildImageUrl({ width: 100, height: 100 }, \"Avatar\"),\n FABSize: 40,\n FABBorderRadius: 20,\n FABFixedHeight: 64,\n cardContainerShortImageAspectRatio: 1,\n rowSingleLineImageSize: 24,\n rowMultiLineImageSize: 48,\n rowSingleLineIconSize: 24,\n rowMultiLineIconSize: 16,\n headerIconSize: 24,\n buttonIconSize: 24,\n swiperInactiveDotSize: 6,\n swiperActiveDotSize: 10,\n fieldSearchBarFullIconSize: 24,\n stepperButtonSize: 40,\n radioButtonSize: 24,\n topSafeAreaViewHeight: 0,\n // topSafeAreaViewHeight: Platform.OS === \"android\" ? Constants.statusBarHeight : 0\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["HeaderMedium.tsx"],"names":["HeaderMedium","Icon","title","buttonText","icon","onPress","style","theme","colors","typography","headline6","strong"],"mappings":";;;;;;;AAAA;;AACA;;AAIA;;;;;;;;AAYA,MAAMA,YAA6B,GAAG,QAQhC;AAAA,MARiC;AACrCC,IAAAA,IADqC;AAErCC,IAAAA,KAFqC;AAGrCC,IAAAA,UAHqC;AAIrCC,IAAAA,IAJqC;AAKrCC,IAAAA,OAAO,GAAG,MAAM,CAAE,CALmB;AAMrCC,IAAAA,KANqC;AAOrCC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAF;AAAUC,MAAAA;AAAV;AAP8B,GAQjC;AACJ,sBACE,oBAAC,eAAD;AACE,IAAA,IAAI,EAAER,IADR;AAEE,IAAA,cAAc,EAAEQ,UAAU,CAACC,SAF7B;AAGE,IAAA,UAAU,EAAEF,MAAM,CAACG,MAHrB;AAIE,IAAA,KAAK,EAAET,KAJT;AAKE,IAAA,UAAU,EAAEC,UALd;AAME,IAAA,IAAI,EAAEC,IANR;AAOE,IAAA,OAAO,EAAEC,OAPX;AAQE,IAAA,KAAK,EAAEC;AART,IADF;AAYD,CArBD;;eAuBe,wBAAUN,YAAV,C","sourcesContent":["import * as React from \"react\";\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\n\nimport Header from \"./Header\";\nimport { StyleProp, ViewStyle } from \"react-native\";\n\ntype Props = {\n title: string;\n buttonText: string;\n icon: string;\n onPress?: () => void;\n style?: StyleProp<ViewStyle>;\n theme: Theme;\n} & IconSlot;\n\nconst HeaderMedium: React.FC<Props> = ({\n Icon,\n title,\n buttonText,\n icon,\n onPress = () => {},\n style,\n theme: { colors, typography },\n}) => {\n return (\n <Header\n Icon={Icon}\n titleTypeStyle={typography.headline6}\n titleColor={colors.strong}\n title={title}\n buttonText={buttonText}\n icon={icon}\n onPress={onPress}\n style={style}\n />\n );\n};\n\nexport default withTheme(HeaderMedium);\n"]}
1
+ {"version":3,"sources":["HeaderMedium.js"],"names":["HeaderMedium","Icon","title","buttonText","icon","onPress","style","theme","colors","typography","React","createElement","Header","titleTypeStyle","headline6","titleColor","strong"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AACA,MAAMA,YAAY,GAAG,QAAmG;AAAA,MAAlG;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,KAAR;AAAeC,IAAAA,UAAf;AAA2BC,IAAAA,IAA3B;AAAiCC,IAAAA,OAAO,GAAG,MAAM,CAAG,CAApD;AAAsDC,IAAAA,KAAtD;AAA6DC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAF;AAAUC,MAAAA;AAAV;AAApE,GAAkG;AACpH,sBAAQC,KAAK,CAACC,aAAN,CAAoBC,eAApB,EAA4B;AAAEX,IAAAA,IAAI,EAAEA,IAAR;AAAcY,IAAAA,cAAc,EAAEJ,UAAU,CAACK,SAAzC;AAAoDC,IAAAA,UAAU,EAAEP,MAAM,CAACQ,MAAvE;AAA+Ed,IAAAA,KAAK,EAAEA,KAAtF;AAA6FC,IAAAA,UAAU,EAAEA,UAAzG;AAAqHC,IAAAA,IAAI,EAAEA,IAA3H;AAAiIC,IAAAA,OAAO,EAAEA,OAA1I;AAAmJC,IAAAA,KAAK,EAAEA;AAA1J,GAA5B,CAAR;AACH,CAFD;;eAGe,wBAAUN,YAAV,C","sourcesContent":["import * as React from \"react\";\nimport { withTheme } from \"../theming\";\nimport Header from \"./Header\";\nconst HeaderMedium = ({ Icon, title, buttonText, icon, onPress = () => { }, style, theme: { colors, typography }, }) => {\n return (React.createElement(Header, { Icon: Icon, titleTypeStyle: typography.headline6, titleColor: colors.strong, title: title, buttonText: buttonText, icon: icon, onPress: onPress, style: style }));\n};\nexport default withTheme(HeaderMedium);\n"]}
@@ -18,8 +18,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
18
18
 
19
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
20
 
21
- 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); }
22
-
23
21
  function Center(_ref) {
24
22
  let {
25
23
  width = 240,
@@ -29,15 +27,16 @@ function Center(_ref) {
29
27
  style,
30
28
  ...rest
31
29
  } = _ref;
32
- return /*#__PURE__*/React.createElement(_reactNative.View, _extends({
30
+ return /*#__PURE__*/React.createElement(_reactNative.View, {
33
31
  style: [{
34
32
  justifyContent: "center",
35
33
  alignItems: "center",
36
34
  width,
37
35
  height,
38
36
  backgroundColor: bgColor
39
- }, style]
40
- }, rest), children);
37
+ }, style],
38
+ ...rest
39
+ }, children);
41
40
  }
42
41
 
43
42
  function Circle(_ref2) {
@@ -49,7 +48,7 @@ function Circle(_ref2) {
49
48
  ...rest
50
49
  } = _ref2;
51
50
  const borderRadius = 1000;
52
- return /*#__PURE__*/React.createElement(Center, _extends({
51
+ return /*#__PURE__*/React.createElement(Center, {
53
52
  width: size,
54
53
  height: size,
55
54
  bgColor: bgColor,
@@ -57,8 +56,9 @@ function Circle(_ref2) {
57
56
  backgroundColor: bgColor,
58
57
  borderRadius,
59
58
  overflow: "hidden"
60
- }]
61
- }, rest), children);
59
+ }],
60
+ ...rest
61
+ }, children);
62
62
  }
63
63
 
64
64
  function Square(_ref3) {
@@ -69,12 +69,13 @@ function Square(_ref3) {
69
69
  style,
70
70
  ...rest
71
71
  } = _ref3;
72
- return /*#__PURE__*/React.createElement(Center, _extends({
72
+ return /*#__PURE__*/React.createElement(Center, {
73
73
  style: style,
74
74
  width: size,
75
75
  height: size,
76
- bgColor: bgColor
77
- }, rest), children);
76
+ bgColor: bgColor,
77
+ ...rest
78
+ }, children);
78
79
  }
79
80
 
80
81
  function Row(_ref4) {
@@ -85,14 +86,14 @@ function Row(_ref4) {
85
86
  style,
86
87
  ...rest
87
88
  } = _ref4;
88
- return /*#__PURE__*/React.createElement(_reactNative.View, _extends({
89
- style: [style, // style goes first b/c we can't override these
90
- {
89
+ return /*#__PURE__*/React.createElement(_reactNative.View, {
90
+ style: [style, {
91
91
  alignItems,
92
92
  flexDirection: "row",
93
93
  justifyContent: justifyContent
94
- }]
95
- }, rest), children);
94
+ }],
95
+ ...rest
96
+ }, children);
96
97
  }
97
98
 
98
99
  function Spacer(_ref5) {
@@ -105,14 +106,15 @@ function Spacer(_ref5) {
105
106
  style,
106
107
  ...rest
107
108
  } = _ref5;
108
- return /*#__PURE__*/React.createElement(_reactNative.View, _extends({
109
+ return /*#__PURE__*/React.createElement(_reactNative.View, {
109
110
  style: [style, {
110
111
  paddingRight: right,
111
112
  paddingTop: top,
112
113
  paddingLeft: left,
113
114
  paddingBottom: bottom
114
- }]
115
- }, rest), children);
115
+ }],
116
+ ...rest
117
+ }, children);
116
118
  }
117
119
 
118
120
  function Stack(_ref6) {
@@ -123,6 +125,23 @@ function Stack(_ref6) {
123
125
  style,
124
126
  ...rest
125
127
  } = _ref6;
128
+ return (
129
+ /*#__PURE__*/
130
+ // style must go first since we don't want justifyContent, alignItems overridden
131
+ React.createElement(_reactNative.View, {
132
+ style: [style, {
133
+ justifyContent,
134
+ alignItems
135
+ }],
136
+ ...rest
137
+ }, children)
138
+ );
139
+ }
140
+ //# sourceMappingURL=Layout.js.maplex-start",
141
+ alignItems = "flex-start",
142
+ style,
143
+ ...rest
144
+ } = _ref6;
126
145
  return (
127
146
  /*#__PURE__*/
128
147
  // style must go first since we don't want justifyContent, alignItems overridden
@@ -1 +1 @@
1
- {"version":3,"sources":["Layout.tsx"],"names":["Center","width","height","children","bgColor","style","rest","justifyContent","alignItems","backgroundColor","Circle","size","borderRadius","overflow","Square","Row","flexDirection","Spacer","top","right","bottom","left","paddingRight","paddingTop","paddingLeft","paddingBottom","Stack"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, StyleProp, ViewStyle } from \"react-native\";\n// @ts-ignore\nimport type { ViewStyleProp } from \"react-native/Libraries/StyleSheet/StyleSheet\";\n\nexport function Center({\n width = 240,\n height = 200,\n children,\n bgColor,\n style,\n ...rest\n}: {\n width: number;\n height: number;\n bgColor: string;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n}) {\n return (\n <View\n style={[\n {\n justifyContent: \"center\",\n alignItems: \"center\",\n width,\n height,\n backgroundColor: bgColor,\n },\n style,\n ]}\n {...rest}\n >\n {children}\n </View>\n );\n}\n\nexport function Circle({\n size = 50,\n bgColor,\n children,\n style,\n ...rest\n}: {\n size: number;\n bgColor: string;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n}) {\n const borderRadius = 1000;\n return (\n <Center\n width={size}\n height={size}\n bgColor={bgColor}\n style={[\n style,\n { backgroundColor: bgColor, borderRadius, overflow: \"hidden\" },\n ]}\n {...rest}\n >\n {children}\n </Center>\n );\n}\n\nexport function Square({\n size = 50,\n bgColor,\n children,\n style,\n ...rest\n}: {\n size: number;\n bgColor: string;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n}) {\n return (\n <Center\n style={style}\n width={size}\n height={size}\n bgColor={bgColor}\n {...rest}\n >\n {children}\n </Center>\n );\n}\n\nexport function Row({\n justifyContent,\n alignItems,\n children,\n style,\n ...rest\n}: {\n alignItems: ViewStyleProp.alignItems;\n justifyContent: ViewStyleProp.justifyContent;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n}) {\n return (\n <View\n style={[\n style, // style goes first b/c we can't override these\n {\n alignItems,\n flexDirection: \"row\",\n justifyContent: justifyContent,\n },\n ]}\n {...rest}\n >\n {children}\n </View>\n );\n}\n\nexport function Spacer({\n top = 8,\n right = 8,\n bottom = 8,\n left = 8,\n children,\n style,\n ...rest\n}: {\n top?: number;\n right?: number;\n left?: number;\n bottom?: number;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n}) {\n return (\n <View\n style={[\n style,\n {\n paddingRight: right,\n paddingTop: top,\n paddingLeft: left,\n paddingBottom: bottom,\n },\n ]}\n {...rest}\n >\n {children}\n </View>\n );\n}\n\nexport function Stack({\n children,\n justifyContent = \"flex-start\",\n alignItems = \"flex-start\",\n style,\n ...rest\n}: {\n justifyContent: ViewStyleProp.justifyContent;\n alignItems: ViewStyleProp.alignItems;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n}) {\n return (\n // style must go first since we don't want justifyContent, alignItems overridden\n <View style={[style, { justifyContent, alignItems }]} {...rest}>\n {children}\n </View>\n );\n}\n"]}
1
+ {"version":3,"sources":["Layout.js"],"names":["Center","width","height","children","bgColor","style","rest","React","createElement","View","justifyContent","alignItems","backgroundColor","Circle","size","borderRadius","overflow","Square","Row","flexDirection","Spacer","top","right","bottom","left","paddingRight","paddingTop","paddingLeft","paddingBottom","Stack"],"mappings":";;;;;;;;;;;;AAAA;;AACA;;;;;;AACO,SAASA,MAAT,OAAkF;AAAA,MAAlE;AAAEC,IAAAA,KAAK,GAAG,GAAV;AAAeC,IAAAA,MAAM,GAAG,GAAxB;AAA6BC,IAAAA,QAA7B;AAAuCC,IAAAA,OAAvC;AAAgDC,IAAAA,KAAhD;AAAuD,OAAGC;AAA1D,GAAkE;AACrF,sBAAQC,KAAK,CAACC,aAAN,CAAoBC,iBAApB,EAA0B;AAAEJ,IAAAA,KAAK,EAAE,CACnC;AACIK,MAAAA,cAAc,EAAE,QADpB;AAEIC,MAAAA,UAAU,EAAE,QAFhB;AAGIV,MAAAA,KAHJ;AAIIC,MAAAA,MAJJ;AAKIU,MAAAA,eAAe,EAAER;AALrB,KADmC,EAQnCC,KARmC,CAAT;AAS3B,OAAGC;AATwB,GAA1B,EASUH,QATV,CAAR;AAUH;;AACM,SAASU,MAAT,QAAkE;AAAA,MAAlD;AAAEC,IAAAA,IAAI,GAAG,EAAT;AAAaV,IAAAA,OAAb;AAAsBD,IAAAA,QAAtB;AAAgCE,IAAAA,KAAhC;AAAuC,OAAGC;AAA1C,GAAkD;AACrE,QAAMS,YAAY,GAAG,IAArB;AACA,sBAAQR,KAAK,CAACC,aAAN,CAAoBR,MAApB,EAA4B;AAAEC,IAAAA,KAAK,EAAEa,IAAT;AAAeZ,IAAAA,MAAM,EAAEY,IAAvB;AAA6BV,IAAAA,OAAO,EAAEA,OAAtC;AAA+CC,IAAAA,KAAK,EAAE,CAClFA,KADkF,EAElF;AAAEO,MAAAA,eAAe,EAAER,OAAnB;AAA4BW,MAAAA,YAA5B;AAA0CC,MAAAA,QAAQ,EAAE;AAApD,KAFkF,CAAtD;AAG7B,OAAGV;AAH0B,GAA5B,EAGUH,QAHV,CAAR;AAIH;;AACM,SAASc,MAAT,QAAkE;AAAA,MAAlD;AAAEH,IAAAA,IAAI,GAAG,EAAT;AAAaV,IAAAA,OAAb;AAAsBD,IAAAA,QAAtB;AAAgCE,IAAAA,KAAhC;AAAuC,OAAGC;AAA1C,GAAkD;AACrE,sBAAQC,KAAK,CAACC,aAAN,CAAoBR,MAApB,EAA4B;AAAEK,IAAAA,KAAK,EAAEA,KAAT;AAAgBJ,IAAAA,KAAK,EAAEa,IAAvB;AAA6BZ,IAAAA,MAAM,EAAEY,IAArC;AAA2CV,IAAAA,OAAO,EAAEA,OAApD;AAA6D,OAAGE;AAAhE,GAA5B,EAAoGH,QAApG,CAAR;AACH;;AACM,SAASe,GAAT,QAAuE;AAAA,MAA1D;AAAER,IAAAA,cAAF;AAAkBC,IAAAA,UAAlB;AAA8BR,IAAAA,QAA9B;AAAwCE,IAAAA,KAAxC;AAA+C,OAAGC;AAAlD,GAA0D;AAC1E,sBAAQC,KAAK,CAACC,aAAN,CAAoBC,iBAApB,EAA0B;AAAEJ,IAAAA,KAAK,EAAE,CACnCA,KADmC,EAEnC;AACIM,MAAAA,UADJ;AAEIQ,MAAAA,aAAa,EAAE,KAFnB;AAGIT,MAAAA,cAAc,EAAEA;AAHpB,KAFmC,CAAT;AAO3B,OAAGJ;AAPwB,GAA1B,EAOUH,QAPV,CAAR;AAQH;;AACM,SAASiB,MAAT,QAAwF;AAAA,MAAxE;AAAEC,IAAAA,GAAG,GAAG,CAAR;AAAWC,IAAAA,KAAK,GAAG,CAAnB;AAAsBC,IAAAA,MAAM,GAAG,CAA/B;AAAkCC,IAAAA,IAAI,GAAG,CAAzC;AAA4CrB,IAAAA,QAA5C;AAAsDE,IAAAA,KAAtD;AAA6D,OAAGC;AAAhE,GAAwE;AAC3F,sBAAQC,KAAK,CAACC,aAAN,CAAoBC,iBAApB,EAA0B;AAAEJ,IAAAA,KAAK,EAAE,CACnCA,KADmC,EAEnC;AACIoB,MAAAA,YAAY,EAAEH,KADlB;AAEII,MAAAA,UAAU,EAAEL,GAFhB;AAGIM,MAAAA,WAAW,EAAEH,IAHjB;AAIII,MAAAA,aAAa,EAAEL;AAJnB,KAFmC,CAAT;AAQ3B,OAAGjB;AARwB,GAA1B,EAQUH,QARV,CAAR;AASH;;AACM,SAAS0B,KAAT,QAAuG;AAAA,MAAxF;AAAE1B,IAAAA,QAAF;AAAYO,IAAAA,cAAc,GAAG,YAA7B;AAA2CC,IAAAA,UAAU,GAAG,YAAxD;AAAsEN,IAAAA,KAAtE;AAA6E,OAAGC;AAAhF,GAAwF;AAC1G;AAAA;AACA;AACAC,IAAAA,KAAK,CAACC,aAAN,CAAoBC,iBAApB,EAA0B;AAAEJ,MAAAA,KAAK,EAAE,CAACA,KAAD,EAAQ;AAAEK,QAAAA,cAAF;AAAkBC,QAAAA;AAAlB,OAAR,CAAT;AAAkD,SAAGL;AAArD,KAA1B,EAAuFH,QAAvF;AAFA;AAGH","sourcesContent":["import * as React from \"react\";\nimport { View } from \"react-native\";\nexport function Center({ width = 240, height = 200, children, bgColor, style, ...rest }) {\n return (React.createElement(View, { style: [\n {\n justifyContent: \"center\",\n alignItems: \"center\",\n width,\n height,\n backgroundColor: bgColor,\n },\n style,\n ], ...rest }, children));\n}\nexport function Circle({ size = 50, bgColor, children, style, ...rest }) {\n const borderRadius = 1000;\n return (React.createElement(Center, { width: size, height: size, bgColor: bgColor, style: [\n style,\n { backgroundColor: bgColor, borderRadius, overflow: \"hidden\" },\n ], ...rest }, children));\n}\nexport function Square({ size = 50, bgColor, children, style, ...rest }) {\n return (React.createElement(Center, { style: style, width: size, height: size, bgColor: bgColor, ...rest }, children));\n}\nexport function Row({ justifyContent, alignItems, children, style, ...rest }) {\n return (React.createElement(View, { style: [\n style,\n {\n alignItems,\n flexDirection: \"row\",\n justifyContent: justifyContent,\n },\n ], ...rest }, children));\n}\nexport function Spacer({ top = 8, right = 8, bottom = 8, left = 8, children, style, ...rest }) {\n return (React.createElement(View, { style: [\n style,\n {\n paddingRight: right,\n paddingTop: top,\n paddingLeft: left,\n paddingBottom: bottom,\n },\n ], ...rest }, children));\n}\nexport function Stack({ children, justifyContent = \"flex-start\", alignItems = \"flex-start\", style, ...rest }) {\n return (\n // style must go first since we don't want justifyContent, alignItems overridden\n React.createElement(View, { style: [style, { justifyContent, alignItems }], ...rest }, children));\n}\n"]}
@@ -107,10 +107,12 @@ const Picker = _ref => {
107
107
  viewStyles,
108
108
  textStyles
109
109
  } = (0, _utilities.extractStyles)(style);
110
+ const additionalBorderStyles = ["backgroundColor"];
111
+ const additionalMarginStyles = ["bottom", "height", "left", "maxHeight", "maxWidth", "minHeight", "minWidth", "overflow", "position", "right", "top", "width", "zIndex"];
110
112
  const {
111
- marginStyles,
112
- borderStyles: extractedBorderStyles
113
- } = (0, _utilities.extractBorderAndMarginStyles)(viewStyles, ["backgroundColor"]);
113
+ borderStyles: extractedBorderStyles,
114
+ marginStyles: extractedMarginStyles
115
+ } = (0, _utilities.extractBorderAndMarginStyles)(viewStyles, additionalBorderStyles, additionalMarginStyles);
114
116
  const borderStyles = { ...{ ...(type === "solid" ? {
115
117
  borderTopLeftRadius: 5,
116
118
  borderTopRightRadius: 5,
@@ -133,14 +135,12 @@ const Picker = _ref => {
133
135
  backgroundColor: disabledColor
134
136
  } : {})
135
137
  };
136
- const platform = _reactNative.Platform.OS;
137
- const stylesWithoutBordersAndMargins = { ...{
138
- height: 60,
139
- width: "100%",
140
- flex: platform === "web" ? undefined : 1
141
- },
142
- ...(0, _lodash.omit)(viewStyles, [..._utilities.borderStyleNames, ..._utilities.marginStyleNames, "backgroundColor"])
138
+ const marginStyles = {
139
+ height: 60,
140
+ ...extractedMarginStyles
143
141
  };
142
+ const platform = _reactNative.Platform.OS;
143
+ const stylesWithoutBordersAndMargins = (0, _lodash.omit)(viewStyles, [..._utilities.borderStyleNames, ..._utilities.marginStyleNames, ...additionalBorderStyles, ...additionalMarginStyles]);
144
144
  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
145
  const labelText = label ? /*#__PURE__*/React.createElement(_reactNative.Text, {
146
146
  style: {
@@ -169,14 +169,25 @@ const Picker = _ref => {
169
169
  marginLeft: 8
170
170
  }
171
171
  }) : null;
172
- const width = stylesWithoutBordersAndMargins === null || stylesWithoutBordersAndMargins === void 0 ? void 0 : stylesWithoutBordersAndMargins.width;
173
172
  const textAlign = textStyles === null || textStyles === void 0 ? void 0 : textStyles.textAlign;
174
- const paddingLeft = leftIconOutset && (!textAlign || textAlign === "left" || textAlign === "justify") ? iconSize + 4 : 0;
173
+
174
+ const calculateLeftPadding = () => {
175
+ if (leftIconOutset) {
176
+ if (textAlign === "center") {
177
+ return iconSize - Math.abs(8 - iconSize);
178
+ }
179
+
180
+ return iconSize + 8;
181
+ }
182
+
183
+ return 0;
184
+ };
185
+
175
186
  const assistiveTextLabel = assistiveText ? /*#__PURE__*/React.createElement(_reactNative.Text, {
176
187
  style: {
177
188
  textAlign,
178
- width,
179
- paddingLeft,
189
+ width: "100%",
190
+ paddingLeft: calculateLeftPadding(),
180
191
  color: unstyledColor,
181
192
  fontSize: 12,
182
193
  paddingTop: 4
@@ -259,13 +270,20 @@ exports.default = _default;
259
270
 
260
271
  const styles = _reactNative.StyleSheet.create({
261
272
  marginsContainer: {
262
- alignSelf: "stretch"
273
+ alignSelf: "stretch",
274
+ alignItems: "center"
263
275
  },
264
276
  touchableContainer: {
277
+ flex: 1,
278
+ height: "100%",
279
+ width: "100%",
265
280
  alignSelf: "stretch",
266
281
  alignItems: "center"
267
282
  },
268
283
  outsetContainer: {
284
+ flex: 1,
285
+ height: "100%",
286
+ width: "100%",
269
287
  flexDirection: "row",
270
288
  alignItems: "center",
271
289
  justifyContent: "space-between"
@@ -273,6 +291,7 @@ const styles = _reactNative.StyleSheet.create({
273
291
  insetContainer: {
274
292
  flex: 1,
275
293
  height: "100%",
294
+ width: "100%",
276
295
  flexDirection: "row",
277
296
  alignItems: "center",
278
297
  justifyContent: "space-between",
@@ -311,4 +330,10 @@ const styles = _reactNative.StyleSheet.create({
311
330
  width: "100%"
312
331
  }
313
332
  });
333
+ //# sourceMappingURL=Picker.js.mapft: 0,
334
+ right: 0,
335
+ bottom: 0,
336
+ width: "100%"
337
+ }
338
+ });
314
339
  //# 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","marginStyles","borderStyles","extractedBorderStyles","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderTopWidth","borderRightWidth","borderLeftWidth","borderBottomWidth","borderColor","borderStyle","backgroundColor","platform","Platform","OS","stylesWithoutBordersAndMargins","height","width","flex","undefined","borderStyleNames","marginStyleNames","selectedLabel","find","labelText","textAlign","color","fontSize","paddingBottom","leftIconOutset","leftIcon","marginRight","marginLeft","rightIcon","paddingLeft","assistiveTextLabel","paddingTop","primaryTextStyle","identity","handleValueChange","newValue","itemIndex","styles","marginsContainer","touchableContainer","outsetContainer","insetContainer","primaryTextContainer","iosPicker","divider","iosSafeArea","iosButton","iosNativePicker","nonIosPicker","StyleSheet","create","alignSelf","alignItems","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 { marginStyles, borderStyles: extractedBorderStyles } =\n extractBorderAndMarginStyles(viewStyles, [\"backgroundColor\"]);\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 platform = Platform.OS;\n\n const stylesWithoutBordersAndMargins = {\n ...{\n height: 60,\n width: \"100%\",\n flex: platform === \"web\" ? undefined : 1,\n },\n ...omit(viewStyles, [\n ...borderStyleNames,\n ...marginStyleNames,\n \"backgroundColor\",\n ]),\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 width = stylesWithoutBordersAndMargins?.width;\n\n const textAlign = textStyles?.textAlign;\n\n const paddingLeft =\n leftIconOutset &&\n (!textAlign || textAlign === \"left\" || textAlign === \"justify\")\n ? iconSize + 4\n : 0;\n\n const assistiveTextLabel = assistiveText ? (\n <Text\n style={{\n textAlign,\n width,\n paddingLeft,\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 },\n touchableContainer: {\n alignSelf: \"stretch\",\n alignItems: \"center\",\n },\n outsetContainer: {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n },\n insetContainer: {\n flex: 1,\n height: \"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","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":";;;;;;;AAAA;;AACA;;AAQA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AAGA;;;;;;;;AAkCA,SAASA,gBAAT,CAA0BC,OAA1B,EAA2E;AACzE,MAAIA,OAAO,CAACC,MAAR,KAAmB,CAAvB,EAA0B;AACxB,WAAO,EAAP;AACD;;AAED,MAAI,OAAOD,OAAO,CAAC,CAAD,CAAd,MAAuB,YAAY,QAAnC,CAAJ,EAAkD;AAChD,WAAQA,OAAD,CAAsBE,GAAtB,CAA2BC,MAAD,KAAa;AAC5CC,MAAAA,KAAK,EAAEC,MAAM,CAACF,MAAD,CAD+B;AAE5CG,MAAAA,KAAK,EAAED,MAAM,CAACF,MAAD;AAF+B,KAAb,CAA1B,CAAP;AAID;;AAED,MACE,sBAASH,OAAO,CAAC,CAAD,CAAhB,KACAA,OAAO,CAAC,CAAD,CAAP,CAAWM,KAAX,KAAqB,IADrB,IAEAN,OAAO,CAAC,CAAD,CAAP,CAAWI,KAAX,KAAqB,IAHvB,EAIE;AACA,WAAQJ,OAAD,CAA4BE,GAA5B,CAAiCC,MAAD,IAAY;AACjD,aAAO;AACLC,QAAAA,KAAK,EAAEC,MAAM,CAACF,MAAM,CAACC,KAAR,CADR;AAELE,QAAAA,KAAK,EAAED,MAAM,CAACF,MAAM,CAACG,KAAR;AAFR,OAAP;AAID,KALM,CAAP;AAMD;;AAED,QAAM,IAAIC,KAAJ,CACJ,8GADI,CAAN;AAGD;;AAED,MAAMC,aAAa,GAAG,wBAAtB;AACA,MAAMC,aAAa,GAAG,oBAAtB;AACA,MAAMC,UAAU,GAAG,uBAAnB;;AAEA,MAAMC,MAA6B,GAAG,QAoBhC;AAAA;;AAAA,MApBiC;AACrCC,IAAAA,KADqC;AAErCZ,IAAAA,OAAO,GAAG,EAF2B;AAGrCa,IAAAA,aAHqC;AAIrCC,IAAAA,YAJqC;AAKrCC,IAAAA,IALqC;AAMrCC,IAAAA,KANqC;AAOrCC,IAAAA,WAPqC;AAQrCX,IAAAA,KARqC;AASrCY,IAAAA,QAAQ,GAAG,KAT0B;AAUrCC,IAAAA,KAVqC;AAWrCC,IAAAA,aAXqC;AAYrChB,IAAAA,KAZqC;AAarCiB,IAAAA,SAAS,GAAGb,aAbyB;AAcrCc,IAAAA,QAAQ,GAAG,EAd0B;AAerCC,IAAAA,YAAY,GAAG,OAfsB;AAgBrCC,IAAAA,YAhBqC;AAiBrCC,IAAAA,oBAAoB,GAAGjB,aAjBc;AAkBrCkB,IAAAA,aAlBqC;AAmBrCC,IAAAA,IAAI,GAAG;AAnB8B,GAoBjC;AACJ,QAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoCC,KAAK,CAACC,QAAN,CACxCzB,KAAK,IAAIQ,YAD+B,CAA1C;AAIA,QAAM,CAACkB,aAAD,EAAgBC,mBAAhB,IAAuCH,KAAK,CAACI,UAAN,CAC1CC,KAAD,IAAW,CAACA,KAD+B,EAE3C,KAF2C,CAA7C;AAKAL,EAAAA,KAAK,CAACM,SAAN,CAAgB,MAAM;AACpB,QAAI9B,KAAK,IAAI,IAAb,EAAmB;AACjBuB,MAAAA,gBAAgB,CAACvB,KAAD,CAAhB;AACD;AACF,GAJD,EAIG,CAACA,KAAD,CAJH;AAMAwB,EAAAA,KAAK,CAACM,SAAN,CAAgB,MAAM;AACpB,QAAItB,YAAY,IAAI,IAApB,EAA0B;AACxBe,MAAAA,gBAAgB,CAACf,YAAD,CAAhB;AACD;AACF,GAJD,EAIG,CAACA,YAAD,CAJH;AAMA,QAAMuB,iBAAiB,GAAGtC,gBAAgB,CAACC,OAAD,CAA1C;AAEA,QAAMsC,aAAa,GAAGrB,WAAW,GAC7B,CAAC;AAAEX,IAAAA,KAAK,EAAEW,WAAT;AAAsBb,IAAAA,KAAK,EAAEa;AAA7B,GAAD,EAA6C,GAAGoB,iBAAhD,CAD6B,GAE7BA,iBAFJ;AAIA,QAAM;AAAEE,IAAAA;AAAF,MAAapB,KAAnB;AAEA,QAAM;AAAEqB,IAAAA,UAAF;AAAcC,IAAAA;AAAd,MAA6B,8BAAczB,KAAd,CAAnC;AAEA,QAAM0B,sBAAsB,GAAG,CAAC,iBAAD,CAA/B;AAEA,QAAMC,sBAAsB,GAAG,CAC7B,QAD6B,EAE7B,QAF6B,EAG7B,MAH6B,EAI7B,WAJ6B,EAK7B,UAL6B,EAM7B,WAN6B,EAO7B,UAP6B,EAQ7B,UAR6B,EAS7B,UAT6B,EAU7B,OAV6B,EAW7B,KAX6B,EAY7B,OAZ6B,EAa7B,QAb6B,CAA/B;AAgBA,QAAM;AACJC,IAAAA,YAAY,EAAEC,qBADV;AAEJC,IAAAA,YAAY,EAAEC;AAFV,MAGF,6CACFP,UADE,EAEFE,sBAFE,EAGFC,sBAHE,CAHJ;AASA,QAAMC,YAAY,GAAG,EACnB,GAAG,EACD,IAAIjB,IAAI,KAAK,OAAT,GACA;AACEqB,QAAAA,mBAAmB,EAAE,CADvB;AAEEC,QAAAA,oBAAoB,EAAE,CAFxB;AAGEC,QAAAA,uBAAuB,EAAE,CAH3B;AAIEC,QAAAA,sBAAsB,EAAE,CAJ1B;AAKEC,QAAAA,cAAc,EAAE,CALlB;AAMEC,QAAAA,gBAAgB,EAAE,CANpB;AAOEC,QAAAA,eAAe,EAAE;AAPnB,OADA,GAUA,EAVJ,CADC;AAYDC,MAAAA,iBAAiB,EAAE,CAZlB;AAaDC,MAAAA,WAAW,EAAEhD,aAbZ;AAcDiD,MAAAA,WAAW,EAAE;AAdZ,KADgB;AAiBnB,OAAGZ,qBAjBgB;AAkBnB,QAAIjC,KAAK,GAAG;AAAE4C,MAAAA,WAAW,EAAE9C;AAAf,KAAH,GAAiC,EAA1C,CAlBmB;AAmBnB,QAAIQ,QAAQ,GACR;AAAEsC,MAAAA,WAAW,EAAE,aAAf;AAA8BE,MAAAA,eAAe,EAAEjD;AAA/C,KADQ,GAER,EAFJ;AAnBmB,GAArB;AAwBA,QAAMqC,YAAY,GAAG;AACnBa,IAAAA,MAAM,EAAE,EADW;AAEnB,OAAGZ;AAFgB,GAArB;AAKA,QAAMa,QAAQ,GAAGC,sBAASC,EAA1B;AAEA,QAAMC,8BAA8B,GAAG,kBAAKvB,UAAL,EAAiB,CACtD,GAAGwB,2BADmD,EAEtD,GAAGC,2BAFmD,EAGtD,GAAGvB,sBAHmD,EAItD,GAAGC,sBAJmD,CAAjB,CAAvC;AAOA,QAAMuB,aAAa,GACjBtC,aAAa,6BACXU,aAAD,CAA6C6B,IAA7C,CACEhE,MAAD,IAAYA,MAAM,CAACG,KAAP,KAAiBsB,aAD9B,CADY,0CACZ,MAEExB,KAHU,qDAIXwB,aAJW,CADf;AAOA,QAAMwC,SAAS,GAAGhE,KAAK,gBACrB,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE;AACLiE,MAAAA,SAAS,EAAE5B,UAAU,CAAC4B,SADjB;AAELC,MAAAA,KAAK,EAAE9D,aAFF;AAGL+D,MAAAA,QAAQ,EAAE,EAHL;AAILC,MAAAA,aAAa,EAAE;AAJV;AADT,KAQGpE,KARH,CADqB,GAWnB,IAXJ;AAaA,QAAMqE,cAAc,GAAGlD,YAAY,KAAK,QAAxC;AAEA,QAAMmD,QAAQ,GAAGlD,YAAY,gBAC3B,oBAAC,IAAD;AACE,IAAA,IAAI,EAAEA,YADR;AAEE,IAAA,KAAK,EAAEN,QAAQ,GAAGV,aAAH,GAAmBa,SAFpC;AAGE,IAAA,IAAI,EAAEC,QAHR;AAIE,IAAA,KAAK,EAAE;AACLqD,MAAAA,WAAW,EAAE,CADR;AAELC,MAAAA,UAAU,EAAE;AAFP;AAJT,IAD2B,GAUzB,IAVJ;AAYA,QAAMC,SAAS,GAAGnD,aAAa,gBAC7B,oBAAC,IAAD;AACE,IAAA,IAAI,EAAEA,aADR;AAEE,IAAA,KAAK,EAAER,QAAQ,GAAGV,aAAH,GAAmBa,SAFpC;AAGE,IAAA,IAAI,EAAEC,QAHR;AAIE,IAAA,KAAK,EAAE;AACLqD,MAAAA,WAAW,EAAE,CAAC,EADT;AAELC,MAAAA,UAAU,EAAE;AAFP;AAJT,IAD6B,GAU3B,IAVJ;AAYA,QAAMP,SAAS,GAAG5B,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAE4B,SAA9B;;AAEA,QAAMS,oBAAoB,GAAG,MAAM;AACjC,QAAIL,cAAJ,EAAoB;AAClB,UAAIJ,SAAS,KAAK,QAAlB,EAA4B;AAC1B,eAAO/C,QAAQ,GAAGyD,IAAI,CAACC,GAAL,CAAS,IAAI1D,QAAb,CAAlB;AACD;;AAED,aAAOA,QAAQ,GAAG,CAAlB;AACD;;AAED,WAAO,CAAP;AACD,GAVD;;AAYA,QAAM2D,kBAAkB,GAAG7D,aAAa,gBACtC,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE;AACLiD,MAAAA,SADK;AAELa,MAAAA,KAAK,EAAE,MAFF;AAGLC,MAAAA,WAAW,EAAEL,oBAAoB,EAH5B;AAILR,MAAAA,KAAK,EAAE9D,aAJF;AAKL+D,MAAAA,QAAQ,EAAE,EALL;AAMLa,MAAAA,UAAU,EAAE;AANP;AADT,KAUGhE,aAVH,CADsC,GAapC,IAbJ;AAeA,QAAMiE,gBAAgB,GAAG;AACvBf,IAAAA,KAAK,EAAE9D,aADgB;AAEvB+D,IAAAA,QAAQ,EAAE,EAFa;AAGvB,OAAG,oBAAO9B,UAAP,EAAmB6C,gBAAnB,CAHoB;AAIvB,QAAIrE,WAAW,KAAKW,aAAhB,GAAgC;AAAE0C,MAAAA,KAAK,EAAE7C;AAAT,KAAhC,GAAkE,EAAtE,CAJuB;AAKvB,QAAIP,QAAQ,GAAG;AAAEoD,MAAAA,KAAK,EAAE9D;AAAT,KAAH,GAA8B,EAA1C;AALuB,GAAzB;;AAQA,QAAM+E,iBAAiB,GAAG,CAACC,QAAD,EAAmBC,SAAnB,KAAyC;AACjE,QAAI,CAACxE,WAAD,IAAgBwE,SAAS,GAAG,CAAhC,EAAmC;AACjC5E,MAAAA,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAG2E,QAAH,EAAaC,SAAb,CAAb;AACD;;AACD5D,IAAAA,gBAAgB,CAAC2D,QAAD,CAAhB;AACD,GALD;;AAOA;AAAA;;AACE;AACA,wBAAC,iBAAD;AAAM,MAAA,KAAK,EAAE,CAACE,MAAM,CAACC,gBAAR,EAA0B7C,YAA1B;AAAb,oBAEE,oBAAC,kBAAD;AACE,MAAA,QAAQ,EAAE5B,QADZ;AAEE,MAAA,OAAO,EAAEe,mBAFX;AAGE,MAAA,KAAK,EAAEyD,MAAM,CAACE;AAHhB,oBAME,oBAAC,iBAAD;AACE,MAAA,aAAa,EAAC,MADhB;AAEE,MAAA,KAAK,EAAE,CACLF,MAAM,CAACG,eADF,EAEL9B,8BAFK,EAGL,CAACU,cAAD,GAAmB7B,YAAnB,GAA2D,EAHtD;AAFT,OAQG8B,QARH,eAWE,oBAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACLgB,MAAM,CAACI,cADF,EAELrB,cAAc,GAAI7B,YAAJ,GAA4C,EAFrD;AADT,oBAOE,oBAAC,iBAAD;AAAM,MAAA,KAAK,EAAE8C,MAAM,CAACK;AAApB,OACG3B,SADH,eAGE,oBAAC,iBAAD;AAAM,MAAA,KAAK,EAAEiB;AAAb,OACGhF,MAAM,CAAC6D,aAAD,aAACA,aAAD,cAACA,aAAD,GAAkBjD,WAAlB,CADT,CAHF,CAPF,EAeG4D,SAfH,CAXF,CANF,EAmCGI,kBAnCH,CAFF,EAyCGrB,QAAQ,KAAK,KAAb,IAAsB5B,aAAtB,gBACC,oBAAC,eAAD,qBACE,oBAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACL0D,MAAM,CAACM,SADF,EAEL;AACEtC,QAAAA,eAAe,EAAEnB,MAAM,CAAC0D;AAD1B,OAFK;AADT,oBAQE,oBAAC,wCAAD;AAAc,MAAA,KAAK,EAAEP,MAAM,CAACQ;AAA5B,oBACE,oBAAC,yBAAD;AACE,MAAA,IAAI,EAAEnF,IADR;AAEE,MAAA,IAAI,EAAC,MAFP;AAGE,MAAA,OAAO,EAAEkB,mBAHX;AAIE,MAAA,KAAK,EAAEyD,MAAM,CAACS;AAJhB,OAMG,OANH,CADF,eAUE,oBAAC,cAAD;AACE,MAAA,KAAK,EAAET,MAAM,CAACU,eADhB;AAEE,MAAA,aAAa,EAAExE,aAFjB;AAGE,MAAA,aAAa,EAAE2D;AAHjB,OAKIjD,aAAD,CAA6CpC,GAA7C,CAAkDC,MAAD,iBAChD,oBAAC,cAAD,CAAc,IAAd;AACE,MAAA,KAAK,EAAEA,MAAM,CAACC,KADhB;AAEE,MAAA,KAAK,EAAED,MAAM,CAACG,KAFhB;AAGE,MAAA,GAAG,EAAEH,MAAM,CAACG;AAHd,MADD,CALH,CAVF,CARF,CADF,CADD,GAoCG,IA7EN,EAgFGsD,QAAQ,KAAK,KAAb,gBACC,oBAAC,cAAD;AACE,MAAA,OAAO,EAAE,CAAC1C,QADZ;AAEE,MAAA,aAAa,EAAEU,aAFjB;AAGE,MAAA,aAAa,EAAE2D,iBAHjB;AAIE,MAAA,KAAK,EAAEG,MAAM,CAACW;AAJhB,OAMI/D,aAAD,CAA6CpC,GAA7C,CAAkDC,MAAD,iBAChD,oBAAC,cAAD,CAAc,IAAd;AACE,MAAA,KAAK,EAAEA,MAAM,CAACC,KADhB;AAEE,MAAA,KAAK,EAAED,MAAM,CAACG,KAFhB;AAGE,MAAA,GAAG,EAAEH,MAAM,CAACG;AAHd,MADD,CANH,CADD,GAeG,IA/FN;AAFF;AAoGD,CAnTD;;eAqTe,wBAAUK,MAAV,C;;;;AAEf,MAAM+E,MAAM,GAAGY,wBAAWC,MAAX,CAAkB;AAC/BZ,EAAAA,gBAAgB,EAAE;AAChBa,IAAAA,SAAS,EAAE,SADK;AAEhBC,IAAAA,UAAU,EAAE;AAFI,GADa;AAK/Bb,EAAAA,kBAAkB,EAAE;AAClBc,IAAAA,IAAI,EAAE,CADY;AAElB/C,IAAAA,MAAM,EAAE,MAFU;AAGlBuB,IAAAA,KAAK,EAAE,MAHW;AAIlBsB,IAAAA,SAAS,EAAE,SAJO;AAKlBC,IAAAA,UAAU,EAAE;AALM,GALW;AAY/BZ,EAAAA,eAAe,EAAE;AACfa,IAAAA,IAAI,EAAE,CADS;AAEf/C,IAAAA,MAAM,EAAE,MAFO;AAGfuB,IAAAA,KAAK,EAAE,MAHQ;AAIfyB,IAAAA,aAAa,EAAE,KAJA;AAKfF,IAAAA,UAAU,EAAE,QALG;AAMfG,IAAAA,cAAc,EAAE;AAND,GAZc;AAoB/Bd,EAAAA,cAAc,EAAE;AACdY,IAAAA,IAAI,EAAE,CADQ;AAEd/C,IAAAA,MAAM,EAAE,MAFM;AAGduB,IAAAA,KAAK,EAAE,MAHO;AAIdyB,IAAAA,aAAa,EAAE,KAJD;AAKdF,IAAAA,UAAU,EAAE,QALE;AAMdG,IAAAA,cAAc,EAAE,eANF;AAOdzB,IAAAA,WAAW,EAAE,EAPC;AAQd0B,IAAAA,YAAY,EAAE;AARA,GApBe;AA8B/Bd,EAAAA,oBAAoB,EAAE;AACpBW,IAAAA,IAAI,EAAE;AADc,GA9BS;AAiC/BV,EAAAA,SAAS,EAAE;AACTc,IAAAA,QAAQ,EAAE,UADD;AAETC,IAAAA,MAAM,EAAE,CAFC;AAGTC,IAAAA,IAAI,EAAE,CAHG;AAITC,IAAAA,KAAK,EAAE,CAJE;AAKTN,IAAAA,aAAa,EAAE,KALN;AAMTC,IAAAA,cAAc,EAAE;AANP,GAjCoB;AAyC/BV,EAAAA,WAAW,EAAE;AACXxC,IAAAA,eAAe,EAAE,OADN;AAEXiD,IAAAA,aAAa,EAAE,QAFJ;AAGXzB,IAAAA,KAAK,EAAE;AAHI,GAzCkB;AA8C/BiB,EAAAA,SAAS,EAAE;AACTK,IAAAA,SAAS,EAAE;AADF,GA9CoB;AAiD/BJ,EAAAA,eAAe,EAAE;AACf1C,IAAAA,eAAe,EAAE;AADF,GAjDc;AAoD/B2C,EAAAA,YAAY,EAAE;AACZa,IAAAA,OAAO,EAAE,CADG;AAEZJ,IAAAA,QAAQ,EAAE,UAFE;AAGZK,IAAAA,GAAG,EAAE,CAHO;AAIZH,IAAAA,IAAI,EAAE,CAJM;AAKZC,IAAAA,KAAK,EAAE,CALK;AAMZF,IAAAA,MAAM,EAAE,CANI;AAOZ7B,IAAAA,KAAK,EAAE;AAPK;AApDiB,CAAlB,CAAf","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"]}
@@ -85,10 +85,12 @@ const Picker = _ref => {
85
85
  viewStyles,
86
86
  textStyles
87
87
  } = extractStyles(style);
88
+ const additionalBorderStyles = ["backgroundColor"];
89
+ const additionalMarginStyles = ["bottom", "height", "left", "maxHeight", "maxWidth", "minHeight", "minWidth", "overflow", "position", "right", "top", "width", "zIndex"];
88
90
  const {
89
- marginStyles,
90
- borderStyles: extractedBorderStyles
91
- } = extractBorderAndMarginStyles(viewStyles, ["backgroundColor"]);
91
+ borderStyles: extractedBorderStyles,
92
+ marginStyles: extractedMarginStyles
93
+ } = extractBorderAndMarginStyles(viewStyles, additionalBorderStyles, additionalMarginStyles);
92
94
  const borderStyles = { ...{ ...(type === "solid" ? {
93
95
  borderTopLeftRadius: 5,
94
96
  borderTopRightRadius: 5,
@@ -111,14 +113,12 @@ const Picker = _ref => {
111
113
  backgroundColor: disabledColor
112
114
  } : {})
113
115
  };
114
- const platform = Platform.OS;
115
- const stylesWithoutBordersAndMargins = { ...{
116
- height: 60,
117
- width: "100%",
118
- flex: platform === "web" ? undefined : 1
119
- },
120
- ...omit(viewStyles, [...borderStyleNames, ...marginStyleNames, "backgroundColor"])
116
+ const marginStyles = {
117
+ height: 60,
118
+ ...extractedMarginStyles
121
119
  };
120
+ const platform = Platform.OS;
121
+ const stylesWithoutBordersAndMargins = omit(viewStyles, [...borderStyleNames, ...marginStyleNames, ...additionalBorderStyles, ...additionalMarginStyles]);
122
122
  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);
123
123
  const labelText = label ? /*#__PURE__*/React.createElement(Text, {
124
124
  style: {
@@ -147,14 +147,25 @@ const Picker = _ref => {
147
147
  marginLeft: 8
148
148
  }
149
149
  }) : null;
150
- const width = stylesWithoutBordersAndMargins === null || stylesWithoutBordersAndMargins === void 0 ? void 0 : stylesWithoutBordersAndMargins.width;
151
150
  const textAlign = textStyles === null || textStyles === void 0 ? void 0 : textStyles.textAlign;
152
- const paddingLeft = leftIconOutset && (!textAlign || textAlign === "left" || textAlign === "justify") ? iconSize + 4 : 0;
151
+
152
+ const calculateLeftPadding = () => {
153
+ if (leftIconOutset) {
154
+ if (textAlign === "center") {
155
+ return iconSize - Math.abs(8 - iconSize);
156
+ }
157
+
158
+ return iconSize + 8;
159
+ }
160
+
161
+ return 0;
162
+ };
163
+
153
164
  const assistiveTextLabel = assistiveText ? /*#__PURE__*/React.createElement(Text, {
154
165
  style: {
155
166
  textAlign,
156
- width,
157
- paddingLeft,
167
+ width: "100%",
168
+ paddingLeft: calculateLeftPadding(),
158
169
  color: unstyledColor,
159
170
  fontSize: 12,
160
171
  paddingTop: 4
@@ -234,13 +245,20 @@ const Picker = _ref => {
234
245
  export default withTheme(Picker);
235
246
  const styles = StyleSheet.create({
236
247
  marginsContainer: {
237
- alignSelf: "stretch"
248
+ alignSelf: "stretch",
249
+ alignItems: "center"
238
250
  },
239
251
  touchableContainer: {
252
+ flex: 1,
253
+ height: "100%",
254
+ width: "100%",
240
255
  alignSelf: "stretch",
241
256
  alignItems: "center"
242
257
  },
243
258
  outsetContainer: {
259
+ flex: 1,
260
+ height: "100%",
261
+ width: "100%",
244
262
  flexDirection: "row",
245
263
  alignItems: "center",
246
264
  justifyContent: "space-between"
@@ -248,6 +266,7 @@ const styles = StyleSheet.create({
248
266
  insetContainer: {
249
267
  flex: 1,
250
268
  height: "100%",
269
+ width: "100%",
251
270
  flexDirection: "row",
252
271
  alignItems: "center",
253
272
  justifyContent: "space-between",
@@ -1 +1 @@
1
- {"version":3,"sources":["Picker.tsx"],"names":["React","View","StyleSheet","Text","Platform","omit","pickBy","identity","isObject","SafeAreaView","Picker","NativePicker","withTheme","Portal","Button","Touchable","extractStyles","extractBorderAndMarginStyles","borderStyleNames","marginStyleNames","normalizeOptions","options","length","map","option","label","String","value","Error","unstyledColor","disabledColor","errorColor","error","onValueChange","defaultValue","Icon","style","placeholder","disabled","theme","assistiveText","iconColor","iconSize","leftIconMode","leftIconName","placeholderTextColor","rightIconName","type","internalValue","setInternalValue","useState","pickerVisible","togglePickerVisible","useReducer","state","useEffect","normalizedOptions","pickerOptions","colors","viewStyles","textStyles","marginStyles","borderStyles","extractedBorderStyles","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderTopWidth","borderRightWidth","borderLeftWidth","borderBottomWidth","borderColor","borderStyle","backgroundColor","platform","OS","stylesWithoutBordersAndMargins","height","width","flex","undefined","selectedLabel","find","labelText","textAlign","color","fontSize","paddingBottom","leftIconOutset","leftIcon","marginRight","marginLeft","rightIcon","paddingLeft","assistiveTextLabel","paddingTop","primaryTextStyle","handleValueChange","newValue","itemIndex","styles","marginsContainer","touchableContainer","outsetContainer","insetContainer","primaryTextContainer","iosPicker","divider","iosSafeArea","iosButton","iosNativePicker","nonIosPicker","create","alignSelf","alignItems","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 { marginStyles, borderStyles: extractedBorderStyles } =\n extractBorderAndMarginStyles(viewStyles, [\"backgroundColor\"]);\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 platform = Platform.OS;\n\n const stylesWithoutBordersAndMargins = {\n ...{\n height: 60,\n width: \"100%\",\n flex: platform === \"web\" ? undefined : 1,\n },\n ...omit(viewStyles, [\n ...borderStyleNames,\n ...marginStyleNames,\n \"backgroundColor\",\n ]),\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 width = stylesWithoutBordersAndMargins?.width;\n\n const textAlign = textStyles?.textAlign;\n\n const paddingLeft =\n leftIconOutset &&\n (!textAlign || textAlign === \"left\" || textAlign === \"justify\")\n ? iconSize + 4\n : 0;\n\n const assistiveTextLabel = assistiveText ? (\n <Text\n style={{\n textAlign,\n width,\n paddingLeft,\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 },\n touchableContainer: {\n alignSelf: \"stretch\",\n alignItems: \"center\",\n },\n outsetContainer: {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n },\n insetContainer: {\n flex: 1,\n height: \"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":["React","View","StyleSheet","Text","Platform","omit","pickBy","identity","isObject","SafeAreaView","Picker","NativePicker","withTheme","Portal","Button","Touchable","extractStyles","extractBorderAndMarginStyles","borderStyleNames","marginStyleNames","normalizeOptions","options","length","map","option","label","String","value","Error","unstyledColor","disabledColor","errorColor","error","onValueChange","defaultValue","Icon","style","placeholder","disabled","theme","assistiveText","iconColor","iconSize","leftIconMode","leftIconName","placeholderTextColor","rightIconName","type","internalValue","setInternalValue","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","OS","stylesWithoutBordersAndMargins","selectedLabel","find","labelText","textAlign","color","fontSize","paddingBottom","leftIconOutset","leftIcon","marginRight","marginLeft","rightIcon","calculateLeftPadding","Math","abs","assistiveTextLabel","width","paddingLeft","paddingTop","primaryTextStyle","handleValueChange","newValue","itemIndex","styles","marginsContainer","touchableContainer","outsetContainer","insetContainer","primaryTextContainer","iosPicker","divider","iosSafeArea","iosButton","iosNativePicker","nonIosPicker","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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draftbit/core",
3
- "version": "44.1.11-ff48ef.0+ff48ef48",
3
+ "version": "44.1.11",
4
4
  "description": "Core (non-native) Components",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -41,7 +41,7 @@
41
41
  "dependencies": {
42
42
  "@date-io/date-fns": "^1.3.13",
43
43
  "@draftbit/react-theme-provider": "^2.1.1",
44
- "@draftbit/types": "^44.1.11-ff48ef.0+ff48ef48",
44
+ "@draftbit/types": "^44.1.0",
45
45
  "@material-ui/core": "^4.11.0",
46
46
  "@material-ui/pickers": "^3.2.10",
47
47
  "@react-native-community/slider": "4.1.7",
@@ -79,5 +79,5 @@
79
79
  ]
80
80
  ]
81
81
  },
82
- "gitHead": "ff48ef483c091b2b934c915e836e7911bc5ce3e5"
82
+ "gitHead": "87380be5633d1b1cf67115eb78fb8937e7be07f9"
83
83
  }
@@ -52,7 +52,23 @@ const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style,
52
52
  : normalizedOptions;
53
53
  const { colors } = theme;
54
54
  const { viewStyles, textStyles } = extractStyles(style);
55
- const { marginStyles, borderStyles: extractedBorderStyles } = extractBorderAndMarginStyles(viewStyles, ["backgroundColor"]);
55
+ const additionalBorderStyles = ["backgroundColor"];
56
+ const additionalMarginStyles = [
57
+ "bottom",
58
+ "height",
59
+ "left",
60
+ "maxHeight",
61
+ "maxWidth",
62
+ "minHeight",
63
+ "minWidth",
64
+ "overflow",
65
+ "position",
66
+ "right",
67
+ "top",
68
+ "width",
69
+ "zIndex",
70
+ ];
71
+ const { borderStyles: extractedBorderStyles, marginStyles: extractedMarginStyles, } = extractBorderAndMarginStyles(viewStyles, additionalBorderStyles, additionalMarginStyles);
56
72
  const borderStyles = {
57
73
  ...{
58
74
  ...(type === "solid"
@@ -76,19 +92,17 @@ const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style,
76
92
  ? { borderColor: "transparent", backgroundColor: disabledColor }
77
93
  : {}),
78
94
  };
79
- const platform = Platform.OS;
80
- const stylesWithoutBordersAndMargins = {
81
- ...{
82
- height: 60,
83
- width: "100%",
84
- flex: platform === "web" ? undefined : 1,
85
- },
86
- ...omit(viewStyles, [
87
- ...borderStyleNames,
88
- ...marginStyleNames,
89
- "backgroundColor",
90
- ]),
95
+ const marginStyles = {
96
+ height: 60,
97
+ ...extractedMarginStyles,
91
98
  };
99
+ const platform = Platform.OS;
100
+ const stylesWithoutBordersAndMargins = omit(viewStyles, [
101
+ ...borderStyleNames,
102
+ ...marginStyleNames,
103
+ ...additionalBorderStyles,
104
+ ...additionalMarginStyles,
105
+ ]);
92
106
  const selectedLabel = internalValue &&
93
107
  (pickerOptions.find((option) => option.value === internalValue)?.label ??
94
108
  internalValue);
@@ -107,16 +121,20 @@ const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style,
107
121
  marginRight: -10,
108
122
  marginLeft: 8,
109
123
  } })) : null;
110
- const width = stylesWithoutBordersAndMargins?.width;
111
124
  const textAlign = textStyles?.textAlign;
112
- const paddingLeft = leftIconOutset &&
113
- (!textAlign || textAlign === "left" || textAlign === "justify")
114
- ? iconSize + 4
115
- : 0;
125
+ const calculateLeftPadding = () => {
126
+ if (leftIconOutset) {
127
+ if (textAlign === "center") {
128
+ return iconSize - Math.abs(8 - iconSize);
129
+ }
130
+ return iconSize + 8;
131
+ }
132
+ return 0;
133
+ };
116
134
  const assistiveTextLabel = assistiveText ? (React.createElement(Text, { style: {
117
135
  textAlign,
118
- width,
119
- paddingLeft,
136
+ width: "100%",
137
+ paddingLeft: calculateLeftPadding(),
120
138
  color: unstyledColor,
121
139
  fontSize: 12,
122
140
  paddingTop: 4,
@@ -169,12 +187,19 @@ export default withTheme(Picker);
169
187
  const styles = StyleSheet.create({
170
188
  marginsContainer: {
171
189
  alignSelf: "stretch",
190
+ alignItems: "center",
172
191
  },
173
192
  touchableContainer: {
193
+ flex: 1,
194
+ height: "100%",
195
+ width: "100%",
174
196
  alignSelf: "stretch",
175
197
  alignItems: "center",
176
198
  },
177
199
  outsetContainer: {
200
+ flex: 1,
201
+ height: "100%",
202
+ width: "100%",
178
203
  flexDirection: "row",
179
204
  alignItems: "center",
180
205
  justifyContent: "space-between",
@@ -182,6 +207,7 @@ const styles = StyleSheet.create({
182
207
  insetContainer: {
183
208
  flex: 1,
184
209
  height: "100%",
210
+ width: "100%",
185
211
  flexDirection: "row",
186
212
  alignItems: "center",
187
213
  justifyContent: "space-between",
@@ -137,8 +137,32 @@ const Picker: React.FC<PickerProps> = ({
137
137
 
138
138
  const { viewStyles, textStyles } = extractStyles(style);
139
139
 
140
- const { marginStyles, borderStyles: extractedBorderStyles } =
141
- extractBorderAndMarginStyles(viewStyles, ["backgroundColor"]);
140
+ const additionalBorderStyles = ["backgroundColor"];
141
+
142
+ const additionalMarginStyles = [
143
+ "bottom",
144
+ "height",
145
+ "left",
146
+ "maxHeight",
147
+ "maxWidth",
148
+ "minHeight",
149
+ "minWidth",
150
+ "overflow",
151
+ "position",
152
+ "right",
153
+ "top",
154
+ "width",
155
+ "zIndex",
156
+ ];
157
+
158
+ const {
159
+ borderStyles: extractedBorderStyles,
160
+ marginStyles: extractedMarginStyles,
161
+ } = extractBorderAndMarginStyles(
162
+ viewStyles,
163
+ additionalBorderStyles,
164
+ additionalMarginStyles
165
+ );
142
166
 
143
167
  const borderStyles = {
144
168
  ...{
@@ -164,20 +188,19 @@ const Picker: React.FC<PickerProps> = ({
164
188
  : {}),
165
189
  };
166
190
 
191
+ const marginStyles = {
192
+ height: 60,
193
+ ...extractedMarginStyles,
194
+ };
195
+
167
196
  const platform = Platform.OS;
168
197
 
169
- const stylesWithoutBordersAndMargins = {
170
- ...{
171
- height: 60,
172
- width: "100%",
173
- flex: platform === "web" ? undefined : 1,
174
- },
175
- ...omit(viewStyles, [
176
- ...borderStyleNames,
177
- ...marginStyleNames,
178
- "backgroundColor",
179
- ]),
180
- };
198
+ const stylesWithoutBordersAndMargins = omit(viewStyles, [
199
+ ...borderStyleNames,
200
+ ...marginStyleNames,
201
+ ...additionalBorderStyles,
202
+ ...additionalMarginStyles,
203
+ ]);
181
204
 
182
205
  const selectedLabel =
183
206
  internalValue &&
@@ -225,22 +248,26 @@ const Picker: React.FC<PickerProps> = ({
225
248
  />
226
249
  ) : null;
227
250
 
228
- const width = stylesWithoutBordersAndMargins?.width;
229
-
230
251
  const textAlign = textStyles?.textAlign;
231
252
 
232
- const paddingLeft =
233
- leftIconOutset &&
234
- (!textAlign || textAlign === "left" || textAlign === "justify")
235
- ? iconSize + 4
236
- : 0;
253
+ const calculateLeftPadding = () => {
254
+ if (leftIconOutset) {
255
+ if (textAlign === "center") {
256
+ return iconSize - Math.abs(8 - iconSize);
257
+ }
258
+
259
+ return iconSize + 8;
260
+ }
261
+
262
+ return 0;
263
+ };
237
264
 
238
265
  const assistiveTextLabel = assistiveText ? (
239
266
  <Text
240
267
  style={{
241
268
  textAlign,
242
- width,
243
- paddingLeft,
269
+ width: "100%",
270
+ paddingLeft: calculateLeftPadding(),
244
271
  color: unstyledColor,
245
272
  fontSize: 12,
246
273
  paddingTop: 4,
@@ -372,12 +399,19 @@ export default withTheme(Picker);
372
399
  const styles = StyleSheet.create({
373
400
  marginsContainer: {
374
401
  alignSelf: "stretch",
402
+ alignItems: "center",
375
403
  },
376
404
  touchableContainer: {
405
+ flex: 1,
406
+ height: "100%",
407
+ width: "100%",
377
408
  alignSelf: "stretch",
378
409
  alignItems: "center",
379
410
  },
380
411
  outsetContainer: {
412
+ flex: 1,
413
+ height: "100%",
414
+ width: "100%",
381
415
  flexDirection: "row",
382
416
  alignItems: "center",
383
417
  justifyContent: "space-between",
@@ -385,6 +419,7 @@ const styles = StyleSheet.create({
385
419
  insetContainer: {
386
420
  flex: 1,
387
421
  height: "100%",
422
+ width: "100%",
388
423
  flexDirection: "row",
389
424
  alignItems: "center",
390
425
  justifyContent: "space-between",