@draftbit/core 44.1.13-cd2af3.0 → 44.1.15

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 (215) hide show
  1. package/lib/commonjs/components/DeprecatedButton.js +4 -19
  2. package/lib/commonjs/components/DeprecatedButton.js.map +1 -1
  3. package/lib/commonjs/components/DeprecatedCardWrapper.js +2 -14
  4. package/lib/commonjs/components/DeprecatedCardWrapper.js.map +1 -1
  5. package/lib/commonjs/components/Justification.js +0 -3
  6. package/lib/commonjs/components/Picker/Picker.js +27 -264
  7. package/lib/commonjs/components/Picker/Picker.js.map +1 -1
  8. package/lib/commonjs/components/Picker/PickerComponent.android.js +110 -34
  9. package/lib/commonjs/components/Picker/PickerComponent.android.js.map +1 -1
  10. package/lib/commonjs/components/Picker/PickerComponent.ios.js +112 -38
  11. package/lib/commonjs/components/Picker/PickerComponent.ios.js.map +1 -1
  12. package/lib/commonjs/components/Picker/PickerComponent.web.js +111 -34
  13. package/lib/commonjs/components/Picker/PickerComponent.web.js.map +1 -1
  14. package/lib/commonjs/components/Picker/PickerTypes.js +6 -0
  15. package/lib/commonjs/components/Picker/PickerTypes.js.map +1 -0
  16. package/lib/commonjs/components/ResizeMode.js +0 -3
  17. package/lib/commonjs/mappings/RadioButtonGroup.js.map +1 -1
  18. package/lib/commonjs/mappings/RadioButtonRow.js.map +1 -1
  19. package/lib/module/components/Justification.js +1 -1
  20. package/lib/module/components/Picker/Picker.js +28 -258
  21. package/lib/module/components/Picker/Picker.js.map +1 -1
  22. package/lib/module/components/Picker/PickerComponent.android.js +103 -32
  23. package/lib/module/components/Picker/PickerComponent.android.js.map +1 -1
  24. package/lib/module/components/Picker/PickerComponent.ios.js +107 -36
  25. package/lib/module/components/Picker/PickerComponent.ios.js.map +1 -1
  26. package/lib/module/components/Picker/PickerComponent.web.js +104 -32
  27. package/lib/module/components/Picker/PickerComponent.web.js.map +1 -1
  28. package/lib/module/components/Picker/PickerTypes.js +2 -0
  29. package/lib/module/components/Picker/PickerTypes.js.map +1 -0
  30. package/lib/module/components/ResizeMode.js +1 -1
  31. package/lib/typescript/src/components/Picker/Picker.d.ts +4 -28
  32. package/lib/typescript/src/components/Picker/PickerComponent.android.d.ts +5 -12
  33. package/lib/typescript/src/components/Picker/PickerComponent.ios.d.ts +5 -11
  34. package/lib/typescript/src/components/Picker/PickerComponent.web.d.ts +5 -12
  35. package/lib/typescript/src/components/Picker/PickerTypes.d.ts +18 -0
  36. package/package.json +2 -2
  37. package/src/components/Picker/Picker.tsx +34 -433
  38. package/src/components/Picker/PickerComponent.android.tsx +101 -44
  39. package/src/components/Picker/PickerComponent.ios.tsx +114 -58
  40. package/src/components/Picker/PickerComponent.web.tsx +102 -44
  41. package/src/components/Picker/PickerTypes.ts +18 -0
  42. package/src/Provider.js +0 -9
  43. package/src/components/Accordion/AccordionGroup.js +0 -44
  44. package/src/components/Accordion/AccordionItem.js +0 -32
  45. package/src/components/Accordion/index.js +0 -2
  46. package/src/components/ActionSheet/ActionSheet.js +0 -45
  47. package/src/components/ActionSheet/ActionSheetCancel.js +0 -6
  48. package/src/components/ActionSheet/ActionSheetItem.js +0 -30
  49. package/src/components/ActionSheet/index.js +0 -3
  50. package/src/components/AnimatedCircularProgress.js +0 -43
  51. package/src/components/AspectRatio.js +0 -18
  52. package/src/components/AvatarEdit.js +0 -30
  53. package/src/components/Banner.js +0 -109
  54. package/src/components/Button.js +0 -112
  55. package/src/components/Card.js +0 -57
  56. package/src/components/CardBlock.js +0 -54
  57. package/src/components/CardContainer.js +0 -69
  58. package/src/components/CardContainerRating.js +0 -79
  59. package/src/components/CardContainerShortImage.js +0 -33
  60. package/src/components/CardInline.js +0 -36
  61. package/src/components/Carousel.js +0 -66
  62. package/src/components/Checkbox/Checkbox.js +0 -63
  63. package/src/components/Checkbox/CheckboxGroup.js +0 -21
  64. package/src/components/Checkbox/CheckboxGroupRow.js +0 -77
  65. package/src/components/Checkbox/CheckboxRow.js +0 -78
  66. package/src/components/Checkbox/context.js +0 -14
  67. package/src/components/Checkbox/index.js +0 -3
  68. package/src/components/CircleImage.js +0 -8
  69. package/src/components/CircularProgress.js +0 -78
  70. package/src/components/Config.js +0 -63
  71. package/src/components/Container.js +0 -43
  72. package/src/components/DatePicker/DatePicker.js +0 -368
  73. package/src/components/DatePicker/DatePickerComponent.js +0 -13
  74. package/src/components/DatePicker/DatePickerComponent.web.js +0 -30
  75. package/src/components/DatePicker/DatePickerComponentType.js +0 -1
  76. package/src/components/DeprecatedButton.js +0 -95
  77. package/src/components/DeprecatedCardWrapper.js +0 -18
  78. package/src/components/DeprecatedFAB.js +0 -115
  79. package/src/components/Divider.js +0 -13
  80. package/src/components/Elevation.js +0 -20
  81. package/src/components/FAB.js +0 -46
  82. package/src/components/FieldSearchBarFull.js +0 -53
  83. package/src/components/FormRow.js +0 -19
  84. package/src/components/Header.js +0 -44
  85. package/src/components/HeaderLarge.js +0 -7
  86. package/src/components/HeaderMedium.js +0 -7
  87. package/src/components/HeaderOverline.js +0 -7
  88. package/src/components/IconButton.js +0 -35
  89. package/src/components/Image.js +0 -47
  90. package/src/components/Justification.js +0 -1
  91. package/src/components/Layout.js +0 -50
  92. package/src/components/NumberInput.js +0 -49
  93. package/src/components/Picker/Picker.js +0 -267
  94. package/src/components/Picker/PickerComponent.android.js +0 -20
  95. package/src/components/Picker/PickerComponent.ios.js +0 -40
  96. package/src/components/Picker/PickerComponent.web.js +0 -20
  97. package/src/components/Portal/Portal.js +0 -35
  98. package/src/components/Portal/PortalConsumer.js +0 -28
  99. package/src/components/Portal/PortalHost.js +0 -105
  100. package/src/components/Portal/PortalManager.js +0 -29
  101. package/src/components/ProgressBar.js +0 -118
  102. package/src/components/ProgressCircle.js +0 -13
  103. package/src/components/ProgressIndicator.js +0 -27
  104. package/src/components/RadioButton/RadioButton.js +0 -17
  105. package/src/components/RadioButton/RadioButtonFieldGroup.js +0 -17
  106. package/src/components/RadioButton/RadioButtonGroup.js +0 -43
  107. package/src/components/RadioButton/RadioButtonRow.js +0 -76
  108. package/src/components/RadioButton/context.js +0 -14
  109. package/src/components/RadioButton/index.js +0 -4
  110. package/src/components/ResizeMode.js +0 -1
  111. package/src/components/Row.js +0 -48
  112. package/src/components/RowBodyIcon.js +0 -8
  113. package/src/components/RowHeadlineImageCaption.js +0 -12
  114. package/src/components/RowHeadlineImageIcon.js +0 -14
  115. package/src/components/ScreenContainer.js +0 -34
  116. package/src/components/Slider.js +0 -63
  117. package/src/components/StarRating.js +0 -50
  118. package/src/components/StepIndicator.js +0 -346
  119. package/src/components/Stepper.js +0 -39
  120. package/src/components/Surface.js +0 -32
  121. package/src/components/Swiper/Swiper.js +0 -29
  122. package/src/components/Swiper/SwiperItem.js +0 -9
  123. package/src/components/Swiper/index.js +0 -2
  124. package/src/components/Switch.js +0 -56
  125. package/src/components/Text.js +0 -28
  126. package/src/components/TextField.js +0 -420
  127. package/src/components/ToggleButton.js +0 -39
  128. package/src/components/Touchable.js +0 -12
  129. package/src/components/Touchable.web.js +0 -2
  130. package/src/components/Typography.js +0 -36
  131. package/src/components/useAuthState.js +0 -31
  132. package/src/constants.js +0 -10
  133. package/src/hooks.js +0 -12
  134. package/src/index.js +0 -52
  135. package/src/interfaces/Icon.js +0 -8
  136. package/src/mappings/Accordion.js +0 -41
  137. package/src/mappings/AccordionItem.js +0 -16
  138. package/src/mappings/ActionSheet.js +0 -13
  139. package/src/mappings/ActionSheetCancel.js +0 -19
  140. package/src/mappings/ActionSheetItem.js +0 -23
  141. package/src/mappings/ActivityIndicator.js +0 -53
  142. package/src/mappings/AudioPlayer.js +0 -20
  143. package/src/mappings/AvatarEdit.js +0 -37
  144. package/src/mappings/Banner.js +0 -32
  145. package/src/mappings/BlurView.js +0 -41
  146. package/src/mappings/Button.js +0 -56
  147. package/src/mappings/Card.js +0 -52
  148. package/src/mappings/CardBlock.js +0 -122
  149. package/src/mappings/CardContainer.js +0 -102
  150. package/src/mappings/CardContainerRating.js +0 -124
  151. package/src/mappings/CardContainerShortImage.js +0 -118
  152. package/src/mappings/CardInline.js +0 -51
  153. package/src/mappings/Carousel.js +0 -18
  154. package/src/mappings/Checkbox.js +0 -45
  155. package/src/mappings/CheckboxGroup.js +0 -25
  156. package/src/mappings/CheckboxRow.js +0 -56
  157. package/src/mappings/CircleImage.js +0 -24
  158. package/src/mappings/Container.js +0 -29
  159. package/src/mappings/CustomCode.js +0 -8
  160. package/src/mappings/DatePicker.js +0 -146
  161. package/src/mappings/Divider.js +0 -26
  162. package/src/mappings/FAB.js +0 -36
  163. package/src/mappings/Fetch.js +0 -12
  164. package/src/mappings/FieldSearchBarFull.js +0 -49
  165. package/src/mappings/FlatList.js +0 -19
  166. package/src/mappings/HeaderLarge.js +0 -28
  167. package/src/mappings/HeaderMedium.js +0 -54
  168. package/src/mappings/HeaderOverline.js +0 -54
  169. package/src/mappings/Icon.js +0 -25
  170. package/src/mappings/IconButton.js +0 -30
  171. package/src/mappings/Image.js +0 -15
  172. package/src/mappings/ImageBackground.js +0 -28
  173. package/src/mappings/KeyboardAvoidingView.js +0 -40
  174. package/src/mappings/KeyboardAwareScrollView.js +0 -49
  175. package/src/mappings/Layout.js +0 -195
  176. package/src/mappings/LinearGradient.js +0 -77
  177. package/src/mappings/MapCallout.js +0 -21
  178. package/src/mappings/MapMarker.js +0 -47
  179. package/src/mappings/MapView.js +0 -138
  180. package/src/mappings/Modal.js +0 -41
  181. package/src/mappings/Picker.js +0 -139
  182. package/src/mappings/ProgressBar.js +0 -100
  183. package/src/mappings/ProgressCircle.js +0 -108
  184. package/src/mappings/ProgressIndicator.js +0 -180
  185. package/src/mappings/RadioButton.js +0 -50
  186. package/src/mappings/RadioButtonGroup.js +0 -16
  187. package/src/mappings/RadioButtonRow.js +0 -37
  188. package/src/mappings/RowBodyIcon.js +0 -75
  189. package/src/mappings/RowHeadlineImageCaption.js +0 -167
  190. package/src/mappings/RowHeadlineImageIcon.js +0 -99
  191. package/src/mappings/SafeAreaView.js +0 -33
  192. package/src/mappings/ScrollView.js +0 -30
  193. package/src/mappings/Slider.js +0 -59
  194. package/src/mappings/StarRating.js +0 -42
  195. package/src/mappings/Stepper.js +0 -28
  196. package/src/mappings/Surface.js +0 -13
  197. package/src/mappings/Swiper.js +0 -60
  198. package/src/mappings/SwiperItem.js +0 -8
  199. package/src/mappings/Switch.js +0 -75
  200. package/src/mappings/Text.js +0 -232
  201. package/src/mappings/TextArea.js +0 -52
  202. package/src/mappings/TextField.js +0 -158
  203. package/src/mappings/TextInput.js +0 -208
  204. package/src/mappings/ToggleButton.js +0 -45
  205. package/src/mappings/Touchable.js +0 -12
  206. package/src/mappings/Video.js +0 -74
  207. package/src/mappings/View.js +0 -206
  208. package/src/mappings/WebView.js +0 -18
  209. package/src/styles/DarkTheme.js +0 -26
  210. package/src/styles/DefaultTheme.js +0 -111
  211. package/src/styles/fonts.js +0 -62
  212. package/src/styles/overlay.js +0 -60
  213. package/src/styles/shadow.js +0 -51
  214. package/src/theming.js +0 -3
  215. package/src/utilities.js +0 -102
@@ -3,57 +3,133 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.PickerComponent = void 0;
6
+ exports.default = void 0;
7
7
 
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _reactNative = require("react-native");
11
11
 
12
+ var _lodash = _interopRequireDefault(require("lodash.omit"));
13
+
14
+ var _theming = require("../../theming");
15
+
12
16
  var _picker = require("@react-native-picker/picker");
13
17
 
18
+ var _utilities = require("../../utilities");
19
+
20
+ var _TextField = _interopRequireDefault(require("../TextField"));
21
+
22
+ var _Touchable = _interopRequireDefault(require("../Touchable"));
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
14
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
27
 
16
28
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
29
 
18
- const {
19
- width: deviceWidth,
20
- height: deviceHeight
21
- } = _reactNative.Dimensions.get("screen");
30
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
31
+
32
+ const Picker = _ref => {
33
+ var _options$find$label, _options$find;
22
34
 
23
- const PickerComponent = _ref => {
24
35
  let {
25
- androidPickerRef,
26
- togglePickerVisible,
27
- pickerOptions,
28
- internalValue,
29
- handleValueChange
36
+ style,
37
+ options,
38
+ placeholder,
39
+ selectedValue,
40
+ disabled = false,
41
+ onValueChange: onValueChangeOverride = () => {},
42
+ ...props
30
43
  } = _ref;
31
- return /*#__PURE__*/React.createElement(_picker.Picker, {
32
- selectedValue: internalValue,
33
- onValueChange: handleValueChange,
34
- style: styles.nonIosPicker,
35
- ref: androidPickerRef,
36
- onBlur: togglePickerVisible
37
- }, pickerOptions.map(option => /*#__PURE__*/React.createElement(_picker.Picker.Item, {
38
- label: option.label,
39
- value: option.value,
40
- key: option.value
41
- })));
42
- };
44
+ const {
45
+ viewStyles: {
46
+ borderRadius,
47
+ // eslint-disable-line @typescript-eslint/no-unused-vars
48
+ borderWidth,
49
+ // eslint-disable-line @typescript-eslint/no-unused-vars
50
+ borderTopWidth,
51
+ // eslint-disable-line @typescript-eslint/no-unused-vars
52
+ borderRightWidth,
53
+ // eslint-disable-line @typescript-eslint/no-unused-vars
54
+ borderBottomWidth,
55
+ // eslint-disable-line @typescript-eslint/no-unused-vars
56
+ borderLeftWidth,
57
+ // eslint-disable-line @typescript-eslint/no-unused-vars
58
+ borderColor,
59
+ // eslint-disable-line @typescript-eslint/no-unused-vars
60
+ backgroundColor,
61
+ // eslint-disable-line @typescript-eslint/no-unused-vars
62
+ padding,
63
+ // eslint-disable-line @typescript-eslint/no-unused-vars
64
+ paddingTop,
65
+ // eslint-disable-line @typescript-eslint/no-unused-vars
66
+ paddingRight,
67
+ // eslint-disable-line @typescript-eslint/no-unused-vars
68
+ paddingBottom,
69
+ // eslint-disable-line @typescript-eslint/no-unused-vars
70
+ paddingLeft,
71
+ // eslint-disable-line @typescript-eslint/no-unused-vars
72
+ ...viewStyles
73
+ }
74
+ } = (0, _utilities.extractStyles)(style);
75
+ const textField = React.useRef(undefined);
76
+
77
+ const onValueChange = (itemValue, itemIndex) => {
78
+ toggleFocus();
79
+ onValueChangeOverride(itemValue, itemIndex);
80
+ };
81
+
82
+ const toggleFocus = () => {
83
+ if (!disabled) {
84
+ // @ts-ignore
85
+ textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()
86
+ }
87
+ };
43
88
 
44
- exports.PickerComponent = PickerComponent;
89
+ const stylesWithoutMargin = style && (0, _lodash.default)(_reactNative.StyleSheet.flatten(style), ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
90
+ 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);
91
+ return /*#__PURE__*/React.createElement(_Touchable.default, {
92
+ disabled: disabled,
93
+ onPress: toggleFocus,
94
+ style: [styles.container, viewStyles]
95
+ }, /*#__PURE__*/React.createElement(_reactNative.View, null, /*#__PURE__*/React.createElement(_picker.Picker, {
96
+ enabled: !disabled,
97
+ selectedValue: selectedValue,
98
+ onValueChange: onValueChange,
99
+ style: {
100
+ opacity: 0,
101
+ position: "absolute",
102
+ top: 0,
103
+ left: 0,
104
+ right: 0,
105
+ bottom: 0,
106
+ width: "100%"
107
+ }
108
+ }, options.map(o => /*#__PURE__*/React.createElement(_picker.Picker.Item, {
109
+ label: o.label,
110
+ value: o.value,
111
+ key: o.value
112
+ }))), /*#__PURE__*/React.createElement(_reactNative.View, {
113
+ pointerEvents: "none"
114
+ }, /*#__PURE__*/React.createElement(_TextField.default, _extends({}, props, {
115
+ value: selectedLabel,
116
+ placeholder: placeholder // @ts-ignore
117
+ ,
118
+ ref: textField // cannot determine if ref is of correct type due to component being wrapped in a withTheme()
119
+ ,
120
+ disabled: disabled // @ts-expect-error
121
+ ,
122
+ style: stylesWithoutMargin
123
+ })))));
124
+ };
45
125
 
46
126
  const styles = _reactNative.StyleSheet.create({
47
- nonIosPicker: {
48
- opacity: 0,
49
- position: "absolute",
50
- top: 0,
51
- left: 0,
52
- right: 0,
53
- bottom: 0,
54
- width: "100%",
55
- maxWidth: deviceWidth,
56
- maxHeight: deviceHeight
127
+ container: {
128
+ alignSelf: "stretch"
57
129
  }
58
130
  });
131
+
132
+ var _default = (0, _theming.withTheme)(Picker);
133
+
134
+ exports.default = _default;
59
135
  //# sourceMappingURL=PickerComponent.android.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["PickerComponent.android.tsx"],"names":["width","deviceWidth","height","deviceHeight","Dimensions","get","PickerComponent","androidPickerRef","togglePickerVisible","pickerOptions","internalValue","handleValueChange","styles","nonIosPicker","map","option","label","value","StyleSheet","create","opacity","position","top","left","right","bottom","maxWidth","maxHeight"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;;;AAMA,MAAM;AAAEA,EAAAA,KAAK,EAAEC,WAAT;AAAsBC,EAAAA,MAAM,EAAEC;AAA9B,IAA+CC,wBAAWC,GAAX,CAAe,QAAf,CAArD;;AAWO,MAAMC,eAA+C,GAAG,QAMzD;AAAA,MAN0D;AAC9DC,IAAAA,gBAD8D;AAE9DC,IAAAA,mBAF8D;AAG9DC,IAAAA,aAH8D;AAI9DC,IAAAA,aAJ8D;AAK9DC,IAAAA;AAL8D,GAM1D;AACJ,sBACE,oBAAC,cAAD;AACE,IAAA,aAAa,EAAED,aADjB;AAEE,IAAA,aAAa,EAAEC,iBAFjB;AAGE,IAAA,KAAK,EAAEC,MAAM,CAACC,YAHhB;AAIE,IAAA,GAAG,EAAEN,gBAJP;AAKE,IAAA,MAAM,EAAEC;AALV,KAOIC,aAAD,CAA6CK,GAA7C,CAAkDC,MAAD,iBAChD,oBAAC,cAAD,CAAc,IAAd;AACE,IAAA,KAAK,EAAEA,MAAM,CAACC,KADhB;AAEE,IAAA,KAAK,EAAED,MAAM,CAACE,KAFhB;AAGE,IAAA,GAAG,EAAEF,MAAM,CAACE;AAHd,IADD,CAPH,CADF;AAiBD,CAxBM;;;;AA0BP,MAAML,MAAM,GAAGM,wBAAWC,MAAX,CAAkB;AAC/BN,EAAAA,YAAY,EAAE;AACZO,IAAAA,OAAO,EAAE,CADG;AAEZC,IAAAA,QAAQ,EAAE,UAFE;AAGZC,IAAAA,GAAG,EAAE,CAHO;AAIZC,IAAAA,IAAI,EAAE,CAJM;AAKZC,IAAAA,KAAK,EAAE,CALK;AAMZC,IAAAA,MAAM,EAAE,CANI;AAOZzB,IAAAA,KAAK,EAAE,MAPK;AAQZ0B,IAAAA,QAAQ,EAAEzB,WARE;AASZ0B,IAAAA,SAAS,EAAExB;AATC;AADiB,CAAlB,CAAf","sourcesContent":["import * as React from \"react\";\nimport { StyleSheet, Dimensions } from \"react-native\";\n\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport { PickerOption } from \"./Picker\";\n\nconst { width: deviceWidth, height: deviceHeight } = Dimensions.get(\"screen\");\n\ninterface PickerComponentProps {\n Icon: IconSlot[\"Icon\"];\n androidPickerRef: React.RefObject<any>;\n togglePickerVisible: () => void;\n pickerOptions: PickerOption[];\n internalValue: string | undefined;\n handleValueChange: (newValue: string, itemIndex: number) => void;\n}\n\nexport const PickerComponent: React.FC<PickerComponentProps> = ({\n androidPickerRef,\n togglePickerVisible,\n pickerOptions,\n internalValue,\n handleValueChange,\n}) => {\n return (\n <NativePicker\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n style={styles.nonIosPicker}\n ref={androidPickerRef}\n onBlur={togglePickerVisible}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n );\n};\n\nconst styles = StyleSheet.create({\n nonIosPicker: {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n maxWidth: deviceWidth,\n maxHeight: deviceHeight,\n },\n});\n"]}
1
+ {"version":3,"sources":["PickerComponent.android.tsx"],"names":["Picker","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","React","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","StyleSheet","flatten","selectedLabel","find","o","value","label","styles","container","opacity","position","top","left","right","bottom","width","map","create","alignSelf"],"mappings":"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","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"]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.PickerComponent = void 0;
6
+ exports.default = void 0;
7
7
 
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
 
@@ -11,77 +11,151 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
13
13
 
14
+ var _lodash = _interopRequireDefault(require("lodash.omit"));
15
+
14
16
  var _picker = require("@react-native-picker/picker");
15
17
 
18
+ var _theming = require("../../theming");
19
+
16
20
  var _Portal = _interopRequireDefault(require("../Portal/Portal"));
17
21
 
18
22
  var _DeprecatedButton = _interopRequireDefault(require("../DeprecatedButton"));
19
23
 
24
+ var _TextField = _interopRequireDefault(require("../TextField"));
25
+
26
+ var _Touchable = _interopRequireDefault(require("../Touchable"));
27
+
28
+ var _utilities = require("../../utilities");
29
+
20
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
31
 
22
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
33
 
24
34
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
35
 
26
- const {
27
- width: deviceWidth,
28
- height: deviceHeight
29
- } = _reactNative.Dimensions.get("screen");
36
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
37
+
38
+ const Picker = _ref => {
39
+ var _options$find$label, _options$find;
30
40
 
31
- const PickerComponent = _ref => {
32
41
  let {
33
42
  Icon,
34
- togglePickerVisible,
35
- pickerOptions,
36
- internalValue,
37
- handleValueChange
43
+ style,
44
+ options,
45
+ placeholder,
46
+ selectedValue,
47
+ disabled = false,
48
+ onValueChange = () => {},
49
+ theme: {
50
+ colors
51
+ },
52
+ ...props
38
53
  } = _ref;
39
- return /*#__PURE__*/React.createElement(_Portal.default, null, /*#__PURE__*/React.createElement(_reactNative.View, {
40
- style: styles.iosPicker
54
+ const {
55
+ viewStyles: {
56
+ borderRadius,
57
+ // eslint-disable-line @typescript-eslint/no-unused-vars
58
+ borderWidth,
59
+ // eslint-disable-line @typescript-eslint/no-unused-vars
60
+ borderTopWidth,
61
+ // eslint-disable-line @typescript-eslint/no-unused-vars
62
+ borderRightWidth,
63
+ // eslint-disable-line @typescript-eslint/no-unused-vars
64
+ borderBottomWidth,
65
+ // eslint-disable-line @typescript-eslint/no-unused-vars
66
+ borderLeftWidth,
67
+ // eslint-disable-line @typescript-eslint/no-unused-vars
68
+ borderColor,
69
+ // eslint-disable-line @typescript-eslint/no-unused-vars
70
+ backgroundColor,
71
+ // eslint-disable-line @typescript-eslint/no-unused-vars
72
+ padding,
73
+ // eslint-disable-line @typescript-eslint/no-unused-vars
74
+ paddingTop,
75
+ // eslint-disable-line @typescript-eslint/no-unused-vars
76
+ paddingRight,
77
+ // eslint-disable-line @typescript-eslint/no-unused-vars
78
+ paddingBottom,
79
+ // eslint-disable-line @typescript-eslint/no-unused-vars
80
+ paddingLeft,
81
+ // eslint-disable-line @typescript-eslint/no-unused-vars
82
+ ...viewStyles
83
+ }
84
+ } = (0, _utilities.extractStyles)(style);
85
+ const textField = React.useRef(undefined);
86
+ const [pickerVisible, setIsPickerVisible] = React.useState(false);
87
+
88
+ const toggleVisibility = () => {
89
+ setIsPickerVisible(!pickerVisible); // @ts-ignore
90
+
91
+ textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()
92
+ };
93
+
94
+ const stylesWithoutMargin = style && (0, _lodash.default)(_reactNative.StyleSheet.flatten(style), ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
95
+ 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);
96
+ return /*#__PURE__*/React.createElement(_reactNative.View, {
97
+ style: [styles.container, viewStyles]
98
+ }, /*#__PURE__*/React.createElement(_Touchable.default, {
99
+ disabled: disabled,
100
+ onPress: toggleVisibility
101
+ }, /*#__PURE__*/React.createElement(_TextField.default, _extends({}, props, {
102
+ value: String(selectedLabel),
103
+ placeholder: placeholder // @ts-ignore
104
+ ,
105
+ ref: textField // cannot determine if ref is of correct type due to component being wrapped in a withTheme()
106
+ ,
107
+ disabled: disabled,
108
+ pointerEvents: "none" // @ts-expect-error
109
+ ,
110
+ style: stylesWithoutMargin,
111
+ Icon: Icon
112
+ }))), pickerVisible && /*#__PURE__*/React.createElement(_Portal.default, null, /*#__PURE__*/React.createElement(_reactNative.View, {
113
+ style: [styles.picker, {
114
+ backgroundColor: colors.divider
115
+ }]
41
116
  }, /*#__PURE__*/React.createElement(_reactNativeSafeAreaContext.SafeAreaView, {
42
- style: styles.iosSafeArea
117
+ style: styles.pickerContainer
43
118
  }, /*#__PURE__*/React.createElement(_DeprecatedButton.default, {
44
119
  Icon: Icon,
45
120
  type: "text",
46
- onPress: togglePickerVisible,
47
- style: styles.iosButton
121
+ onPress: toggleVisibility,
122
+ style: styles.closeButton
48
123
  }, "Close"), /*#__PURE__*/React.createElement(_picker.Picker, {
49
- style: styles.iosNativePicker,
50
- selectedValue: internalValue,
51
- onValueChange: handleValueChange
52
- }, pickerOptions.map(option => /*#__PURE__*/React.createElement(_picker.Picker.Item, {
53
- label: option.label,
54
- value: option.value,
55
- key: option.value
56
- }))))));
124
+ style: {
125
+ backgroundColor: "white"
126
+ },
127
+ selectedValue: selectedValue,
128
+ onValueChange: onValueChange
129
+ }, options.map(o => /*#__PURE__*/React.createElement(_picker.Picker.Item, {
130
+ label: o.label,
131
+ value: o.value,
132
+ key: o.value
133
+ })))))));
57
134
  };
58
135
 
59
- exports.PickerComponent = PickerComponent;
60
-
61
136
  const styles = _reactNative.StyleSheet.create({
62
- iosPicker: {
137
+ container: {
138
+ alignSelf: "stretch"
139
+ },
140
+ picker: {
63
141
  position: "absolute",
64
142
  bottom: 0,
65
143
  left: 0,
66
144
  right: 0,
67
145
  flexDirection: "row",
68
- justifyContent: "center",
69
- width: "100%",
70
- maxWidth: deviceWidth,
71
- maxHeight: deviceHeight,
72
- backgroundColor: "rgba(234, 237, 242, 1)"
146
+ justifyContent: "center"
73
147
  },
74
- iosSafeArea: {
148
+ pickerContainer: {
75
149
  backgroundColor: "white",
76
150
  flexDirection: "column",
77
- width: "100%",
78
- maxWidth: deviceWidth
151
+ width: "100%"
79
152
  },
80
- iosButton: {
153
+ closeButton: {
81
154
  alignSelf: "flex-end"
82
- },
83
- iosNativePicker: {
84
- backgroundColor: "white"
85
155
  }
86
156
  });
157
+
158
+ var _default = (0, _theming.withTheme)(Picker);
159
+
160
+ exports.default = _default;
87
161
  //# sourceMappingURL=PickerComponent.ios.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["PickerComponent.ios.tsx"],"names":["width","deviceWidth","height","deviceHeight","Dimensions","get","PickerComponent","Icon","togglePickerVisible","pickerOptions","internalValue","handleValueChange","styles","iosPicker","iosSafeArea","iosButton","iosNativePicker","map","option","label","value","StyleSheet","create","position","bottom","left","right","flexDirection","justifyContent","maxWidth","maxHeight","backgroundColor","alignSelf"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAGA;;AACA;;;;;;;;AAGA,MAAM;AAAEA,EAAAA,KAAK,EAAEC,WAAT;AAAsBC,EAAAA,MAAM,EAAEC;AAA9B,IAA+CC,wBAAWC,GAAX,CAAe,QAAf,CAArD;;AAWO,MAAMC,eAA+C,GAAG,QAMzD;AAAA,MAN0D;AAC9DC,IAAAA,IAD8D;AAE9DC,IAAAA,mBAF8D;AAG9DC,IAAAA,aAH8D;AAI9DC,IAAAA,aAJ8D;AAK9DC,IAAAA;AAL8D,GAM1D;AACJ,sBACE,oBAAC,eAAD,qBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEC,MAAM,CAACC;AAApB,kBACE,oBAAC,wCAAD;AAAc,IAAA,KAAK,EAAED,MAAM,CAACE;AAA5B,kBACE,oBAAC,yBAAD;AACE,IAAA,IAAI,EAAEP,IADR;AAEE,IAAA,IAAI,EAAC,MAFP;AAGE,IAAA,OAAO,EAAEC,mBAHX;AAIE,IAAA,KAAK,EAAEI,MAAM,CAACG;AAJhB,KAMG,OANH,CADF,eAUE,oBAAC,cAAD;AACE,IAAA,KAAK,EAAEH,MAAM,CAACI,eADhB;AAEE,IAAA,aAAa,EAAEN,aAFjB;AAGE,IAAA,aAAa,EAAEC;AAHjB,KAKIF,aAAD,CAA6CQ,GAA7C,CAAkDC,MAAD,iBAChD,oBAAC,cAAD,CAAc,IAAd;AACE,IAAA,KAAK,EAAEA,MAAM,CAACC,KADhB;AAEE,IAAA,KAAK,EAAED,MAAM,CAACE,KAFhB;AAGE,IAAA,GAAG,EAAEF,MAAM,CAACE;AAHd,IADD,CALH,CAVF,CADF,CADF,CADF;AA8BD,CArCM;;;;AAuCP,MAAMR,MAAM,GAAGS,wBAAWC,MAAX,CAAkB;AAC/BT,EAAAA,SAAS,EAAE;AACTU,IAAAA,QAAQ,EAAE,UADD;AAETC,IAAAA,MAAM,EAAE,CAFC;AAGTC,IAAAA,IAAI,EAAE,CAHG;AAITC,IAAAA,KAAK,EAAE,CAJE;AAKTC,IAAAA,aAAa,EAAE,KALN;AAMTC,IAAAA,cAAc,EAAE,QANP;AAOT5B,IAAAA,KAAK,EAAE,MAPE;AAQT6B,IAAAA,QAAQ,EAAE5B,WARD;AAST6B,IAAAA,SAAS,EAAE3B,YATF;AAUT4B,IAAAA,eAAe,EAAE;AAVR,GADoB;AAa/BjB,EAAAA,WAAW,EAAE;AACXiB,IAAAA,eAAe,EAAE,OADN;AAEXJ,IAAAA,aAAa,EAAE,QAFJ;AAGX3B,IAAAA,KAAK,EAAE,MAHI;AAIX6B,IAAAA,QAAQ,EAAE5B;AAJC,GAbkB;AAmB/Bc,EAAAA,SAAS,EAAE;AACTiB,IAAAA,SAAS,EAAE;AADF,GAnBoB;AAsB/BhB,EAAAA,eAAe,EAAE;AACfe,IAAAA,eAAe,EAAE;AADF;AAtBc,CAAlB,CAAf","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet, Dimensions } from \"react-native\";\nimport { SafeAreaView } from \"react-native-safe-area-context\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport { PickerOption } from \"./Picker\";\n\nconst { width: deviceWidth, height: deviceHeight } = Dimensions.get(\"screen\");\n\ninterface PickerComponentProps {\n Icon: IconSlot[\"Icon\"];\n androidPickerRef: React.RefObject<any>;\n togglePickerVisible: () => void;\n pickerOptions: PickerOption[];\n internalValue: string | undefined;\n handleValueChange: (newValue: string, itemIndex: number) => void;\n}\n\nexport const PickerComponent: React.FC<PickerComponentProps> = ({\n Icon,\n togglePickerVisible,\n pickerOptions,\n internalValue,\n handleValueChange,\n}) => {\n return (\n <Portal>\n <View style={styles.iosPicker}>\n <SafeAreaView style={styles.iosSafeArea}>\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={togglePickerVisible}\n style={styles.iosButton}\n >\n {\"Close\"}\n </Button>\n\n <NativePicker\n style={styles.iosNativePicker}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n </SafeAreaView>\n </View>\n </Portal>\n );\n};\n\nconst styles = StyleSheet.create({\n iosPicker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n width: \"100%\",\n maxWidth: deviceWidth,\n maxHeight: deviceHeight,\n backgroundColor: \"rgba(234, 237, 242, 1)\",\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});\n"]}
1
+ {"version":3,"sources":["PickerComponent.ios.tsx"],"names":["Picker","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","React","useRef","undefined","pickerVisible","setIsPickerVisible","useState","toggleVisibility","current","toggleFocus","stylesWithoutMargin","StyleSheet","flatten","selectedLabel","find","o","value","label","styles","container","String","picker","divider","pickerContainer","closeButton","map","create","alignSelf","position","bottom","left","right","flexDirection","justifyContent","width"],"mappings":"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","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"]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.PickerComponent = void 0;
6
+ exports.default = void 0;
7
7
 
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
 
@@ -11,49 +11,126 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _picker = require("@react-native-picker/picker");
13
13
 
14
+ var _lodash = _interopRequireDefault(require("lodash.omit"));
15
+
16
+ var _theming = require("../../theming");
17
+
18
+ var _utilities = require("../../utilities");
19
+
20
+ var _TextField = _interopRequireDefault(require("../TextField"));
21
+
22
+ var _Touchable = _interopRequireDefault(require("../Touchable"));
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
14
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
27
 
16
28
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
29
 
18
- const {
19
- width: deviceWidth,
20
- height: deviceHeight
21
- } = _reactNative.Dimensions.get("screen");
30
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
31
+
32
+ const Picker = _ref => {
33
+ var _options$find$label, _options$find;
22
34
 
23
- const PickerComponent = _ref => {
24
35
  let {
25
- androidPickerRef,
26
- togglePickerVisible,
27
- pickerOptions,
28
- internalValue,
29
- handleValueChange
36
+ style,
37
+ options,
38
+ placeholder,
39
+ selectedValue,
40
+ disabled = false,
41
+ onValueChange: onValueChangeOverride = () => {},
42
+ ...props
30
43
  } = _ref;
31
- return /*#__PURE__*/React.createElement(_picker.Picker, {
32
- selectedValue: internalValue,
33
- onValueChange: handleValueChange,
34
- style: styles.nonIosPicker,
35
- ref: androidPickerRef,
36
- onBlur: togglePickerVisible
37
- }, pickerOptions.map(option => /*#__PURE__*/React.createElement(_picker.Picker.Item, {
38
- label: option.label,
39
- value: option.value,
40
- key: option.value
41
- })));
42
- };
44
+ const {
45
+ viewStyles: {
46
+ borderRadius,
47
+ // eslint-disable-line @typescript-eslint/no-unused-vars
48
+ borderWidth,
49
+ // eslint-disable-line @typescript-eslint/no-unused-vars
50
+ borderTopWidth,
51
+ // eslint-disable-line @typescript-eslint/no-unused-vars
52
+ borderRightWidth,
53
+ // eslint-disable-line @typescript-eslint/no-unused-vars
54
+ borderBottomWidth,
55
+ // eslint-disable-line @typescript-eslint/no-unused-vars
56
+ borderLeftWidth,
57
+ // eslint-disable-line @typescript-eslint/no-unused-vars
58
+ borderColor,
59
+ // eslint-disable-line @typescript-eslint/no-unused-vars
60
+ backgroundColor,
61
+ // eslint-disable-line @typescript-eslint/no-unused-vars
62
+ padding,
63
+ // eslint-disable-line @typescript-eslint/no-unused-vars
64
+ paddingTop,
65
+ // eslint-disable-line @typescript-eslint/no-unused-vars
66
+ paddingRight,
67
+ // eslint-disable-line @typescript-eslint/no-unused-vars
68
+ paddingBottom,
69
+ // eslint-disable-line @typescript-eslint/no-unused-vars
70
+ paddingLeft,
71
+ // eslint-disable-line @typescript-eslint/no-unused-vars
72
+ ...viewStyles
73
+ }
74
+ } = (0, _utilities.extractStyles)(style);
75
+ const textField = React.useRef(undefined);
76
+
77
+ const onValueChange = (itemValue, itemIndex) => {
78
+ toggleFocus();
79
+ onValueChangeOverride(itemValue, itemIndex);
80
+ };
81
+
82
+ const toggleFocus = () => {
83
+ if (!disabled) {
84
+ // @ts-ignore
85
+ textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()
86
+ }
87
+ };
43
88
 
44
- exports.PickerComponent = PickerComponent;
89
+ const stylesWithoutMargin = style && (0, _lodash.default)(_reactNative.StyleSheet.flatten(style), ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
90
+ 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);
91
+ return /*#__PURE__*/React.createElement(_Touchable.default, {
92
+ disabled: disabled,
93
+ onPress: toggleFocus,
94
+ style: [styles.container, viewStyles]
95
+ }, /*#__PURE__*/React.createElement(_reactNative.View, null, /*#__PURE__*/React.createElement(_picker.Picker, {
96
+ enabled: !disabled,
97
+ selectedValue: selectedValue,
98
+ onValueChange: onValueChange,
99
+ style: {
100
+ flex: 1,
101
+ opacity: 0,
102
+ position: "absolute",
103
+ top: 0,
104
+ left: 0,
105
+ right: 0,
106
+ bottom: 0,
107
+ width: "100%"
108
+ }
109
+ }, options.map(o => /*#__PURE__*/React.createElement(_picker.Picker.Item, {
110
+ label: o.label,
111
+ value: o.value,
112
+ key: o.value
113
+ }))), /*#__PURE__*/React.createElement(_reactNative.View, {
114
+ pointerEvents: "none"
115
+ }, /*#__PURE__*/React.createElement(_TextField.default, _extends({}, props, {
116
+ value: selectedLabel,
117
+ placeholder: placeholder // @ts-ignore
118
+ ,
119
+ ref: textField // cannot determine if ref is of correct type due to component being wrapped in a withTheme()
120
+ ,
121
+ disabled: disabled // @ts-expect-error
122
+ ,
123
+ style: stylesWithoutMargin
124
+ })))));
125
+ };
45
126
 
46
127
  const styles = _reactNative.StyleSheet.create({
47
- nonIosPicker: {
48
- opacity: 0,
49
- position: "absolute",
50
- top: 0,
51
- left: 0,
52
- right: 0,
53
- bottom: 0,
54
- width: "100%",
55
- maxWidth: deviceWidth,
56
- maxHeight: deviceHeight
128
+ container: {
129
+ alignSelf: "stretch"
57
130
  }
58
131
  });
132
+
133
+ var _default = (0, _theming.withTheme)(Picker);
134
+
135
+ exports.default = _default;
59
136
  //# sourceMappingURL=PickerComponent.web.js.map