@draftbit/core 46.0.1-696ea7.1 → 46.0.1-caeae2.1

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 (40) hide show
  1. package/lib/commonjs/components/Carousel.js +1 -3
  2. package/lib/commonjs/components/Carousel.js.map +1 -1
  3. package/lib/commonjs/components/Checkbox/Checkbox.js.map +1 -1
  4. package/lib/commonjs/components/DatePicker/DatePickerComponent.web.js +3 -3
  5. package/lib/commonjs/components/DatePicker/DatePickerComponent.web.js.map +1 -1
  6. package/lib/commonjs/components/Picker/Picker.js +3 -3
  7. package/lib/commonjs/components/Picker/Picker.js.map +1 -1
  8. package/lib/commonjs/components/Picker/PickerComponent.android.js +2 -2
  9. package/lib/commonjs/components/Picker/PickerComponent.android.js.map +1 -1
  10. package/lib/commonjs/components/Picker/PickerComponent.ios.js +2 -2
  11. package/lib/commonjs/components/Picker/PickerComponent.ios.js.map +1 -1
  12. package/lib/commonjs/components/Picker/PickerComponent.web.js +2 -2
  13. package/lib/commonjs/components/Picker/PickerComponent.web.js.map +1 -1
  14. package/lib/commonjs/components/RadioButton/RadioButton.js +1 -1
  15. package/lib/commonjs/components/RadioButton/RadioButton.js.map +1 -1
  16. package/lib/commonjs/components/RadioButton/RadioButtonRow.js +1 -1
  17. package/lib/commonjs/components/RadioButton/RadioButtonRow.js.map +1 -1
  18. package/lib/commonjs/components/Stepper.js +1 -1
  19. package/lib/commonjs/components/Stepper.js.map +1 -1
  20. package/lib/module/components/Carousel.js +1 -3
  21. package/lib/module/components/Carousel.js.map +1 -1
  22. package/lib/module/components/Checkbox/Checkbox.js.map +1 -1
  23. package/lib/module/components/DatePicker/DatePickerComponent.web.js +3 -3
  24. package/lib/module/components/DatePicker/DatePickerComponent.web.js.map +1 -1
  25. package/lib/module/components/Picker/Picker.js +3 -3
  26. package/lib/module/components/Picker/Picker.js.map +1 -1
  27. package/lib/module/components/Picker/PickerComponent.android.js +2 -2
  28. package/lib/module/components/Picker/PickerComponent.android.js.map +1 -1
  29. package/lib/module/components/Picker/PickerComponent.ios.js +2 -2
  30. package/lib/module/components/Picker/PickerComponent.ios.js.map +1 -1
  31. package/lib/module/components/Picker/PickerComponent.web.js +2 -2
  32. package/lib/module/components/Picker/PickerComponent.web.js.map +1 -1
  33. package/lib/module/components/RadioButton/RadioButton.js +1 -1
  34. package/lib/module/components/RadioButton/RadioButton.js.map +1 -1
  35. package/lib/module/components/RadioButton/RadioButtonRow.js +1 -1
  36. package/lib/module/components/RadioButton/RadioButtonRow.js.map +1 -1
  37. package/lib/module/components/Stepper.js +1 -1
  38. package/lib/module/components/Stepper.js.map +1 -1
  39. package/package.json +2 -2
  40. package/src/components/Checkbox/Checkbox.tsx +76 -77
@@ -1 +1 @@
1
- {"version":3,"names":["Stepper","min","Infinity","max","value","valueProp","defaultValue","style","typeStyle","iconSize","iconColor","onChange","theme","colors","typography","Icon","setValue","useState","isValidValue","valueArg","handlePlusOrMinus","type","newValue","useEffect","isNumber","flexDirection","opacity","body1","textAlign","alignSelf","color","medium","marginHorizontal","withTheme"],"sources":["Stepper.tsx"],"sourcesContent":["import React, { FC, useEffect, useState } from \"react\";\nimport { View, Text, StyleProp, ViewStyle, TextStyle } from \"react-native\";\nimport { isNumber } from \"lodash\";\n\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\nimport IconButton from \"./IconButton\";\n\ntype Props = {\n min: number;\n max: number;\n value?: number;\n defaultValue?: number;\n style?: StyleProp<ViewStyle>;\n typeStyle?: StyleProp<TextStyle>;\n iconSize: number;\n iconColor?: string;\n onChange?: (value: number) => void;\n theme: Theme;\n} & IconSlot;\n\nconst Stepper: FC<Props> = ({\n min = -Infinity,\n max = Infinity,\n value: valueProp,\n defaultValue,\n style,\n typeStyle,\n iconSize = 24,\n iconColor,\n onChange,\n theme: { colors, typography },\n Icon,\n}) => {\n const [value, setValue] = useState(defaultValue ?? 0);\n\n const isValidValue = (valueArg: number) => valueArg >= min && valueArg <= max;\n\n const handlePlusOrMinus = (type: \"plus\" | \"minus\") => {\n const newValue = type === \"plus\" ? value + 1 : value - 1;\n\n if (isValidValue(newValue)) {\n setValue(newValue);\n onChange?.(newValue);\n }\n };\n\n useEffect(() => {\n if (\n valueProp != null &&\n isNumber(valueProp) &&\n valueProp !== value &&\n isValidValue(valueProp)\n ) {\n setValue(valueProp);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueProp]);\n\n return (\n <View style={[{ flexDirection: \"row\" }, style]}>\n <IconButton\n Icon={Icon}\n icon=\"MaterialIcons/remove\"\n onPress={() => handlePlusOrMinus(\"minus\")}\n size={iconSize}\n color={iconColor}\n disabled={value === min}\n style={{ opacity: value === min ? 0.5 : 1 }}\n />\n\n <Text\n style={[\n typography.body1,\n {\n textAlign: \"center\",\n alignSelf: \"center\",\n color: colors.medium,\n marginHorizontal: 8,\n },\n typeStyle,\n ]}\n >\n {value}\n </Text>\n\n <IconButton\n Icon={Icon}\n icon=\"MaterialIcons/add\"\n onPress={() => handlePlusOrMinus(\"plus\")}\n size={iconSize}\n color={iconColor}\n disabled={value === max}\n style={{ opacity: value === max ? 0.5 : 1 }}\n />\n </View>\n );\n};\n\nexport default withTheme(Stepper);\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAGA;;;;;;;;AAeA,MAAMA,OAAkB,GAAG,QAYrB;EAAA,IAZsB;IAC1BC,GAAG,GAAG,CAACC,QADmB;IAE1BC,GAAG,GAAGD,QAFoB;IAG1BE,KAAK,EAAEC,SAHmB;IAI1BC,YAJ0B;IAK1BC,KAL0B;IAM1BC,SAN0B;IAO1BC,QAAQ,GAAG,EAPe;IAQ1BC,SAR0B;IAS1BC,QAT0B;IAU1BC,KAAK,EAAE;MAAEC,MAAF;MAAUC;IAAV,CAVmB;IAW1BC;EAX0B,CAYtB;EACJ,MAAM,CAACX,KAAD,EAAQY,QAAR,IAAoB,IAAAC,eAAA,EAASX,YAAT,aAASA,YAAT,cAASA,YAAT,GAAyB,CAAzB,CAA1B;;EAEA,MAAMY,YAAY,GAAIC,QAAD,IAAsBA,QAAQ,IAAIlB,GAAZ,IAAmBkB,QAAQ,IAAIhB,GAA1E;;EAEA,MAAMiB,iBAAiB,GAAIC,IAAD,IAA4B;IACpD,MAAMC,QAAQ,GAAGD,IAAI,KAAK,MAAT,GAAkBjB,KAAK,GAAG,CAA1B,GAA8BA,KAAK,GAAG,CAAvD;;IAEA,IAAIc,YAAY,CAACI,QAAD,CAAhB,EAA4B;MAC1BN,QAAQ,CAACM,QAAD,CAAR;MACAX,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGW,QAAH,CAAR;IACD;EACF,CAPD;;EASA,IAAAC,gBAAA,EAAU,MAAM;IACd,IACElB,SAAS,IAAI,IAAb,IACA,IAAAmB,gBAAA,EAASnB,SAAT,CADA,IAEAA,SAAS,KAAKD,KAFd,IAGAc,YAAY,CAACb,SAAD,CAJd,EAKE;MACAW,QAAQ,CAACX,SAAD,CAAR;IACD,CARa,CASd;;EACD,CAVD,EAUG,CAACA,SAAD,CAVH;EAYA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAAC;MAAEoB,aAAa,EAAE;IAAjB,CAAD,EAA2BlB,KAA3B;EAAb,gBACE,6BAAC,mBAAD;IACE,IAAI,EAAEQ,IADR;IAEE,IAAI,EAAC,sBAFP;IAGE,OAAO,EAAE,MAAMK,iBAAiB,CAAC,OAAD,CAHlC;IAIE,IAAI,EAAEX,QAJR;IAKE,KAAK,EAAEC,SALT;IAME,QAAQ,EAAEN,KAAK,KAAKH,GANtB;IAOE,KAAK,EAAE;MAAEyB,OAAO,EAAEtB,KAAK,KAAKH,GAAV,GAAgB,GAAhB,GAAsB;IAAjC;EAPT,EADF,eAWE,6BAAC,iBAAD;IACE,KAAK,EAAE,CACLa,UAAU,CAACa,KADN,EAEL;MACEC,SAAS,EAAE,QADb;MAEEC,SAAS,EAAE,QAFb;MAGEC,KAAK,EAAEjB,MAAM,CAACkB,MAHhB;MAIEC,gBAAgB,EAAE;IAJpB,CAFK,EAQLxB,SARK;EADT,GAYGJ,KAZH,CAXF,eA0BE,6BAAC,mBAAD;IACE,IAAI,EAAEW,IADR;IAEE,IAAI,EAAC,mBAFP;IAGE,OAAO,EAAE,MAAMK,iBAAiB,CAAC,MAAD,CAHlC;IAIE,IAAI,EAAEX,QAJR;IAKE,KAAK,EAAEC,SALT;IAME,QAAQ,EAAEN,KAAK,KAAKD,GANtB;IAOE,KAAK,EAAE;MAAEuB,OAAO,EAAEtB,KAAK,KAAKD,GAAV,GAAgB,GAAhB,GAAsB;IAAjC;EAPT,EA1BF,CADF;AAsCD,CA5ED;;eA8Ee,IAAA8B,kBAAA,EAAUjC,OAAV,C"}
1
+ {"version":3,"names":["Stepper","min","Infinity","max","value","valueProp","defaultValue","style","typeStyle","iconSize","iconColor","onChange","theme","colors","typography","Icon","setValue","useState","isValidValue","valueArg","handlePlusOrMinus","type","newValue","useEffect","isNumber","flexDirection","opacity","body1","textAlign","alignSelf","color","medium","marginHorizontal","withTheme"],"sources":["Stepper.tsx"],"sourcesContent":["import React, { FC, useEffect, useState } from \"react\";\nimport { View, Text, StyleProp, ViewStyle, TextStyle } from \"react-native\";\nimport { isNumber } from \"lodash\";\n\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\nimport IconButton from \"./IconButton\";\n\ntype Props = {\n min: number;\n max: number;\n value?: number;\n defaultValue?: number;\n style?: StyleProp<ViewStyle>;\n typeStyle?: StyleProp<TextStyle>;\n iconSize: number;\n iconColor?: string;\n onChange?: (value: number) => void;\n theme: Theme;\n} & IconSlot;\n\nconst Stepper: FC<Props> = ({\n min = -Infinity,\n max = Infinity,\n value: valueProp,\n defaultValue,\n style,\n typeStyle,\n iconSize = 24,\n iconColor,\n onChange,\n theme: { colors, typography },\n Icon,\n}) => {\n const [value, setValue] = useState(defaultValue ?? 0);\n\n const isValidValue = (valueArg: number) => valueArg >= min && valueArg <= max;\n\n const handlePlusOrMinus = (type: \"plus\" | \"minus\") => {\n const newValue = type === \"plus\" ? value + 1 : value - 1;\n\n if (isValidValue(newValue)) {\n setValue(newValue);\n onChange?.(newValue);\n }\n };\n\n useEffect(() => {\n if (\n valueProp != null &&\n isNumber(valueProp) &&\n valueProp !== value &&\n isValidValue(valueProp)\n ) {\n setValue(valueProp);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueProp]);\n\n return (\n <View style={[{ flexDirection: \"row\" }, style]}>\n <IconButton\n Icon={Icon}\n icon=\"MaterialIcons/remove\"\n onPress={() => handlePlusOrMinus(\"minus\")}\n size={iconSize}\n color={iconColor}\n disabled={value === min}\n style={{ opacity: value === min ? 0.5 : 1 }}\n />\n\n <Text\n style={[\n typography.body1,\n {\n textAlign: \"center\",\n alignSelf: \"center\",\n color: colors.medium,\n marginHorizontal: 8,\n },\n typeStyle,\n ]}\n >\n {value}\n </Text>\n\n <IconButton\n Icon={Icon}\n icon=\"MaterialIcons/add\"\n onPress={() => handlePlusOrMinus(\"plus\")}\n size={iconSize}\n color={iconColor}\n disabled={value === max}\n style={{ opacity: value === max ? 0.5 : 1 }}\n />\n </View>\n );\n};\n\nexport default withTheme(Stepper);\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAGA;;;;;;;;AAeA,MAAMA,OAAkB,GAAG,QAYrB;EAAA,IAZsB;IAC1BC,GAAG,GAAG,CAACC,QADmB;IAE1BC,GAAG,GAAGD,QAFoB;IAG1BE,KAAK,EAAEC,SAHmB;IAI1BC,YAJ0B;IAK1BC,KAL0B;IAM1BC,SAN0B;IAO1BC,QAAQ,GAAG,EAPe;IAQ1BC,SAR0B;IAS1BC,QAT0B;IAU1BC,KAAK,EAAE;MAAEC,MAAF;MAAUC;IAAV,CAVmB;IAW1BC;EAX0B,CAYtB;EACJ,MAAM,CAACX,KAAD,EAAQY,QAAR,IAAoB,IAAAC,eAAA,EAASX,YAAY,IAAI,CAAzB,CAA1B;;EAEA,MAAMY,YAAY,GAAIC,QAAD,IAAsBA,QAAQ,IAAIlB,GAAZ,IAAmBkB,QAAQ,IAAIhB,GAA1E;;EAEA,MAAMiB,iBAAiB,GAAIC,IAAD,IAA4B;IACpD,MAAMC,QAAQ,GAAGD,IAAI,KAAK,MAAT,GAAkBjB,KAAK,GAAG,CAA1B,GAA8BA,KAAK,GAAG,CAAvD;;IAEA,IAAIc,YAAY,CAACI,QAAD,CAAhB,EAA4B;MAC1BN,QAAQ,CAACM,QAAD,CAAR;MACAX,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGW,QAAH,CAAR;IACD;EACF,CAPD;;EASA,IAAAC,gBAAA,EAAU,MAAM;IACd,IACElB,SAAS,IAAI,IAAb,IACA,IAAAmB,gBAAA,EAASnB,SAAT,CADA,IAEAA,SAAS,KAAKD,KAFd,IAGAc,YAAY,CAACb,SAAD,CAJd,EAKE;MACAW,QAAQ,CAACX,SAAD,CAAR;IACD,CARa,CASd;;EACD,CAVD,EAUG,CAACA,SAAD,CAVH;EAYA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAAC;MAAEoB,aAAa,EAAE;IAAjB,CAAD,EAA2BlB,KAA3B;EAAb,gBACE,6BAAC,mBAAD;IACE,IAAI,EAAEQ,IADR;IAEE,IAAI,EAAC,sBAFP;IAGE,OAAO,EAAE,MAAMK,iBAAiB,CAAC,OAAD,CAHlC;IAIE,IAAI,EAAEX,QAJR;IAKE,KAAK,EAAEC,SALT;IAME,QAAQ,EAAEN,KAAK,KAAKH,GANtB;IAOE,KAAK,EAAE;MAAEyB,OAAO,EAAEtB,KAAK,KAAKH,GAAV,GAAgB,GAAhB,GAAsB;IAAjC;EAPT,EADF,eAWE,6BAAC,iBAAD;IACE,KAAK,EAAE,CACLa,UAAU,CAACa,KADN,EAEL;MACEC,SAAS,EAAE,QADb;MAEEC,SAAS,EAAE,QAFb;MAGEC,KAAK,EAAEjB,MAAM,CAACkB,MAHhB;MAIEC,gBAAgB,EAAE;IAJpB,CAFK,EAQLxB,SARK;EADT,GAYGJ,KAZH,CAXF,eA0BE,6BAAC,mBAAD;IACE,IAAI,EAAEW,IADR;IAEE,IAAI,EAAC,mBAFP;IAGE,OAAO,EAAE,MAAMK,iBAAiB,CAAC,MAAD,CAHlC;IAIE,IAAI,EAAEX,QAJR;IAKE,KAAK,EAAEC,SALT;IAME,QAAQ,EAAEN,KAAK,KAAKD,GANtB;IAOE,KAAK,EAAE;MAAEuB,OAAO,EAAEtB,KAAK,KAAKD,GAAV,GAAgB,GAAhB,GAAsB;IAAjC;EAPT,EA1BF,CADF;AAsCD,CA5ED;;eA8Ee,IAAA8B,kBAAA,EAAUjC,OAAV,C"}
@@ -33,8 +33,6 @@ function Pager(_ref) {
33
33
  }
34
34
 
35
35
  function Carousel(_ref2) {
36
- var _data$length;
37
-
38
36
  let {
39
37
  data,
40
38
  children,
@@ -44,7 +42,7 @@ function Carousel(_ref2) {
44
42
  } = _ref2;
45
43
  const [index, setIndex] = React.useState(0);
46
44
  const length = React.Children.count(children);
47
- const itemsLength = ((_data$length = data === null || data === void 0 ? void 0 : data.length) !== null && _data$length !== void 0 ? _data$length : 0) + length;
45
+ const itemsLength = ((data === null || data === void 0 ? void 0 : data.length) ?? 0) + length;
48
46
  const slides = Array.isArray(data) ? data : [];
49
47
  const {
50
48
  width,
@@ -1 +1 @@
1
- {"version":3,"names":["React","withTheme","ScrollView","View","StyleSheet","Dimensions","Image","screenWidth","get","width","Pager","color","index","length","styles","pager","Array","from","map","_","i","current","opacity","size","bullet","backgroundColor","height","Carousel","data","children","dotColor","style","rest","setIndex","useState","Children","count","itemsLength","slides","isArray","flatten","slideWidth","slideHeight","container","nativeEvent","layoutWidth","layoutMeasurement","offset","contentOffset","x","currentIndex","Math","ceil","item","uri","child","s","props","cloneElement","create","position","bottom","left","right","flexDirection","justifyContent","alignItems","marginHorizontal","borderRadius"],"sources":["Carousel.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { withTheme } from \"../theming\";\nimport {\n ScrollView,\n View,\n StyleSheet,\n Dimensions,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport Image from \"./Image\";\n\nconst screenWidth = Dimensions.get(\"window\").width;\n\ntype Props = {\n data?: any[];\n children?: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n dotColor?: string;\n theme: any;\n};\n\nfunction Pager({\n color,\n index,\n length,\n}: {\n color: string;\n index: number;\n length: number;\n}) {\n return (\n <View style={styles.pager}>\n {Array.from({ length }).map((_, i) => {\n const current = index === i;\n const opacity = current ? 1 : 0.5;\n const size = current ? 10 : 8;\n return (\n <View\n key={i}\n style={[\n styles.bullet,\n { backgroundColor: color, opacity, width: size, height: size },\n ]}\n />\n );\n })}\n </View>\n );\n}\n\nfunction Carousel({\n data,\n children,\n dotColor = \"strong\",\n style,\n ...rest\n}: React.PropsWithChildren<Props>) {\n const [index, setIndex] = React.useState(0);\n\n const length = React.Children.count(children);\n const itemsLength = (data?.length ?? 0) + length;\n const slides = Array.isArray(data) ? data : [];\n\n const { width, height } = StyleSheet.flatten(style || {});\n const slideWidth = width || screenWidth;\n const slideHeight = height || 250;\n\n return (\n <View style={[styles.container, style]} {...rest}>\n <ScrollView\n pagingEnabled\n horizontal\n decelerationRate=\"fast\"\n scrollEventThrottle={200}\n showsHorizontalScrollIndicator={false}\n onScroll={({ nativeEvent }) => {\n const layoutWidth = nativeEvent.layoutMeasurement.width;\n const offset = nativeEvent.contentOffset.x;\n const currentIndex = Math.ceil(offset / layoutWidth);\n setIndex(currentIndex);\n }}\n >\n {slides.length > 0\n ? slides.map((item, i) => {\n return (\n <Image\n key={i}\n resizeMode=\"cover\"\n source={typeof item === \"string\" ? { uri: item } : item}\n style={[{ width: slideWidth, height: slideHeight }]}\n />\n );\n })\n : null}\n {React.Children.map(children, (child: any) => {\n const s = child?.props?.style || {};\n return (\n <View style={{ width: slideWidth }}>\n {React.cloneElement(child, {\n style: { ...s, width: slideWidth },\n })}\n </View>\n );\n })}\n </ScrollView>\n <Pager color={dotColor} index={index} length={itemsLength} />\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: \"#eee\",\n },\n pager: {\n position: \"absolute\",\n bottom: 12,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n bullet: {\n marginHorizontal: 2,\n width: 10,\n height: 10,\n borderRadius: 20,\n backgroundColor: \"#000\",\n },\n});\n\nexport default withTheme(Carousel);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","withTheme","ScrollView","View","StyleSheet","Dimensions","Image","screenWidth","get","width","Pager","color","index","length","styles","pager","Array","from","map","_","i","current","opacity","size","bullet","backgroundColor","height","Carousel","data","children","dotColor","style","rest","setIndex","useState","Children","count","itemsLength","slides","isArray","flatten","slideWidth","slideHeight","container","nativeEvent","layoutWidth","layoutMeasurement","offset","contentOffset","x","currentIndex","Math","ceil","item","uri","child","s","props","cloneElement","create","position","bottom","left","right","flexDirection","justifyContent","alignItems","marginHorizontal","borderRadius"],"sources":["Carousel.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { withTheme } from \"../theming\";\nimport {\n ScrollView,\n View,\n StyleSheet,\n Dimensions,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport Image from \"./Image\";\n\nconst screenWidth = Dimensions.get(\"window\").width;\n\ntype Props = {\n data?: any[];\n children?: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n dotColor?: string;\n theme: any;\n};\n\nfunction Pager({\n color,\n index,\n length,\n}: {\n color: string;\n index: number;\n length: number;\n}) {\n return (\n <View style={styles.pager}>\n {Array.from({ length }).map((_, i) => {\n const current = index === i;\n const opacity = current ? 1 : 0.5;\n const size = current ? 10 : 8;\n return (\n <View\n key={i}\n style={[\n styles.bullet,\n { backgroundColor: color, opacity, width: size, height: size },\n ]}\n />\n );\n })}\n </View>\n );\n}\n\nfunction Carousel({\n data,\n children,\n dotColor = \"strong\",\n style,\n ...rest\n}: React.PropsWithChildren<Props>) {\n const [index, setIndex] = React.useState(0);\n\n const length = React.Children.count(children);\n const itemsLength = (data?.length ?? 0) + length;\n const slides = Array.isArray(data) ? data : [];\n\n const { width, height } = StyleSheet.flatten(style || {});\n const slideWidth = width || screenWidth;\n const slideHeight = height || 250;\n\n return (\n <View style={[styles.container, style]} {...rest}>\n <ScrollView\n pagingEnabled\n horizontal\n decelerationRate=\"fast\"\n scrollEventThrottle={200}\n showsHorizontalScrollIndicator={false}\n onScroll={({ nativeEvent }) => {\n const layoutWidth = nativeEvent.layoutMeasurement.width;\n const offset = nativeEvent.contentOffset.x;\n const currentIndex = Math.ceil(offset / layoutWidth);\n setIndex(currentIndex);\n }}\n >\n {slides.length > 0\n ? slides.map((item, i) => {\n return (\n <Image\n key={i}\n resizeMode=\"cover\"\n source={typeof item === \"string\" ? { uri: item } : item}\n style={[{ width: slideWidth, height: slideHeight }]}\n />\n );\n })\n : null}\n {React.Children.map(children, (child: any) => {\n const s = child?.props?.style || {};\n return (\n <View style={{ width: slideWidth }}>\n {React.cloneElement(child, {\n style: { ...s, width: slideWidth },\n })}\n </View>\n );\n })}\n </ScrollView>\n <Pager color={dotColor} index={index} length={itemsLength} />\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: \"#eee\",\n },\n pager: {\n position: \"absolute\",\n bottom: 12,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n bullet: {\n marginHorizontal: 2,\n width: 10,\n height: 10,\n borderRadius: 20,\n backgroundColor: \"#000\",\n },\n});\n\nexport default withTheme(Carousel);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","useTheme","Touchable","usePrevious","Checkbox","Icon","status","disabled","onPress","onCheck","onUncheck","color","uncheckedColor","defaultValue","checkedIcon","uncheckedIcon","size","style","rest","internalValue","setInternalValue","useState","useEffect","previousDefaultValue","Boolean","colors","checkboxColor","primary","handlePress","newValue","styles","container","width","height","icon","absoluteFill","fillContainer","fill","opacity","borderColor","create","borderRadius","alignItems","justifyContent","alignSelf"],"sources":["Checkbox.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n TouchableHighlightProps,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport { useTheme } from \"../../theming\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport Touchable from \"../Touchable\";\nimport { usePrevious } from \"../../hooks\";\n\nexport interface CheckboxProps {\n status?: boolean;\n disabled?: boolean;\n onPress?: (checked: boolean) => void;\n onCheck?: () => void;\n onUncheck?: () => void;\n color?: string;\n uncheckedColor?: string;\n checkedIcon?: string;\n uncheckedIcon?: string;\n defaultValue?: boolean;\n size?: number;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Checkbox: React.FC<CheckboxProps & TouchableHighlightProps & IconSlot> =\n ({\n Icon,\n status,\n disabled = false,\n onPress,\n onCheck,\n onUncheck,\n color,\n uncheckedColor,\n defaultValue,\n checkedIcon = \"MaterialCommunityIcons/checkbox-marked\",\n uncheckedIcon = \"MaterialCommunityIcons/checkbox-blank-outline\",\n size = 24,\n style,\n ...rest\n }) => {\n const [internalValue, setInternalValue] = React.useState<boolean>(\n status || defaultValue || false\n );\n\n React.useEffect(() => {\n if (status != null) {\n setInternalValue(status);\n }\n }, [status]);\n\n // This special logic is to handle weird APIs like Airtable that return\n // true or undefined for a boolean\n const previousDefaultValue = usePrevious(defaultValue) as\n | boolean\n | undefined;\n\n React.useEffect(() => {\n if (defaultValue !== previousDefaultValue) {\n setInternalValue(Boolean(defaultValue));\n }\n }, [defaultValue, previousDefaultValue]);\n\n const { colors } = useTheme();\n\n const checkboxColor = internalValue\n ? color || colors.primary\n : uncheckedColor || colors.primary;\n\n const handlePress = () => {\n const newValue = !internalValue;\n\n setInternalValue(newValue);\n onPress?.(newValue);\n\n if (newValue) {\n onCheck?.();\n }\n\n if (!newValue) {\n onUncheck?.();\n }\n };\n\n return (\n <Touchable\n {...rest}\n onPress={handlePress}\n disabled={disabled}\n accessibilityState={{ disabled }}\n accessibilityRole=\"button\"\n accessibilityLiveRegion=\"polite\"\n style={[styles.container, style, { width: size, height: size }]}\n >\n <Icon\n style={styles.icon}\n name={internalValue ? checkedIcon : uncheckedIcon}\n size={size}\n color={checkboxColor}\n />\n <View style={[StyleSheet.absoluteFill, styles.fillContainer]}>\n <View\n style={[\n styles.fill,\n { opacity: disabled ? 0.5 : 1 },\n { borderColor: checkboxColor },\n ]}\n />\n </View>\n </Touchable>\n );\n };\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n },\n fillContainer: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n icon: {\n alignSelf: \"center\",\n },\n fill: {\n borderRadius: 5,\n width: 30,\n height: 30,\n alignSelf: \"center\",\n },\n});\n\nexport default Checkbox;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","StyleSheet","useTheme","Touchable","usePrevious","Checkbox","Icon","status","disabled","onPress","onCheck","onUncheck","color","uncheckedColor","defaultValue","checkedIcon","uncheckedIcon","size","style","rest","internalValue","setInternalValue","useState","useEffect","previousDefaultValue","Boolean","colors","checkboxColor","primary","handlePress","newValue","styles","container","width","height","icon","absoluteFill","fillContainer","fill","opacity","borderColor","create","borderRadius","alignItems","justifyContent","alignSelf"],"sources":["Checkbox.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n TouchableHighlightProps,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport { useTheme } from \"../../theming\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport Touchable from \"../Touchable\";\nimport { usePrevious } from \"../../hooks\";\n\nexport interface CheckboxProps {\n status?: boolean;\n disabled?: boolean;\n onPress?: (checked: boolean) => void;\n onCheck?: () => void;\n onUncheck?: () => void;\n color?: string;\n uncheckedColor?: string;\n checkedIcon?: string;\n uncheckedIcon?: string;\n defaultValue?: boolean;\n size?: number;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Checkbox: React.FC<\n CheckboxProps & TouchableHighlightProps & IconSlot\n> = ({\n Icon,\n status,\n disabled = false,\n onPress,\n onCheck,\n onUncheck,\n color,\n uncheckedColor,\n defaultValue,\n checkedIcon = \"MaterialCommunityIcons/checkbox-marked\",\n uncheckedIcon = \"MaterialCommunityIcons/checkbox-blank-outline\",\n size = 24,\n style,\n ...rest\n}) => {\n const [internalValue, setInternalValue] = React.useState<boolean>(\n status || defaultValue || false\n );\n\n React.useEffect(() => {\n if (status != null) {\n setInternalValue(status);\n }\n }, [status]);\n\n // This special logic is to handle weird APIs like Airtable that return\n // true or undefined for a boolean\n const previousDefaultValue = usePrevious(defaultValue) as boolean | undefined;\n\n React.useEffect(() => {\n if (defaultValue !== previousDefaultValue) {\n setInternalValue(Boolean(defaultValue));\n }\n }, [defaultValue, previousDefaultValue]);\n\n const { colors } = useTheme();\n\n const checkboxColor = internalValue\n ? color || colors.primary\n : uncheckedColor || colors.primary;\n\n const handlePress = () => {\n const newValue = !internalValue;\n\n setInternalValue(newValue);\n onPress?.(newValue);\n\n if (newValue) {\n onCheck?.();\n }\n\n if (!newValue) {\n onUncheck?.();\n }\n };\n\n return (\n <Touchable\n {...rest}\n onPress={handlePress}\n disabled={disabled}\n accessibilityState={{ disabled }}\n accessibilityRole=\"button\"\n accessibilityLiveRegion=\"polite\"\n style={[styles.container, style, { width: size, height: size }]}\n >\n <Icon\n style={styles.icon}\n name={internalValue ? checkedIcon : uncheckedIcon}\n size={size}\n color={checkboxColor}\n />\n <View style={[StyleSheet.absoluteFill, styles.fillContainer]}>\n <View\n style={[\n styles.fill,\n { opacity: disabled ? 0.5 : 1 },\n { borderColor: checkboxColor },\n ]}\n />\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n },\n fillContainer: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n icon: {\n alignSelf: \"center\",\n },\n fill: {\n borderRadius: 5,\n width: 30,\n height: 30,\n alignSelf: \"center\",\n },\n});\n\nexport default Checkbox;\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { withTheme } from "../../theming";
6
6
  import Theme from "../../styles/DefaultTheme";
7
7
 
8
8
  const DatePickerComponent = _ref => {
9
- var _theme$colors$primary, _theme$colors, _theme$colors$seconda, _theme$colors2;
9
+ var _theme$colors, _theme$colors2;
10
10
 
11
11
  let {
12
12
  value,
@@ -19,10 +19,10 @@ const DatePickerComponent = _ref => {
19
19
  const internalTheme = createMuiTheme({
20
20
  palette: {
21
21
  primary: {
22
- main: (_theme$colors$primary = theme === null || theme === void 0 ? void 0 : (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.primary) !== null && _theme$colors$primary !== void 0 ? _theme$colors$primary : Theme.colors.primary
22
+ main: (theme === null || theme === void 0 ? void 0 : (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.primary) ?? Theme.colors.primary
23
23
  },
24
24
  secondary: {
25
- main: (_theme$colors$seconda = theme === null || theme === void 0 ? void 0 : (_theme$colors2 = theme.colors) === null || _theme$colors2 === void 0 ? void 0 : _theme$colors2.secondary) !== null && _theme$colors$seconda !== void 0 ? _theme$colors$seconda : Theme.colors.secondary
25
+ main: (theme === null || theme === void 0 ? void 0 : (_theme$colors2 = theme.colors) === null || _theme$colors2 === void 0 ? void 0 : _theme$colors2.secondary) ?? Theme.colors.secondary
26
26
  }
27
27
  }
28
28
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","DateFnsUtils","MuiPickersUtilsProvider","DatePicker","TimePicker","DateTimePicker","createMuiTheme","ThemeProvider","withTheme","Theme","DatePickerComponent","value","onChange","mode","toggleVisibility","isVisible","theme","internalTheme","palette","primary","main","colors","secondary","Picker","d"],"sources":["DatePickerComponent.web.tsx"],"sourcesContent":["import React from \"react\";\nimport DateFnsUtils from \"@date-io/date-fns\";\nimport {\n MuiPickersUtilsProvider,\n DatePicker,\n TimePicker,\n DateTimePicker,\n} from \"@material-ui/pickers\";\nimport { createMuiTheme, ThemeProvider } from \"@material-ui/core/styles\";\nimport { DatePickerComponentProps as Props } from \"./DatePickerComponentType\";\nimport { withTheme } from \"../../theming\";\nimport Theme from \"../../styles/DefaultTheme\";\n\nconst DatePickerComponent: React.FC<Props & { theme: typeof Theme }> = ({\n value,\n onChange,\n mode,\n toggleVisibility,\n isVisible,\n theme,\n}) => {\n const internalTheme = createMuiTheme({\n palette: {\n primary: {\n main: theme?.colors?.primary ?? Theme.colors.primary,\n },\n secondary: {\n main: theme?.colors?.secondary ?? Theme.colors.secondary,\n },\n },\n });\n\n const Picker =\n mode === \"date\"\n ? DatePicker\n : mode === \"time\"\n ? TimePicker\n : DateTimePicker;\n\n return (\n <MuiPickersUtilsProvider utils={DateFnsUtils}>\n <ThemeProvider theme={internalTheme}>\n <Picker\n value={value}\n open={isVisible}\n onChange={(d) => {\n toggleVisibility();\n onChange(null, d);\n }}\n onClose={() => toggleVisibility()}\n variant=\"dialog\"\n TextFieldComponent={() => null}\n />\n </ThemeProvider>\n </MuiPickersUtilsProvider>\n );\n};\n\nexport default withTheme(DatePickerComponent);\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,YAAP,MAAyB,mBAAzB;AACA,SACEC,uBADF,EAEEC,UAFF,EAGEC,UAHF,EAIEC,cAJF,QAKO,sBALP;AAMA,SAASC,cAAT,EAAyBC,aAAzB,QAA8C,0BAA9C;AAEA,SAASC,SAAT,QAA0B,eAA1B;AACA,OAAOC,KAAP,MAAkB,2BAAlB;;AAEA,MAAMC,mBAA8D,GAAG,QAOjE;EAAA;;EAAA,IAPkE;IACtEC,KADsE;IAEtEC,QAFsE;IAGtEC,IAHsE;IAItEC,gBAJsE;IAKtEC,SALsE;IAMtEC;EANsE,CAOlE;EACJ,MAAMC,aAAa,GAAGX,cAAc,CAAC;IACnCY,OAAO,EAAE;MACPC,OAAO,EAAE;QACPC,IAAI,2BAAEJ,KAAF,aAAEA,KAAF,wCAAEA,KAAK,CAAEK,MAAT,kDAAE,cAAeF,OAAjB,yEAA4BV,KAAK,CAACY,MAAN,CAAaF;MADtC,CADF;MAIPG,SAAS,EAAE;QACTF,IAAI,2BAAEJ,KAAF,aAAEA,KAAF,yCAAEA,KAAK,CAAEK,MAAT,mDAAE,eAAeC,SAAjB,yEAA8Bb,KAAK,CAACY,MAAN,CAAaC;MADtC;IAJJ;EAD0B,CAAD,CAApC;EAWA,MAAMC,MAAM,GACVV,IAAI,KAAK,MAAT,GACIV,UADJ,GAEIU,IAAI,KAAK,MAAT,GACAT,UADA,GAEAC,cALN;EAOA,oBACE,oBAAC,uBAAD;IAAyB,KAAK,EAAEJ;EAAhC,gBACE,oBAAC,aAAD;IAAe,KAAK,EAAEgB;EAAtB,gBACE,oBAAC,MAAD;IACE,KAAK,EAAEN,KADT;IAEE,IAAI,EAAEI,SAFR;IAGE,QAAQ,EAAGS,CAAD,IAAO;MACfV,gBAAgB;MAChBF,QAAQ,CAAC,IAAD,EAAOY,CAAP,CAAR;IACD,CANH;IAOE,OAAO,EAAE,MAAMV,gBAAgB,EAPjC;IAQE,OAAO,EAAC,QARV;IASE,kBAAkB,EAAE,MAAM;EAT5B,EADF,CADF,CADF;AAiBD,CA3CD;;AA6CA,eAAeN,SAAS,CAACE,mBAAD,CAAxB"}
1
+ {"version":3,"names":["React","DateFnsUtils","MuiPickersUtilsProvider","DatePicker","TimePicker","DateTimePicker","createMuiTheme","ThemeProvider","withTheme","Theme","DatePickerComponent","value","onChange","mode","toggleVisibility","isVisible","theme","internalTheme","palette","primary","main","colors","secondary","Picker","d"],"sources":["DatePickerComponent.web.tsx"],"sourcesContent":["import React from \"react\";\nimport DateFnsUtils from \"@date-io/date-fns\";\nimport {\n MuiPickersUtilsProvider,\n DatePicker,\n TimePicker,\n DateTimePicker,\n} from \"@material-ui/pickers\";\nimport { createMuiTheme, ThemeProvider } from \"@material-ui/core/styles\";\nimport { DatePickerComponentProps as Props } from \"./DatePickerComponentType\";\nimport { withTheme } from \"../../theming\";\nimport Theme from \"../../styles/DefaultTheme\";\n\nconst DatePickerComponent: React.FC<Props & { theme: typeof Theme }> = ({\n value,\n onChange,\n mode,\n toggleVisibility,\n isVisible,\n theme,\n}) => {\n const internalTheme = createMuiTheme({\n palette: {\n primary: {\n main: theme?.colors?.primary ?? Theme.colors.primary,\n },\n secondary: {\n main: theme?.colors?.secondary ?? Theme.colors.secondary,\n },\n },\n });\n\n const Picker =\n mode === \"date\"\n ? DatePicker\n : mode === \"time\"\n ? TimePicker\n : DateTimePicker;\n\n return (\n <MuiPickersUtilsProvider utils={DateFnsUtils}>\n <ThemeProvider theme={internalTheme}>\n <Picker\n value={value}\n open={isVisible}\n onChange={(d) => {\n toggleVisibility();\n onChange(null, d);\n }}\n onClose={() => toggleVisibility()}\n variant=\"dialog\"\n TextFieldComponent={() => null}\n />\n </ThemeProvider>\n </MuiPickersUtilsProvider>\n );\n};\n\nexport default withTheme(DatePickerComponent);\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,YAAP,MAAyB,mBAAzB;AACA,SACEC,uBADF,EAEEC,UAFF,EAGEC,UAHF,EAIEC,cAJF,QAKO,sBALP;AAMA,SAASC,cAAT,EAAyBC,aAAzB,QAA8C,0BAA9C;AAEA,SAASC,SAAT,QAA0B,eAA1B;AACA,OAAOC,KAAP,MAAkB,2BAAlB;;AAEA,MAAMC,mBAA8D,GAAG,QAOjE;EAAA;;EAAA,IAPkE;IACtEC,KADsE;IAEtEC,QAFsE;IAGtEC,IAHsE;IAItEC,gBAJsE;IAKtEC,SALsE;IAMtEC;EANsE,CAOlE;EACJ,MAAMC,aAAa,GAAGX,cAAc,CAAC;IACnCY,OAAO,EAAE;MACPC,OAAO,EAAE;QACPC,IAAI,EAAE,CAAAJ,KAAK,SAAL,IAAAA,KAAK,WAAL,6BAAAA,KAAK,CAAEK,MAAP,gEAAeF,OAAf,KAA0BV,KAAK,CAACY,MAAN,CAAaF;MADtC,CADF;MAIPG,SAAS,EAAE;QACTF,IAAI,EAAE,CAAAJ,KAAK,SAAL,IAAAA,KAAK,WAAL,8BAAAA,KAAK,CAAEK,MAAP,kEAAeC,SAAf,KAA4Bb,KAAK,CAACY,MAAN,CAAaC;MADtC;IAJJ;EAD0B,CAAD,CAApC;EAWA,MAAMC,MAAM,GACVV,IAAI,KAAK,MAAT,GACIV,UADJ,GAEIU,IAAI,KAAK,MAAT,GACAT,UADA,GAEAC,cALN;EAOA,oBACE,oBAAC,uBAAD;IAAyB,KAAK,EAAEJ;EAAhC,gBACE,oBAAC,aAAD;IAAe,KAAK,EAAEgB;EAAtB,gBACE,oBAAC,MAAD;IACE,KAAK,EAAEN,KADT;IAEE,IAAI,EAAEI,SAFR;IAGE,QAAQ,EAAGS,CAAD,IAAO;MACfV,gBAAgB;MAChBF,QAAQ,CAAC,IAAD,EAAOY,CAAP,CAAR;IACD,CANH;IAOE,OAAO,EAAE,MAAMV,gBAAgB,EAPjC;IAQE,OAAO,EAAC,QARV;IASE,kBAAkB,EAAE,MAAM;EAT5B,EADF,CADF,CADF;AAiBD,CA3CD;;AA6CA,eAAeN,SAAS,CAACE,mBAAD,CAAxB"}
@@ -43,7 +43,7 @@ const disabledColor = "rgb(240, 240, 240)";
43
43
  const errorColor = "rgba(255, 69, 100, 1)";
44
44
 
45
45
  const Picker = _ref => {
46
- var _find$label, _find;
46
+ var _find;
47
47
 
48
48
  let {
49
49
  error,
@@ -136,7 +136,7 @@ const Picker = _ref => {
136
136
  ...extractedMarginStyles
137
137
  };
138
138
  const stylesWithoutBordersAndMargins = omit(viewStyles, [...borderStyleNames, ...marginStyleNames, ...additionalBorderStyles, ...additionalMarginStyles]);
139
- 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);
139
+ const selectedLabel = internalValue && (((_find = pickerOptions.find(option => option.value === internalValue)) === null || _find === void 0 ? void 0 : _find.label) ?? internalValue);
140
140
  const labelText = label ? /*#__PURE__*/React.createElement(Text, {
141
141
  style: {
142
142
  textAlign: textStyles.textAlign,
@@ -227,7 +227,7 @@ const Picker = _ref => {
227
227
  style: styles.primaryTextContainer
228
228
  }, labelText, /*#__PURE__*/React.createElement(Text, {
229
229
  style: primaryTextStyle
230
- }, String(selectedLabel !== null && selectedLabel !== void 0 ? selectedLabel : placeholder))), rightIcon)), assistiveTextLabel), isIos && pickerVisible ? /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(View, {
230
+ }, String(selectedLabel ?? placeholder))), rightIcon)), assistiveTextLabel), isIos && pickerVisible ? /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(View, {
231
231
  style: [styles.iosPicker, {
232
232
  backgroundColor: colors.divider
233
233
  }]
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","Text","Platform","Dimensions","omit","pickBy","identity","isObject","SafeAreaView","Picker","NativePicker","withTheme","Portal","Button","Touchable","extractStyles","extractBorderAndMarginStyles","borderStyleNames","marginStyleNames","normalizeOptions","options","length","map","option","label","String","value","Error","width","deviceWidth","height","deviceHeight","get","isIos","OS","unstyledColor","disabledColor","errorColor","error","onValueChange","defaultValue","Icon","style","placeholder","disabled","theme","assistiveText","iconColor","iconSize","leftIconMode","leftIconName","placeholderTextColor","rightIconName","type","androidPickerRef","useRef","undefined","internalValue","setInternalValue","useState","pickerVisible","setPickerVisible","togglePickerVisible","useEffect","current","focus","normalizedOptions","pickerOptions","colors","viewStyles","textStyles","additionalBorderStyles","additionalMarginStyles","borderStyles","extractedBorderStyles","marginStyles","extractedMarginStyles","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderTopWidth","borderRightWidth","borderLeftWidth","borderBottomWidth","borderColor","borderStyle","backgroundColor","stylesWithoutBordersAndMargins","selectedLabel","find","labelText","textAlign","color","fontSize","paddingBottom","leftIconOutset","leftIcon","marginRight","marginLeft","rightIcon","calculateLeftPadding","Math","abs","assistiveTextLabel","paddingLeft","paddingTop","primaryTextStyle","handleValueChange","newValue","itemIndex","styles","marginsContainer","touchableContainer","outsetContainer","insetContainer","primaryTextContainer","iosPicker","divider","iosSafeArea","iosButton","iosNativePicker","nonIosPicker","create","alignSelf","alignItems","maxWidth","flex","flexDirection","justifyContent","paddingRight","position","bottom","left","right","maxHeight","opacity","top"],"sources":["Picker.tsx"],"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\";\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 { width: deviceWidth, height: deviceHeight } = Dimensions.get(\"screen\");\nconst 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 {/* 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 },\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"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","StyleSheet","Text","Platform","Dimensions","omit","pickBy","identity","isObject","SafeAreaView","Picker","NativePicker","withTheme","Portal","Button","Touchable","extractStyles","extractBorderAndMarginStyles","borderStyleNames","marginStyleNames","normalizeOptions","options","length","map","option","label","String","value","Error","width","deviceWidth","height","deviceHeight","get","isIos","OS","unstyledColor","disabledColor","errorColor","error","onValueChange","defaultValue","Icon","style","placeholder","disabled","theme","assistiveText","iconColor","iconSize","leftIconMode","leftIconName","placeholderTextColor","rightIconName","type","androidPickerRef","useRef","undefined","internalValue","setInternalValue","useState","pickerVisible","setPickerVisible","togglePickerVisible","useEffect","current","focus","normalizedOptions","pickerOptions","colors","viewStyles","textStyles","additionalBorderStyles","additionalMarginStyles","borderStyles","extractedBorderStyles","marginStyles","extractedMarginStyles","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderTopWidth","borderRightWidth","borderLeftWidth","borderBottomWidth","borderColor","borderStyle","backgroundColor","stylesWithoutBordersAndMargins","selectedLabel","find","labelText","textAlign","color","fontSize","paddingBottom","leftIconOutset","leftIcon","marginRight","marginLeft","rightIcon","calculateLeftPadding","Math","abs","assistiveTextLabel","paddingLeft","paddingTop","primaryTextStyle","handleValueChange","newValue","itemIndex","styles","marginsContainer","touchableContainer","outsetContainer","insetContainer","primaryTextContainer","iosPicker","divider","iosSafeArea","iosButton","iosNativePicker","nonIosPicker","create","alignSelf","alignItems","maxWidth","flex","flexDirection","justifyContent","paddingRight","position","bottom","left","right","maxHeight","opacity","top"],"sources":["Picker.tsx"],"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\";\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 { width: deviceWidth, height: deviceHeight } = Dimensions.get(\"screen\");\nconst 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 {/* 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 },\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"],"mappings":"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"}
@@ -10,7 +10,7 @@ import TextField from "../TextField";
10
10
  import Touchable from "../Touchable";
11
11
 
12
12
  const Picker = _ref => {
13
- var _options$find$label, _options$find;
13
+ var _options$find;
14
14
 
15
15
  let {
16
16
  style,
@@ -67,7 +67,7 @@ const Picker = _ref => {
67
67
  };
68
68
 
69
69
  const stylesWithoutMargin = style && omit(StyleSheet.flatten(style), ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
70
- const selectedLabel = selectedValue && ((_options$find$label = (_options$find = options.find(o => o.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) !== null && _options$find$label !== void 0 ? _options$find$label : selectedValue);
70
+ const selectedLabel = selectedValue && (((_options$find = options.find(o => o.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) ?? selectedValue);
71
71
  return /*#__PURE__*/React.createElement(Touchable, {
72
72
  disabled: disabled,
73
73
  onPress: toggleFocus,
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","omit","withTheme","Picker","NativePicker","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","selectedLabel","find","o","value","label","styles","container","opacity","position","top","left","right","bottom","width","map","create","alignSelf"],"sources":["PickerComponent.android.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport omit from \"lodash.omit\";\nimport { withTheme } from \"../../theming\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\nimport { extractStyles } from \"../../utilities\";\n\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\n\nconst Picker: React.FC<PickerComponentProps> = ({\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange: onValueChangeOverride = () => {},\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n\n const onValueChange = (itemValue: string, itemIndex: number) => {\n toggleFocus();\n onValueChangeOverride(itemValue, itemIndex);\n };\n\n const toggleFocus = () => {\n if (!disabled) {\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n }\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((o) => o.value === selectedValue)?.label ?? selectedValue);\n\n return (\n <Touchable\n disabled={disabled}\n onPress={toggleFocus}\n style={[styles.container, viewStyles]}\n >\n <View>\n <NativePicker\n enabled={!disabled}\n selectedValue={selectedValue}\n onValueChange={onValueChange}\n style={{\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n }}\n >\n {options.map((o) => (\n <NativePicker.Item label={o.label} value={o.value} key={o.value} />\n ))}\n </NativePicker>\n <View pointerEvents=\"none\">\n <TextField\n {...props}\n value={selectedLabel}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </View>\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n});\n\nexport default withTheme(Picker);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","StyleSheet","omit","withTheme","Picker","NativePicker","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","selectedLabel","find","o","value","label","styles","container","opacity","position","top","left","right","bottom","width","map","create","alignSelf"],"sources":["PickerComponent.android.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport omit from \"lodash.omit\";\nimport { withTheme } from \"../../theming\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\nimport { extractStyles } from \"../../utilities\";\n\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\n\nconst Picker: React.FC<PickerComponentProps> = ({\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange: onValueChangeOverride = () => {},\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n\n const onValueChange = (itemValue: string, itemIndex: number) => {\n toggleFocus();\n onValueChangeOverride(itemValue, itemIndex);\n };\n\n const toggleFocus = () => {\n if (!disabled) {\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n }\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((o) => o.value === selectedValue)?.label ?? selectedValue);\n\n return (\n <Touchable\n disabled={disabled}\n onPress={toggleFocus}\n style={[styles.container, viewStyles]}\n >\n <View>\n <NativePicker\n enabled={!disabled}\n selectedValue={selectedValue}\n onValueChange={onValueChange}\n style={{\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n }}\n >\n {options.map((o) => (\n <NativePicker.Item label={o.label} value={o.value} key={o.value} />\n ))}\n </NativePicker>\n <View pointerEvents=\"none\">\n <TextField\n {...props}\n value={selectedLabel}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </View>\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n});\n\nexport default withTheme(Picker);\n"],"mappings":"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"}
@@ -13,7 +13,7 @@ import Touchable from "../Touchable";
13
13
  import { extractStyles } from "../../utilities";
14
14
 
15
15
  const Picker = _ref => {
16
- var _options$find$label, _options$find;
16
+ var _options$find;
17
17
 
18
18
  let {
19
19
  Icon,
@@ -69,7 +69,7 @@ const Picker = _ref => {
69
69
  };
70
70
 
71
71
  const stylesWithoutMargin = style && omit(StyleSheet.flatten(style), ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
72
- const selectedLabel = selectedValue && ((_options$find$label = (_options$find = options.find(o => o.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) !== null && _options$find$label !== void 0 ? _options$find$label : selectedValue);
72
+ const selectedLabel = selectedValue && (((_options$find = options.find(o => o.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) ?? selectedValue);
73
73
  return /*#__PURE__*/React.createElement(View, {
74
74
  style: [styles.container, viewStyles]
75
75
  }, /*#__PURE__*/React.createElement(Touchable, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","SafeAreaView","omit","Picker","NativePicker","withTheme","Portal","Button","TextField","Touchable","extractStyles","Icon","style","options","placeholder","selectedValue","disabled","onValueChange","theme","colors","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","pickerVisible","setIsPickerVisible","useState","toggleVisibility","current","toggleFocus","stylesWithoutMargin","flatten","selectedLabel","find","o","value","label","styles","container","String","picker","divider","pickerContainer","closeButton","map","create","alignSelf","position","bottom","left","right","flexDirection","justifyContent","width"],"sources":["PickerComponent.ios.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport { SafeAreaView } from \"react-native-safe-area-context\";\nimport omit from \"lodash.omit\";\n\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport { withTheme } from \"../../theming\";\n\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\nimport { extractStyles } from \"../../utilities\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nconst Picker: React.FC<PickerComponentProps & IconSlot> = ({\n Icon,\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange = () => {},\n theme: { colors },\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n const [pickerVisible, setIsPickerVisible] = React.useState(false);\n\n const toggleVisibility = () => {\n setIsPickerVisible(!pickerVisible);\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((o) => o.value === selectedValue)?.label ?? selectedValue);\n\n return (\n <View style={[styles.container, viewStyles]}>\n <Touchable disabled={disabled} onPress={toggleVisibility}>\n <TextField\n {...props}\n value={String(selectedLabel)}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n pointerEvents=\"none\"\n // @ts-expect-error\n style={stylesWithoutMargin}\n Icon={Icon}\n />\n </Touchable>\n {pickerVisible && (\n <Portal>\n <View style={[styles.picker, { backgroundColor: colors.divider }]}>\n <SafeAreaView style={styles.pickerContainer}>\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={toggleVisibility}\n style={styles.closeButton}\n >\n Close\n </Button>\n <NativePicker\n style={{ backgroundColor: \"white\" }}\n selectedValue={selectedValue}\n onValueChange={onValueChange}\n >\n {options.map((o: any) => (\n <NativePicker.Item\n label={o.label}\n value={o.value}\n key={o.value}\n />\n ))}\n </NativePicker>\n </SafeAreaView>\n </View>\n </Portal>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n picker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n pickerContainer: {\n backgroundColor: \"white\",\n flexDirection: \"column\",\n width: \"100%\",\n },\n closeButton: {\n alignSelf: \"flex-end\",\n },\n});\n\nexport default withTheme(Picker);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","StyleSheet","SafeAreaView","omit","Picker","NativePicker","withTheme","Portal","Button","TextField","Touchable","extractStyles","Icon","style","options","placeholder","selectedValue","disabled","onValueChange","theme","colors","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","pickerVisible","setIsPickerVisible","useState","toggleVisibility","current","toggleFocus","stylesWithoutMargin","flatten","selectedLabel","find","o","value","label","styles","container","String","picker","divider","pickerContainer","closeButton","map","create","alignSelf","position","bottom","left","right","flexDirection","justifyContent","width"],"sources":["PickerComponent.ios.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport { SafeAreaView } from \"react-native-safe-area-context\";\nimport omit from \"lodash.omit\";\n\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport { withTheme } from \"../../theming\";\n\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\nimport { extractStyles } from \"../../utilities\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nconst Picker: React.FC<PickerComponentProps & IconSlot> = ({\n Icon,\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange = () => {},\n theme: { colors },\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n const [pickerVisible, setIsPickerVisible] = React.useState(false);\n\n const toggleVisibility = () => {\n setIsPickerVisible(!pickerVisible);\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((o) => o.value === selectedValue)?.label ?? selectedValue);\n\n return (\n <View style={[styles.container, viewStyles]}>\n <Touchable disabled={disabled} onPress={toggleVisibility}>\n <TextField\n {...props}\n value={String(selectedLabel)}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n pointerEvents=\"none\"\n // @ts-expect-error\n style={stylesWithoutMargin}\n Icon={Icon}\n />\n </Touchable>\n {pickerVisible && (\n <Portal>\n <View style={[styles.picker, { backgroundColor: colors.divider }]}>\n <SafeAreaView style={styles.pickerContainer}>\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={toggleVisibility}\n style={styles.closeButton}\n >\n Close\n </Button>\n <NativePicker\n style={{ backgroundColor: \"white\" }}\n selectedValue={selectedValue}\n onValueChange={onValueChange}\n >\n {options.map((o: any) => (\n <NativePicker.Item\n label={o.label}\n value={o.value}\n key={o.value}\n />\n ))}\n </NativePicker>\n </SafeAreaView>\n </View>\n </Portal>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n picker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n pickerContainer: {\n backgroundColor: \"white\",\n flexDirection: \"column\",\n width: \"100%\",\n },\n closeButton: {\n alignSelf: \"flex-end\",\n },\n});\n\nexport default withTheme(Picker);\n"],"mappings":"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"}
@@ -10,7 +10,7 @@ import TextField from "../TextField";
10
10
  import Touchable from "../Touchable";
11
11
 
12
12
  const Picker = _ref => {
13
- var _options$find$label, _options$find;
13
+ var _options$find;
14
14
 
15
15
  let {
16
16
  style,
@@ -67,7 +67,7 @@ const Picker = _ref => {
67
67
  };
68
68
 
69
69
  const stylesWithoutMargin = style && omit(StyleSheet.flatten(style), ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
70
- const selectedLabel = selectedValue && ((_options$find$label = (_options$find = options.find(o => o.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) !== null && _options$find$label !== void 0 ? _options$find$label : selectedValue);
70
+ const selectedLabel = selectedValue && (((_options$find = options.find(o => o.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) ?? selectedValue);
71
71
  return /*#__PURE__*/React.createElement(Touchable, {
72
72
  disabled: disabled,
73
73
  onPress: toggleFocus,
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","Picker","NativePicker","omit","withTheme","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","selectedLabel","find","o","value","label","styles","container","flex","opacity","position","top","left","right","bottom","width","map","create","alignSelf"],"sources":["PickerComponent.web.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\nimport omit from \"lodash.omit\";\nimport { withTheme } from \"../../theming\";\nimport { extractStyles } from \"../../utilities\";\n\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\n\nconst Picker: React.FC<PickerComponentProps> = ({\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange: onValueChangeOverride = () => {},\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n\n const onValueChange = (itemValue: string, itemIndex: number) => {\n toggleFocus();\n onValueChangeOverride(itemValue, itemIndex);\n };\n\n const toggleFocus = () => {\n if (!disabled) {\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n }\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((o) => o.value === selectedValue)?.label ?? selectedValue);\n\n return (\n <Touchable\n disabled={disabled}\n onPress={toggleFocus}\n style={[styles.container, viewStyles]}\n >\n <View>\n <NativePicker\n enabled={!disabled}\n selectedValue={selectedValue}\n onValueChange={onValueChange}\n style={{\n flex: 1,\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n }}\n >\n {options.map((o) => (\n <NativePicker.Item label={o.label} value={o.value} key={o.value} />\n ))}\n </NativePicker>\n <View pointerEvents=\"none\">\n <TextField\n {...props}\n value={selectedLabel}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </View>\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n});\n\nexport default withTheme(Picker);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","StyleSheet","Picker","NativePicker","omit","withTheme","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","selectedLabel","find","o","value","label","styles","container","flex","opacity","position","top","left","right","bottom","width","map","create","alignSelf"],"sources":["PickerComponent.web.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\nimport omit from \"lodash.omit\";\nimport { withTheme } from \"../../theming\";\nimport { extractStyles } from \"../../utilities\";\n\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\n\nconst Picker: React.FC<PickerComponentProps> = ({\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange: onValueChangeOverride = () => {},\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n\n const onValueChange = (itemValue: string, itemIndex: number) => {\n toggleFocus();\n onValueChangeOverride(itemValue, itemIndex);\n };\n\n const toggleFocus = () => {\n if (!disabled) {\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n }\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((o) => o.value === selectedValue)?.label ?? selectedValue);\n\n return (\n <Touchable\n disabled={disabled}\n onPress={toggleFocus}\n style={[styles.container, viewStyles]}\n >\n <View>\n <NativePicker\n enabled={!disabled}\n selectedValue={selectedValue}\n onValueChange={onValueChange}\n style={{\n flex: 1,\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n }}\n >\n {options.map((o) => (\n <NativePicker.Item label={o.label} value={o.value} key={o.value} />\n ))}\n </NativePicker>\n <View pointerEvents=\"none\">\n <TextField\n {...props}\n value={selectedLabel}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </View>\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n});\n\nexport default withTheme(Picker);\n"],"mappings":"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"}
@@ -27,7 +27,7 @@ const RadioButton = _ref => {
27
27
  } = useRadioButtonGroupContext();
28
28
  const realValue = getValueForRadioButton(value);
29
29
  const realContextValue = getValueForRadioButton(contextValue);
30
- const isSelected = selected !== null && selected !== void 0 ? selected : realContextValue === realValue;
30
+ const isSelected = selected ?? realContextValue === realValue;
31
31
 
32
32
  const handlePress = () => {
33
33
  onPress === null || onPress === void 0 ? void 0 : onPress(realValue);
@@ -1 +1 @@
1
- {"version":3,"names":["React","Config","IconButton","getValueForRadioButton","useRadioButtonGroupContext","RadioButton","Icon","disabled","color","value","selected","unselectedColor","onPress","size","radioButtonSize","selectedIcon","unselectedIcon","style","rest","contextValue","onValueChange","realValue","realContextValue","isSelected","handlePress"],"sources":["RadioButton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { StyleProp, ViewStyle } from \"react-native\";\n\nimport Config from \"../Config\";\nimport IconButton from \"../IconButton\";\nimport { getValueForRadioButton } from \"../../utilities\";\nimport { useRadioButtonGroupContext } from \"./context\";\n\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nexport type RadioButtonProps = {\n selected?: boolean;\n disabled?: boolean;\n color?: string;\n value?: string | number;\n unselectedColor?: string;\n onPress?: (value?: string) => void;\n style?: StyleProp<ViewStyle>;\n size?: number;\n selectedIcon?: string;\n unselectedIcon?: string;\n} & IconSlot;\n\nconst RadioButton: React.FC<RadioButtonProps> = ({\n Icon,\n disabled = false,\n color,\n value = \"\",\n selected,\n unselectedColor,\n onPress,\n size = Config.radioButtonSize,\n selectedIcon = \"MaterialIcons/radio-button-checked\",\n unselectedIcon = \"MaterialIcons/radio-button-unchecked\",\n style,\n ...rest\n}) => {\n const { value: contextValue, onValueChange } = useRadioButtonGroupContext();\n\n const realValue = getValueForRadioButton(value);\n const realContextValue = getValueForRadioButton(contextValue);\n const isSelected = selected ?? realContextValue === realValue;\n\n const handlePress = () => {\n onPress?.(realValue);\n onValueChange?.(realValue);\n };\n\n return (\n <IconButton\n Icon={Icon}\n icon={isSelected ? selectedIcon : unselectedIcon}\n color={isSelected ? color : unselectedColor}\n disabled={disabled}\n onPress={handlePress}\n size={size}\n style={style}\n {...rest}\n />\n );\n};\n\nexport default RadioButton;\n"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAGA,OAAOC,MAAP,MAAmB,WAAnB;AACA,OAAOC,UAAP,MAAuB,eAAvB;AACA,SAASC,sBAAT,QAAuC,iBAAvC;AACA,SAASC,0BAAT,QAA2C,WAA3C;;AAiBA,MAAMC,WAAuC,GAAG,QAa1C;EAAA,IAb2C;IAC/CC,IAD+C;IAE/CC,QAAQ,GAAG,KAFoC;IAG/CC,KAH+C;IAI/CC,KAAK,GAAG,EAJuC;IAK/CC,QAL+C;IAM/CC,eAN+C;IAO/CC,OAP+C;IAQ/CC,IAAI,GAAGZ,MAAM,CAACa,eARiC;IAS/CC,YAAY,GAAG,oCATgC;IAU/CC,cAAc,GAAG,sCAV8B;IAW/CC,KAX+C;IAY/C,GAAGC;EAZ4C,CAa3C;EACJ,MAAM;IAAET,KAAK,EAAEU,YAAT;IAAuBC;EAAvB,IAAyChB,0BAA0B,EAAzE;EAEA,MAAMiB,SAAS,GAAGlB,sBAAsB,CAACM,KAAD,CAAxC;EACA,MAAMa,gBAAgB,GAAGnB,sBAAsB,CAACgB,YAAD,CAA/C;EACA,MAAMI,UAAU,GAAGb,QAAH,aAAGA,QAAH,cAAGA,QAAH,GAAeY,gBAAgB,KAAKD,SAApD;;EAEA,MAAMG,WAAW,GAAG,MAAM;IACxBZ,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAGS,SAAH,CAAP;IACAD,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAGC,SAAH,CAAb;EACD,CAHD;;EAKA,oBACE,oBAAC,UAAD;IACE,IAAI,EAAEf,IADR;IAEE,IAAI,EAAEiB,UAAU,GAAGR,YAAH,GAAkBC,cAFpC;IAGE,KAAK,EAAEO,UAAU,GAAGf,KAAH,GAAWG,eAH9B;IAIE,QAAQ,EAAEJ,QAJZ;IAKE,OAAO,EAAEiB,WALX;IAME,IAAI,EAAEX,IANR;IAOE,KAAK,EAAEI;EAPT,GAQMC,IARN,EADF;AAYD,CArCD;;AAuCA,eAAeb,WAAf"}
1
+ {"version":3,"names":["React","Config","IconButton","getValueForRadioButton","useRadioButtonGroupContext","RadioButton","Icon","disabled","color","value","selected","unselectedColor","onPress","size","radioButtonSize","selectedIcon","unselectedIcon","style","rest","contextValue","onValueChange","realValue","realContextValue","isSelected","handlePress"],"sources":["RadioButton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { StyleProp, ViewStyle } from \"react-native\";\n\nimport Config from \"../Config\";\nimport IconButton from \"../IconButton\";\nimport { getValueForRadioButton } from \"../../utilities\";\nimport { useRadioButtonGroupContext } from \"./context\";\n\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nexport type RadioButtonProps = {\n selected?: boolean;\n disabled?: boolean;\n color?: string;\n value?: string | number;\n unselectedColor?: string;\n onPress?: (value?: string) => void;\n style?: StyleProp<ViewStyle>;\n size?: number;\n selectedIcon?: string;\n unselectedIcon?: string;\n} & IconSlot;\n\nconst RadioButton: React.FC<RadioButtonProps> = ({\n Icon,\n disabled = false,\n color,\n value = \"\",\n selected,\n unselectedColor,\n onPress,\n size = Config.radioButtonSize,\n selectedIcon = \"MaterialIcons/radio-button-checked\",\n unselectedIcon = \"MaterialIcons/radio-button-unchecked\",\n style,\n ...rest\n}) => {\n const { value: contextValue, onValueChange } = useRadioButtonGroupContext();\n\n const realValue = getValueForRadioButton(value);\n const realContextValue = getValueForRadioButton(contextValue);\n const isSelected = selected ?? realContextValue === realValue;\n\n const handlePress = () => {\n onPress?.(realValue);\n onValueChange?.(realValue);\n };\n\n return (\n <IconButton\n Icon={Icon}\n icon={isSelected ? selectedIcon : unselectedIcon}\n color={isSelected ? color : unselectedColor}\n disabled={disabled}\n onPress={handlePress}\n size={size}\n style={style}\n {...rest}\n />\n );\n};\n\nexport default RadioButton;\n"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAGA,OAAOC,MAAP,MAAmB,WAAnB;AACA,OAAOC,UAAP,MAAuB,eAAvB;AACA,SAASC,sBAAT,QAAuC,iBAAvC;AACA,SAASC,0BAAT,QAA2C,WAA3C;;AAiBA,MAAMC,WAAuC,GAAG,QAa1C;EAAA,IAb2C;IAC/CC,IAD+C;IAE/CC,QAAQ,GAAG,KAFoC;IAG/CC,KAH+C;IAI/CC,KAAK,GAAG,EAJuC;IAK/CC,QAL+C;IAM/CC,eAN+C;IAO/CC,OAP+C;IAQ/CC,IAAI,GAAGZ,MAAM,CAACa,eARiC;IAS/CC,YAAY,GAAG,oCATgC;IAU/CC,cAAc,GAAG,sCAV8B;IAW/CC,KAX+C;IAY/C,GAAGC;EAZ4C,CAa3C;EACJ,MAAM;IAAET,KAAK,EAAEU,YAAT;IAAuBC;EAAvB,IAAyChB,0BAA0B,EAAzE;EAEA,MAAMiB,SAAS,GAAGlB,sBAAsB,CAACM,KAAD,CAAxC;EACA,MAAMa,gBAAgB,GAAGnB,sBAAsB,CAACgB,YAAD,CAA/C;EACA,MAAMI,UAAU,GAAGb,QAAQ,IAAIY,gBAAgB,KAAKD,SAApD;;EAEA,MAAMG,WAAW,GAAG,MAAM;IACxBZ,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAGS,SAAH,CAAP;IACAD,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAGC,SAAH,CAAb;EACD,CAHD;;EAKA,oBACE,oBAAC,UAAD;IACE,IAAI,EAAEf,IADR;IAEE,IAAI,EAAEiB,UAAU,GAAGR,YAAH,GAAkBC,cAFpC;IAGE,KAAK,EAAEO,UAAU,GAAGf,KAAH,GAAWG,eAH9B;IAIE,QAAQ,EAAEJ,QAJZ;IAKE,OAAO,EAAEiB,WALX;IAME,IAAI,EAAEX,IANR;IAOE,KAAK,EAAEI;EAPT,GAQMC,IARN,EADF;AAYD,CArCD;;AAuCA,eAAeb,WAAf"}
@@ -59,7 +59,7 @@ const RadioButtonRow = _ref => {
59
59
  } = useRadioButtonGroupContext();
60
60
  const realValue = getValueForRadioButton(value);
61
61
  const realContextValue = getValueForRadioButton(contextValue);
62
- const isSelected = selected !== null && selected !== void 0 ? selected : realContextValue === realValue;
62
+ const isSelected = selected ?? realContextValue === realValue;
63
63
 
64
64
  const handlePress = () => {
65
65
  onPress === null || onPress === void 0 ? void 0 : onPress(realValue);
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","View","Platform","RadioButton","Text","useRadioButtonGroupContext","Direction","GroupDirection","Touchable","extractStyles","getValueForRadioButton","getRadioButtonAlignment","parentDirection","direction","Horizontal","Row","RowReverse","renderLabel","value","labelStyle","textStyle","RadioButtonRow","Icon","label","color","unselectedColor","onPress","labelContainerStyle","radioButtonStyle","selected","disabled","style","rest","contextValue","onValueChange","realValue","realContextValue","isSelected","handlePress","textStyles","viewStyles","styles","mainParent","flexDirection","alignItems","flex","create","justifyContent","paddingStart","minHeight","paddingEnd","display","select","web","cursor","userSelect"],"sources":["RadioButtonRow.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n StyleProp,\n ViewStyle,\n StyleSheet,\n TextStyle,\n View,\n Platform,\n} from \"react-native\";\nimport RadioButton, { RadioButtonProps } from \"./RadioButton\";\nimport Text from \"../Text\";\nimport { useRadioButtonGroupContext } from \"./context\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { Direction as GroupDirection } from \"./context\";\nimport Touchable from \"../Touchable\";\nimport { extractStyles, getValueForRadioButton } from \"../../utilities\";\n\nexport enum Direction {\n Row = \"row\",\n RowReverse = \"row-reverse\",\n}\n\nexport interface RadioButtonRowProps extends Omit<RadioButtonProps, \"onPress\"> {\n label: string | React.ReactNode;\n value: string | number; // A string (or number that will be parsed String(number)) that this radio button row represents when selected\n color?: string;\n unselectedColor?: string;\n labelContainerStyle: StyleProp<ViewStyle>;\n radioButtonStyle?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n onPress?: (value: string) => void;\n direction?: Direction;\n}\n\nconst getRadioButtonAlignment = (\n parentDirection: GroupDirection | undefined,\n direction: Direction\n) => {\n if (parentDirection === GroupDirection.Horizontal) {\n return direction === Direction.Row ? \"flex-start\" : \"flex-end\";\n } else if (direction === Direction.RowReverse) {\n return \"flex-start\";\n } else {\n return \"flex-end\";\n }\n};\n\nconst renderLabel = (\n value: string | React.ReactNode,\n labelStyle: StyleProp<TextStyle>,\n textStyle: StyleProp<TextStyle>\n) => {\n if (typeof value === \"string\") {\n return <Text style={[labelStyle, textStyle]}>{value}</Text>;\n } else {\n return <>{value}</>;\n }\n};\n\nconst RadioButtonRow: React.FC<RadioButtonRowProps & IconSlot> = ({\n Icon,\n label,\n value = \"\",\n color,\n unselectedColor,\n onPress,\n labelContainerStyle,\n labelStyle,\n radioButtonStyle,\n direction = Direction.Row,\n selected,\n disabled,\n style,\n ...rest\n}) => {\n const {\n value: contextValue,\n onValueChange,\n direction: parentDirection,\n } = useRadioButtonGroupContext();\n\n const realValue = getValueForRadioButton(value);\n const realContextValue = getValueForRadioButton(contextValue);\n const isSelected = selected ?? realContextValue === realValue;\n\n const handlePress = () => {\n onPress?.(realValue);\n onValueChange?.(realValue);\n };\n\n const { textStyles, viewStyles } = extractStyles(style);\n\n return (\n <Touchable\n onPress={handlePress}\n style={[styles.mainParent, { flexDirection: direction }, viewStyles]}\n disabled={disabled}\n {...rest}\n >\n <View\n style={[\n styles.label,\n {\n alignItems: direction === Direction.Row ? \"flex-start\" : \"flex-end\",\n },\n labelContainerStyle,\n ]}\n >\n {renderLabel(label, labelStyle, textStyles)}\n </View>\n <View\n style={{\n flex: 1,\n alignItems: getRadioButtonAlignment(parentDirection, direction),\n }}\n >\n <RadioButton\n Icon={Icon}\n selected={isSelected}\n value={realValue}\n color={color}\n unselectedColor={unselectedColor}\n style={radioButtonStyle}\n />\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n mainParent: {\n alignItems: \"center\",\n justifyContent: \"space-around\",\n paddingStart: 20,\n minHeight: 50,\n paddingEnd: 20,\n display: \"flex\",\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n label: {\n flex: 3,\n },\n});\n\nexport default RadioButtonRow;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","StyleSheet","View","Platform","RadioButton","Text","useRadioButtonGroupContext","Direction","GroupDirection","Touchable","extractStyles","getValueForRadioButton","getRadioButtonAlignment","parentDirection","direction","Horizontal","Row","RowReverse","renderLabel","value","labelStyle","textStyle","RadioButtonRow","Icon","label","color","unselectedColor","onPress","labelContainerStyle","radioButtonStyle","selected","disabled","style","rest","contextValue","onValueChange","realValue","realContextValue","isSelected","handlePress","textStyles","viewStyles","styles","mainParent","flexDirection","alignItems","flex","create","justifyContent","paddingStart","minHeight","paddingEnd","display","select","web","cursor","userSelect"],"sources":["RadioButtonRow.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n StyleProp,\n ViewStyle,\n StyleSheet,\n TextStyle,\n View,\n Platform,\n} from \"react-native\";\nimport RadioButton, { RadioButtonProps } from \"./RadioButton\";\nimport Text from \"../Text\";\nimport { useRadioButtonGroupContext } from \"./context\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { Direction as GroupDirection } from \"./context\";\nimport Touchable from \"../Touchable\";\nimport { extractStyles, getValueForRadioButton } from \"../../utilities\";\n\nexport enum Direction {\n Row = \"row\",\n RowReverse = \"row-reverse\",\n}\n\nexport interface RadioButtonRowProps extends Omit<RadioButtonProps, \"onPress\"> {\n label: string | React.ReactNode;\n value: string | number; // A string (or number that will be parsed String(number)) that this radio button row represents when selected\n color?: string;\n unselectedColor?: string;\n labelContainerStyle: StyleProp<ViewStyle>;\n radioButtonStyle?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n onPress?: (value: string) => void;\n direction?: Direction;\n}\n\nconst getRadioButtonAlignment = (\n parentDirection: GroupDirection | undefined,\n direction: Direction\n) => {\n if (parentDirection === GroupDirection.Horizontal) {\n return direction === Direction.Row ? \"flex-start\" : \"flex-end\";\n } else if (direction === Direction.RowReverse) {\n return \"flex-start\";\n } else {\n return \"flex-end\";\n }\n};\n\nconst renderLabel = (\n value: string | React.ReactNode,\n labelStyle: StyleProp<TextStyle>,\n textStyle: StyleProp<TextStyle>\n) => {\n if (typeof value === \"string\") {\n return <Text style={[labelStyle, textStyle]}>{value}</Text>;\n } else {\n return <>{value}</>;\n }\n};\n\nconst RadioButtonRow: React.FC<RadioButtonRowProps & IconSlot> = ({\n Icon,\n label,\n value = \"\",\n color,\n unselectedColor,\n onPress,\n labelContainerStyle,\n labelStyle,\n radioButtonStyle,\n direction = Direction.Row,\n selected,\n disabled,\n style,\n ...rest\n}) => {\n const {\n value: contextValue,\n onValueChange,\n direction: parentDirection,\n } = useRadioButtonGroupContext();\n\n const realValue = getValueForRadioButton(value);\n const realContextValue = getValueForRadioButton(contextValue);\n const isSelected = selected ?? realContextValue === realValue;\n\n const handlePress = () => {\n onPress?.(realValue);\n onValueChange?.(realValue);\n };\n\n const { textStyles, viewStyles } = extractStyles(style);\n\n return (\n <Touchable\n onPress={handlePress}\n style={[styles.mainParent, { flexDirection: direction }, viewStyles]}\n disabled={disabled}\n {...rest}\n >\n <View\n style={[\n styles.label,\n {\n alignItems: direction === Direction.Row ? \"flex-start\" : \"flex-end\",\n },\n labelContainerStyle,\n ]}\n >\n {renderLabel(label, labelStyle, textStyles)}\n </View>\n <View\n style={{\n flex: 1,\n alignItems: getRadioButtonAlignment(parentDirection, direction),\n }}\n >\n <RadioButton\n Icon={Icon}\n selected={isSelected}\n value={realValue}\n color={color}\n unselectedColor={unselectedColor}\n style={radioButtonStyle}\n />\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n mainParent: {\n alignItems: \"center\",\n justifyContent: \"space-around\",\n paddingStart: 20,\n minHeight: 50,\n paddingEnd: 20,\n display: \"flex\",\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n label: {\n flex: 3,\n },\n});\n\nexport default RadioButtonRow;\n"],"mappings":"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"}