@beppla/tapas-ui 1.0.68 → 1.0.70

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 (248) hide show
  1. package/commonjs/AnimatedNavItem/index.js.map +2 -1
  2. package/commonjs/BarChart/BarChart.js +112 -90
  3. package/commonjs/BarChart/BarChart.js.map +1 -1
  4. package/commonjs/Button/Button.js +96 -78
  5. package/commonjs/Button/Button.js.map +1 -2
  6. package/commonjs/Button/ButtonGroup.js +156 -136
  7. package/commonjs/Button/ButtonGroup.js.map +1 -2
  8. package/commonjs/Calendar/Calendar.base.js +162 -190
  9. package/commonjs/Calendar/Calendar.base.js.map +1 -2
  10. package/commonjs/Calendar/Calendar.js +86 -102
  11. package/commonjs/Calendar/Calendar.js.map +2 -1
  12. package/commonjs/Calendar/CustomRange.js +271 -324
  13. package/commonjs/Calendar/DaySelector.js +115 -113
  14. package/commonjs/Calendar/DaySelector.js.map +2 -1
  15. package/commonjs/Calendar/MonthSelector.js +118 -115
  16. package/commonjs/Calendar/local.js +2 -2
  17. package/commonjs/Calendar/local.js.map +2 -1
  18. package/commonjs/Calendar/types.js +11 -11
  19. package/commonjs/CheckBox/CheckBox.js +96 -63
  20. package/commonjs/CheckBox/CheckBox.js.map +1 -2
  21. package/commonjs/CheckBox/CheckBoxItem.js +78 -57
  22. package/commonjs/CheckBox/CheckBoxItem.js.map +1 -2
  23. package/commonjs/CircularProgress/CircularProgress.js +25 -23
  24. package/commonjs/CircularProgress/CircularProgress.js.map +1 -2
  25. package/commonjs/Collapsible/Collapsible.js +60 -74
  26. package/commonjs/Collapsible/Collapsible.js.map +2 -1
  27. package/commonjs/DashboardCard/DashboardCard.js +74 -94
  28. package/commonjs/DashboardCard/DashboardCard.js.map +1 -1
  29. package/commonjs/DataCell/DataCell.js +108 -0
  30. package/commonjs/DataCell/DataCell.js.map +1 -0
  31. package/commonjs/DataCell/index.js +15 -9
  32. package/commonjs/DataTable/DataTable.js +0 -69
  33. package/commonjs/DataTable/index.js.map +2 -1
  34. package/commonjs/DeviceSelectionModal/DeviceSelectionModal.js +242 -244
  35. package/commonjs/DeviceSelectionModal/DeviceSelectionModal.js.map +1 -2
  36. package/commonjs/DraggableFlatList/DraggableFlatList.js +1 -1
  37. package/commonjs/Dropdown/InputDropdown.js.map +2 -1
  38. package/commonjs/Gantt/Accessories.js +135 -168
  39. package/commonjs/Gantt/Accessories.js.map +1 -2
  40. package/commonjs/Gantt/Gantt.js +149 -149
  41. package/commonjs/Gantt/Gantt.js.map +2 -1
  42. package/commonjs/Gantt/GanttInnerElementType.js +93 -102
  43. package/commonjs/Gantt/GanttInnerElementType.js.map +2 -1
  44. package/commonjs/Gantt/helper.js +119 -145
  45. package/commonjs/Gantt/types.js +4 -4
  46. package/commonjs/Grid/VariableSizeGrid.js +120 -113
  47. package/commonjs/Grid/VariableSizeGrid.js.map +2 -1
  48. package/commonjs/Grid/helper.js.map +2 -1
  49. package/commonjs/Grid/timer.js +9 -5
  50. package/commonjs/Grid/timer.js.map +1 -2
  51. package/commonjs/HelloWave/HelloWave.js +46 -53
  52. package/commonjs/HelloWave/HelloWave.js.map +1 -2
  53. package/commonjs/Hoverable/Hoverable.js +35 -33
  54. package/commonjs/Hoverable/Hoverable.js.map +2 -2
  55. package/commonjs/IconText/IconText.js +88 -65
  56. package/commonjs/IconText/IconText.js.map +2 -1
  57. package/commonjs/Icons/TapasIcon.js +99 -100
  58. package/commonjs/Icons/TapasIcon.js.map +1 -2
  59. package/commonjs/Icons/TapasIconExpo.js +101 -94
  60. package/commonjs/Icons/smartFontLoader.js +266 -222
  61. package/commonjs/Image/PreviewImg.js +85 -63
  62. package/commonjs/Image/PreviewImg.js.map +1 -2
  63. package/commonjs/Layout/DrawerContext.js +49 -35
  64. package/commonjs/Layout/DrawerContext.js.map +1 -2
  65. package/commonjs/Layout/ToastContext.js +34 -46
  66. package/commonjs/LineChart/LineChart.js +126 -144
  67. package/commonjs/LineChart/LineChart.js.map +1 -2
  68. package/commonjs/LineChart/index.js +4 -3
  69. package/commonjs/LineChart/index.js.map +1 -2
  70. package/commonjs/ListItem/ListItem.js +80 -108
  71. package/commonjs/ListItem/ListItem.js.map +2 -1
  72. package/commonjs/Loading/Loading.js +66 -54
  73. package/commonjs/Loading/Loading.js.map +1 -1
  74. package/commonjs/MessageBox/MessageBox.js +127 -126
  75. package/commonjs/MessageBox/MessageBox.js.map +2 -1
  76. package/commonjs/MultiSelector/MultiSelector.js +250 -225
  77. package/commonjs/MultiSelector/index.js +6 -8
  78. package/commonjs/MultiSelector/index.js.map +2 -1
  79. package/commonjs/Navigation/Navigation.js +65 -0
  80. package/commonjs/Navigation/Navigation.js.map +1 -0
  81. package/commonjs/Notification/Notification.js +110 -89
  82. package/commonjs/Notification/index.js +6 -8
  83. package/commonjs/Notification/index.js.map +2 -1
  84. package/commonjs/NumericInput/NumericInput.js +23 -0
  85. package/commonjs/NumericInput/NumericInput.js.map +1 -0
  86. package/commonjs/Overlay/Overlay.js +24 -45
  87. package/commonjs/Overlay/Overlay.js.map +1 -1
  88. package/commonjs/Pagination/Pagination.js +93 -151
  89. package/commonjs/Pagination/Pagination.js.map +1 -1
  90. package/commonjs/PieChart/PieChart.js.map +2 -1
  91. package/commonjs/PieChart/index.js +3 -4
  92. package/commonjs/PieChart/index.js.map +2 -1
  93. package/commonjs/Popover/Popover.js +112 -137
  94. package/commonjs/Popover/Popover.js.map +1 -2
  95. package/commonjs/Progress/Progress.js +54 -48
  96. package/commonjs/Progress/Progress.js.map +1 -2
  97. package/commonjs/Quantity/Quantity.js +52 -127
  98. package/commonjs/Quantity/Quantity.js.map +0 -1
  99. package/commonjs/Quantity/index.js +8 -6
  100. package/commonjs/Quantity/index.js.map +1 -2
  101. package/commonjs/ReasonModal/ReasonModal.js +125 -122
  102. package/commonjs/ReasonModal/ReasonModal.js.map +2 -1
  103. package/commonjs/ReasonModal/index.js +9 -15
  104. package/commonjs/ReasonModal/index.js.map +1 -2
  105. package/commonjs/SearchInput/SearchInput.js +92 -108
  106. package/commonjs/SheetTitle/SheetTitle.js +0 -6
  107. package/commonjs/SheetTitle/SheetTitle.js.map +0 -1
  108. package/commonjs/Shell/Shell.js +84 -92
  109. package/commonjs/Shell/Shell.js.map +2 -1
  110. package/commonjs/Shell/styles.js.map +1 -2
  111. package/commonjs/Shell/types.js +2 -2
  112. package/commonjs/Shell/types.js.map +1 -2
  113. package/commonjs/StatisticCard/StatisticCard.js +41 -47
  114. package/commonjs/Steps/Steps.js +41 -40
  115. package/commonjs/Steps/Steps.js.map +1 -1
  116. package/commonjs/TabTitle/index.js +0 -1
  117. package/commonjs/TabTitle/index.js.map +0 -1
  118. package/commonjs/TableColumnHeader/TableColumnHeader.js +134 -140
  119. package/commonjs/Tag/Tag.js +0 -41
  120. package/commonjs/Tag/Tag.js.map +0 -1
  121. package/commonjs/Task/Task.js +201 -112
  122. package/commonjs/Task/Task.js.map +2 -1
  123. package/commonjs/Text/Text.js.map +0 -1
  124. package/commonjs/Theme/ThemeProvider.js +18 -16
  125. package/commonjs/Theme/defaultTheme.js +21 -16
  126. package/commonjs/Theme/defaultTheme.js.map +2 -1
  127. package/commonjs/Toast/Toast.js +32 -0
  128. package/commonjs/Toast/Toast.js.map +1 -0
  129. package/commonjs/UserSwitcher/UserSwitcher.js +147 -144
  130. package/commonjs/UserSwitcher/UserSwitcher.js.map +2 -1
  131. package/module/Alert/Alert.js +71 -51
  132. package/module/Alert/Alert.js.map +2 -1
  133. package/module/AnimatedNavItem/AnimatedNavItem.js.map +1 -2
  134. package/module/AnimatedNavItem/index.js +7 -3
  135. package/module/AnimatedNavItem/index.js.map +1 -2
  136. package/module/BarChart/BarChart.js +140 -109
  137. package/module/BarChart/BarChart.js.map +2 -1
  138. package/module/BarChart/index.js +4 -2
  139. package/module/Button/ButtonGroup.js +120 -129
  140. package/module/Button/ButtonGroup.js.map +1 -2
  141. package/module/Calendar/ConcreteTimeSelector.js +299 -211
  142. package/module/Calendar/ConcreteTimeSelector.js.map +2 -1
  143. package/module/Calendar/DaySelector.js +118 -95
  144. package/module/Calendar/DaySelector.js.map +2 -1
  145. package/module/Calendar/TimeSelector.js +307 -215
  146. package/module/Calendar/TimeSelector.js.map +1 -2
  147. package/module/Calendar/local.js +7 -7
  148. package/module/Calendar/local.js.map +2 -1
  149. package/module/Calendar/types.js.map +1 -2
  150. package/module/Card/Card.js +236 -154
  151. package/module/Card/Card.js.map +1 -1
  152. package/module/CheckBox/CheckBox.js +89 -93
  153. package/module/CheckBox/CheckBox.js.map +2 -1
  154. package/module/CheckBox/CheckBoxItem.js +84 -69
  155. package/module/CheckBox/CheckBoxItem.js.map +1 -1
  156. package/module/CheckBox/GroupCheckBox.js +76 -66
  157. package/module/CheckBox/GroupCheckBox.js.map +2 -1
  158. package/module/CircularProgress/CircularProgress.js +0 -22
  159. package/module/CircularProgress/CircularProgress.js.map +0 -1
  160. package/module/DashboardCard/DashboardCard.js +88 -80
  161. package/module/DashboardCard/DashboardCard.js.map +1 -2
  162. package/module/DataCell/DataCell.js +224 -311
  163. package/module/DataCell/DataCell.js.map +1 -2
  164. package/module/DataTable/DataTable.js +100 -0
  165. package/module/DataTable/index.js.map +1 -2
  166. package/module/DeviceSelectionModal/DeviceSelectionModal.js +124 -0
  167. package/module/DeviceSelectionModal/DeviceSelectionModal.js.map +1 -0
  168. package/module/DraggableFlatList/DraggableFlatList.js +9 -0
  169. package/module/DraggableFlatList/DraggableFlatList.js.map +1 -0
  170. package/module/Dropdown/CustomDropdown.js +160 -212
  171. package/module/Dropdown/CustomDropdown.js.map +1 -1
  172. package/module/Dropdown/Dropdown.js +408 -484
  173. package/module/Dropdown/Dropdown.js.map +1 -2
  174. package/module/Dropdown/InputDropdown.js +134 -116
  175. package/module/Dropdown/InputDropdown.js.map +2 -1
  176. package/module/ExternalLink/ExternalLink.js +0 -150
  177. package/module/ExternalLink/ExternalLink.js.map +0 -1
  178. package/module/Gantt/Accessories.js.map +2 -1
  179. package/module/Gantt/Gantt.js +152 -139
  180. package/module/Gantt/Gantt.js.map +2 -1
  181. package/module/Gantt/GanttInnerElementType.js.map +1 -2
  182. package/module/Gantt/helper.js +163 -129
  183. package/module/Gantt/types.js +8 -4
  184. package/module/Gantt/types.js.map +1 -2
  185. package/module/Grid/VariableSizeGrid.js +118 -121
  186. package/module/Grid/VariableSizeGrid.js.map +1 -2
  187. package/module/Grid/helper.js.map +2 -1
  188. package/module/Grid/timer.js +16 -14
  189. package/module/Grid/timer.js.map +1 -2
  190. package/module/HelloWave/HelloWave.js +53 -43
  191. package/module/HelloWave/HelloWave.js.map +2 -1
  192. package/module/Hoverable/Hoverable.js +66 -69
  193. package/module/Hoverable/Hoverable.js.map +1 -2
  194. package/module/Icons/TapasIcon.js +96 -120
  195. package/module/Icons/TapasIcon.js.map +1 -2
  196. package/module/Icons/TapasIconExpo.js +98 -78
  197. package/module/Icons/TapasIconExpo.js.map +2 -1
  198. package/module/Icons/fontLoader.js.map +2 -1
  199. package/module/Icons/index.js +10 -9
  200. package/module/Icons/smartFontLoader.js.map +2 -1
  201. package/module/Input/Input.js +74 -0
  202. package/module/Input/Input.js.map +1 -0
  203. package/module/Layout/DrawerContext.js +29 -18
  204. package/module/Layout/DrawerContext.js.map +2 -1
  205. package/module/Layout/Layout.js +100 -100
  206. package/module/Layout/index.js +15 -14
  207. package/module/LineChart/LineChart.js +157 -121
  208. package/module/Loading/Loading.js +65 -67
  209. package/module/Loading/Loading.js.map +2 -1
  210. package/module/MultiSelector/MultiSelector.js.map +2 -1
  211. package/module/MultiSelector/index.js +2 -3
  212. package/module/MultiSelector/index.js.map +2 -1
  213. package/module/Notification/Notification.js +105 -101
  214. package/module/Notification/Notification.js.map +2 -1
  215. package/module/Notification/index.js +18 -1
  216. package/module/Notification/index.js.map +1 -1
  217. package/module/NumericInput/NumericInput.js.map +1 -0
  218. package/module/Overlay/Overlay.js +29 -0
  219. package/module/Overlay/Overlay.js.map +1 -0
  220. package/module/Pagination/Pagination.js +0 -72
  221. package/module/Pagination/Pagination.js.map +0 -1
  222. package/module/PieChart/PieChart.js +101 -76
  223. package/module/PieChart/PieChart.js.map +1 -2
  224. package/module/Quantity/Quantity.js +129 -112
  225. package/module/ReasonModal/ReasonModal.js +114 -145
  226. package/module/ReasonModal/ReasonModal.js.map +1 -2
  227. package/module/ReasonModal/index.js +27 -0
  228. package/module/ScanButton/ScanButton.js +56 -35
  229. package/module/ScanButton/ScanButton.js.map +1 -1
  230. package/module/Shell/types.js +2 -4
  231. package/module/TabTitle/TabTitle.js +57 -48
  232. package/module/TableColumnHeader/TableColumnHeader.js +153 -126
  233. package/module/Task/Task.js +113 -207
  234. package/module/Task/Task.js.map +1 -2
  235. package/module/Task/type.js +4 -8
  236. package/module/Task/type.js.map +1 -2
  237. package/module/Text/Text.js +80 -70
  238. package/module/Text/Text.js.map +1 -2
  239. package/module/TextArea/TextArea.js +119 -0
  240. package/module/TextArea/TextArea.js.map +1 -0
  241. package/module/Theme/defaultTheme.js +20 -0
  242. package/module/Theme/defaultTheme.js.map +1 -0
  243. package/module/Timeline/Timeline.js +54 -0
  244. package/module/Timeline/Timeline.js.map +1 -0
  245. package/module/UserSwitcher/UserSwitcher.js.map +2 -1
  246. package/module/index.js.map +1 -2
  247. package/package.json +1 -1
  248. package/typescript/Hoverable/Hoverable.d.ts.map +1 -1
@@ -1,318 +1,413 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import React, { useEffect, useState, useRef } from 'react';
3
- import { Pressable, ScrollView, Modal, TouchableOpacity, Text, View, Dimensions, Animated } from 'react-native';
4
- import CustomDropdown from "./CustomDropdown";
5
- import CustomListItem from "../ListItem/ListItem";
6
- import { makeStyles, SearchBar, withTheme, useTheme } from '@rneui/themed';
7
- import TapasIcon from '../Icons/TapasIcon';
8
- export * from "./CustomDropdown";
1
+ "use strict";
9
2
 
10
- // 新增接口定义
11
-
12
- //@ts-ignore
13
-
14
- const useStyles = makeStyles(theme => ({
15
- searchBarContainer: {
16
- backgroundColor: theme.colors.white,
17
- height: 50,
18
- padding: 0
19
- },
20
- inputContainer: {
21
- backgroundColor: theme.colors.white,
22
- height: 48,
23
- borderTopWidth: 0,
24
- padding: 0
25
- },
26
- inputStyle: {
27
- height: 24,
28
- fontFamily: theme.fonts.fontFamily,
29
- fontSize: theme.fonts.sizeM,
30
- fontWeight: theme.fonts.weightR,
31
- color: theme.colors.colorTextPrimary,
32
- marginLeft: 0
33
- },
34
- leftIconContainer: {
35
- height: 24,
36
- marginLeft: 16
37
- },
38
- iconStyle: {
39
- color: theme.colors.secondary
40
- },
41
- // Modal 模式样式
42
- modalContainer: {
43
- display: "flex",
44
- flexGrow: 0,
45
- flexShrink: 0,
46
- flexBasis: "auto",
47
- flexDirection: "column",
48
- justifyContent: "flex-start",
49
- // 改为顶部对齐,与 CustomDropdown 保持一致
50
- alignItems: "stretch",
51
- // 改为拉伸对齐,与 CustomDropdown 保持一致
52
- width: "100%"
53
- },
54
- modalIcon: {
55
- color: theme.colors.primary
56
- },
57
- modalOptionsCon: {
58
- position: "absolute",
59
- display: "flex",
60
- flexDirection: "column",
61
- overflow: "hidden",
62
- backgroundColor: theme.colors.white,
63
- paddingTop: 12,
64
- paddingBottom: 12,
65
- borderRadius: 12,
66
- maxHeight: 224,
67
- shadowColor: "#000",
68
- shadowOffset: {
69
- width: 0,
70
- height: 4
3
+ var __assign = this && this.__assign || function () {
4
+ __assign = Object.assign || function (t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = {
18
+ enumerable: true,
19
+ get: function () {
20
+ return m[k];
21
+ }
22
+ };
23
+ }
24
+ Object.defineProperty(o, k2, desc);
25
+ } : function (o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ o[k2] = m[k];
28
+ });
29
+ var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {
30
+ Object.defineProperty(o, "default", {
31
+ enumerable: true,
32
+ value: v
33
+ });
34
+ } : function (o, v) {
35
+ o["default"] = v;
36
+ });
37
+ var __importStar = this && this.__importStar || function () {
38
+ var ownKeys = function (o) {
39
+ ownKeys = Object.getOwnPropertyNames || function (o) {
40
+ var ar = [];
41
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
42
+ return ar;
43
+ };
44
+ return ownKeys(o);
45
+ };
46
+ return function (mod) {
47
+ if (mod && mod.__esModule) return mod;
48
+ var result = {};
49
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
50
+ __setModuleDefault(result, mod);
51
+ return result;
52
+ };
53
+ }();
54
+ var __exportStar = this && this.__exportStar || function (m, exports) {
55
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
56
+ };
57
+ var __rest = this && this.__rest || function (s, e) {
58
+ var t = {};
59
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
60
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
61
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
62
+ }
63
+ return t;
64
+ };
65
+ var __importDefault = this && this.__importDefault || function (mod) {
66
+ return mod && mod.__esModule ? mod : {
67
+ "default": mod
68
+ };
69
+ };
70
+ Object.defineProperty(exports, "__esModule", {
71
+ value: true
72
+ });
73
+ exports.TapasDropdownModal = void 0;
74
+ var react_1 = __importStar(require("react"));
75
+ var react_native_1 = require("react-native");
76
+ var CustomDropdown_1 = __importDefault(require("./CustomDropdown"));
77
+ var ListItem_1 = __importDefault(require("../ListItem/ListItem"));
78
+ var themed_1 = require("@rneui/themed");
79
+ var TapasIcon_1 = __importDefault(require("../Icons/TapasIcon"));
80
+ __exportStar(require("./CustomDropdown"), exports);
81
+ var useStyles = (0, themed_1.makeStyles)(function (theme) {
82
+ return {
83
+ searchBarContainer: {
84
+ backgroundColor: theme.colors.white,
85
+ height: 50,
86
+ padding: 0
71
87
  },
72
- shadowOpacity: 0.15,
73
- shadowRadius: 12,
74
- elevation: 8
75
- },
76
- modalOptionsScrollView: {
77
- flex: 1,
78
- display: "flex"
79
- },
80
- modalOptionsInner: {
81
- display: "flex",
82
- flexDirection: "column",
83
- justifyContent: "flex-start",
84
- gap: 8
85
- },
86
- modalOption: {
87
- display: "flex",
88
- flexDirection: "row",
89
- width: "100%",
90
- overflow: "hidden",
91
- justifyContent: "space-between",
92
- minHeight: 40,
93
- alignItems: "center"
94
- },
95
- modalOptionText: {
96
- marginLeft: 16,
97
- marginRight: 16,
98
- fontSize: 14,
99
- fontWeight: "400",
100
- color: theme.colors.primary,
101
- alignSelf: "center",
102
- overflow: "hidden",
103
- flex: 1
104
- },
105
- modalNoOptions: {
106
- width: "100%",
107
- textAlign: "center",
108
- color: theme.colors.grey2,
109
- marginLeft: 16,
110
- marginRight: 16
111
- },
112
- modalBtn: {
113
- display: "flex",
114
- flexDirection: "row",
115
- justifyContent: "space-between",
116
- alignItems: "center",
117
- // 确保垂直居中对齐
118
- minHeight: 40,
119
- width: "100%",
120
- overflow: "hidden",
121
- position: "relative"
122
- },
123
- modalSolidBtn: {
124
- borderWidth: 1,
125
- borderRadius: 12,
126
- borderStyle: "solid",
127
- borderColor: theme.colors.grey2,
128
- paddingLeft: 16,
129
- paddingRight: 12,
130
- paddingTop: 9,
131
- paddingBottom: 9,
132
- alignItems: "center" // 确保垂直居中对齐
133
- },
134
- alignCenter: {
135
- alignSelf: "center"
136
- },
137
- labelCon: {
138
- position: "absolute",
139
- left: 16,
140
- paddingLeft: 1,
141
- paddingRight: 1,
142
- display: "flex",
143
- flexDirection: "row",
144
- zIndex: 30
145
- },
146
- labelInner: {
147
- display: "flex",
148
- flexDirection: "row"
149
- },
150
- labelText: {
151
- fontSize: 12,
152
- color: theme.colors.primary
153
- },
154
- required: {
155
- fontSize: 12,
156
- fontWeight: "400",
157
- color: theme.colors.error || "#FF4444",
158
- marginLeft: 1
159
- },
160
- msg: {
161
- display: "flex",
162
- flexDirection: "row",
163
- paddingLeft: 16,
164
- paddingRight: 8,
165
- marginTop: 1,
166
- width: "100%",
167
- height: 15
168
- },
169
- msgText: {
170
- fontSize: 12,
171
- fontWeight: "400",
172
- color: theme.colors.secondary
173
- },
174
- extendBtnCon: {
175
- display: "flex",
176
- flexDirection: "row",
177
- justifyContent: "center",
178
- height: 40,
179
- overflow: "hidden",
180
- backgroundColor: theme.colors.white,
181
- borderRadius: 20,
182
- gap: 8,
183
- alignItems: "center",
184
- shadowColor: "#000",
185
- shadowOffset: {
186
- width: 0,
187
- height: 4
88
+ inputContainer: {
89
+ backgroundColor: theme.colors.white,
90
+ height: 48,
91
+ borderTopWidth: 0,
92
+ padding: 0
188
93
  },
189
- shadowOpacity: 0.15,
190
- shadowRadius: 12,
191
- elevation: 8
192
- },
193
- extendBtnText: {
194
- fontSize: 14,
195
- fontWeight: "400",
196
- color: theme.colors.primary
197
- }
198
- }));
199
- const Dropdown = ({
200
- value,
201
- prefix = '',
202
- options,
203
- onChange,
204
- width,
205
- subWidth,
206
- subHeight = 150,
207
- isVisible,
208
- onSearchChange,
209
- type = 'option',
210
- // 新增 Modal 模式相关属性
211
- useModal = false,
212
- dropdownItems = [],
213
- selected,
214
- showSelectedValue = false,
215
- dropdownType = "clear",
216
- arrowIcon: _arrowIcon = false,
217
- onSelect,
218
- backgroundColor,
219
- labelColor,
220
- state = "normal",
221
- stateMsg,
222
- showCheckedStatusInList = false,
223
- showStateMsg = false,
224
- offsetWidth = 0,
225
- extendBtn,
226
- extendBtnIcon,
227
- emptyText,
228
- onExtendBtnPress,
229
- noLabelAnim = false,
230
- radius = 12,
231
- modalVisible,
232
- customPopoverContent,
233
- setModalVisible,
234
- iconStyle,
235
- label,
236
- required,
237
- testID,
238
- ...props
239
- }) => {
240
- const styles = useStyles(props);
241
- const theme = useTheme();
242
- const [selected_old, selectedItem] = React.useState(value);
243
- const searchRef = React.useRef(null);
244
- const [search, setSearch] = useState('');
245
-
94
+ inputStyle: {
95
+ height: 24,
96
+ fontFamily: theme.fonts.fontFamily,
97
+ fontSize: theme.fonts.sizeM,
98
+ fontWeight: theme.fonts.weightR,
99
+ color: theme.colors.colorTextPrimary,
100
+ marginLeft: 0
101
+ },
102
+ leftIconContainer: {
103
+ height: 24,
104
+ marginLeft: 16
105
+ },
106
+ iconStyle: {
107
+ color: theme.colors.secondary
108
+ },
109
+ // Modal 模式样式
110
+ modalContainer: {
111
+ display: "flex",
112
+ flexGrow: 0,
113
+ flexShrink: 0,
114
+ flexBasis: "auto",
115
+ flexDirection: "column",
116
+ justifyContent: "flex-start",
117
+ // 改为顶部对齐,与 CustomDropdown 保持一致
118
+ alignItems: "stretch",
119
+ // 改为拉伸对齐,与 CustomDropdown 保持一致
120
+ width: "100%"
121
+ },
122
+ modalIcon: {
123
+ color: theme.colors.primary
124
+ },
125
+ modalOptionsCon: {
126
+ position: "absolute",
127
+ display: "flex",
128
+ flexDirection: "column",
129
+ overflow: "hidden",
130
+ backgroundColor: theme.colors.white,
131
+ paddingTop: 12,
132
+ paddingBottom: 12,
133
+ borderRadius: 12,
134
+ maxHeight: 224,
135
+ shadowColor: "#000",
136
+ shadowOffset: {
137
+ width: 0,
138
+ height: 4
139
+ },
140
+ shadowOpacity: 0.15,
141
+ shadowRadius: 12,
142
+ elevation: 8
143
+ },
144
+ modalOptionsScrollView: {
145
+ flex: 1,
146
+ display: "flex"
147
+ },
148
+ modalOptionsInner: {
149
+ display: "flex",
150
+ flexDirection: "column",
151
+ justifyContent: "flex-start",
152
+ gap: 8
153
+ },
154
+ modalOption: {
155
+ display: "flex",
156
+ flexDirection: "row",
157
+ width: "100%",
158
+ overflow: "hidden",
159
+ justifyContent: "space-between",
160
+ minHeight: 40,
161
+ alignItems: "center"
162
+ },
163
+ modalOptionText: {
164
+ marginLeft: 16,
165
+ marginRight: 16,
166
+ fontSize: 14,
167
+ fontWeight: "400",
168
+ color: theme.colors.primary,
169
+ alignSelf: "center",
170
+ overflow: "hidden",
171
+ flex: 1
172
+ },
173
+ modalNoOptions: {
174
+ width: "100%",
175
+ textAlign: "center",
176
+ color: theme.colors.grey2,
177
+ marginLeft: 16,
178
+ marginRight: 16
179
+ },
180
+ modalBtn: {
181
+ display: "flex",
182
+ flexDirection: "row",
183
+ justifyContent: "space-between",
184
+ alignItems: "center",
185
+ // 确保垂直居中对齐
186
+ minHeight: 40,
187
+ width: "100%",
188
+ overflow: "hidden",
189
+ position: "relative"
190
+ },
191
+ modalSolidBtn: {
192
+ borderWidth: 1,
193
+ borderRadius: 12,
194
+ borderStyle: "solid",
195
+ borderColor: theme.colors.grey2,
196
+ paddingLeft: 16,
197
+ paddingRight: 12,
198
+ paddingTop: 9,
199
+ paddingBottom: 9,
200
+ alignItems: "center" // 确保垂直居中对齐
201
+ },
202
+ alignCenter: {
203
+ alignSelf: "center"
204
+ },
205
+ labelCon: {
206
+ position: "absolute",
207
+ left: 16,
208
+ paddingLeft: 1,
209
+ paddingRight: 1,
210
+ display: "flex",
211
+ flexDirection: "row",
212
+ zIndex: 30
213
+ },
214
+ labelInner: {
215
+ display: "flex",
216
+ flexDirection: "row"
217
+ },
218
+ labelText: {
219
+ fontSize: 12,
220
+ color: theme.colors.primary
221
+ },
222
+ required: {
223
+ fontSize: 12,
224
+ fontWeight: "400",
225
+ color: theme.colors.error || "#FF4444",
226
+ marginLeft: 1
227
+ },
228
+ msg: {
229
+ display: "flex",
230
+ flexDirection: "row",
231
+ paddingLeft: 16,
232
+ paddingRight: 8,
233
+ marginTop: 1,
234
+ width: "100%",
235
+ height: 15
236
+ },
237
+ msgText: {
238
+ fontSize: 12,
239
+ fontWeight: "400",
240
+ color: theme.colors.secondary
241
+ },
242
+ extendBtnCon: {
243
+ display: "flex",
244
+ flexDirection: "row",
245
+ justifyContent: "center",
246
+ height: 40,
247
+ overflow: "hidden",
248
+ backgroundColor: theme.colors.white,
249
+ borderRadius: 20,
250
+ gap: 8,
251
+ alignItems: "center",
252
+ shadowColor: "#000",
253
+ shadowOffset: {
254
+ width: 0,
255
+ height: 4
256
+ },
257
+ shadowOpacity: 0.15,
258
+ shadowRadius: 12,
259
+ elevation: 8
260
+ },
261
+ extendBtnText: {
262
+ fontSize: 14,
263
+ fontWeight: "400",
264
+ color: theme.colors.primary
265
+ }
266
+ };
267
+ });
268
+ var Dropdown = function (_a) {
269
+ var _b;
270
+ var value = _a.value,
271
+ _c = _a.prefix,
272
+ prefix = _c === void 0 ? '' : _c,
273
+ options = _a.options,
274
+ onChange = _a.onChange,
275
+ width = _a.width,
276
+ subWidth = _a.subWidth,
277
+ _d = _a.subHeight,
278
+ subHeight = _d === void 0 ? 150 : _d,
279
+ isVisible = _a.isVisible,
280
+ onSearchChange = _a.onSearchChange,
281
+ _e = _a.type,
282
+ type = _e === void 0 ? 'option' : _e,
283
+ // 新增 Modal 模式相关属性
284
+ _f = _a.useModal,
285
+ // 新增 Modal 模式相关属性
286
+ useModal = _f === void 0 ? false : _f,
287
+ _g = _a.dropdownItems,
288
+ dropdownItems = _g === void 0 ? [] : _g,
289
+ selected = _a.selected,
290
+ _h = _a.showSelectedValue,
291
+ showSelectedValue = _h === void 0 ? false : _h,
292
+ _j = _a.dropdownType,
293
+ dropdownType = _j === void 0 ? "clear" : _j,
294
+ _k = _a.arrowIcon,
295
+ _arrowIcon = _k === void 0 ? false : _k,
296
+ onSelect = _a.onSelect,
297
+ backgroundColor = _a.backgroundColor,
298
+ labelColor = _a.labelColor,
299
+ _l = _a.state,
300
+ state = _l === void 0 ? "normal" : _l,
301
+ stateMsg = _a.stateMsg,
302
+ _m = _a.showCheckedStatusInList,
303
+ showCheckedStatusInList = _m === void 0 ? false : _m,
304
+ _o = _a.showStateMsg,
305
+ showStateMsg = _o === void 0 ? false : _o,
306
+ _p = _a.offsetWidth,
307
+ offsetWidth = _p === void 0 ? 0 : _p,
308
+ extendBtn = _a.extendBtn,
309
+ extendBtnIcon = _a.extendBtnIcon,
310
+ emptyText = _a.emptyText,
311
+ onExtendBtnPress = _a.onExtendBtnPress,
312
+ _q = _a.noLabelAnim,
313
+ noLabelAnim = _q === void 0 ? false : _q,
314
+ _r = _a.radius,
315
+ radius = _r === void 0 ? 12 : _r,
316
+ modalVisible = _a.modalVisible,
317
+ customPopoverContent = _a.customPopoverContent,
318
+ setModalVisible = _a.setModalVisible,
319
+ iconStyle = _a.iconStyle,
320
+ label = _a.label,
321
+ required = _a.required,
322
+ testID = _a.testID,
323
+ props = __rest(_a, ["value", "prefix", "options", "onChange", "width", "subWidth", "subHeight", "isVisible", "onSearchChange", "type", "useModal", "dropdownItems", "selected", "showSelectedValue", "dropdownType", "arrowIcon", "onSelect", "backgroundColor", "labelColor", "state", "stateMsg", "showCheckedStatusInList", "showStateMsg", "offsetWidth", "extendBtn", "extendBtnIcon", "emptyText", "onExtendBtnPress", "noLabelAnim", "radius", "modalVisible", "customPopoverContent", "setModalVisible", "iconStyle", "label", "required", "testID"]);
324
+ var styles = useStyles(props);
325
+ var theme = (0, themed_1.useTheme)();
326
+ var _s = react_1.default.useState(value),
327
+ selected_old = _s[0],
328
+ selectedItem = _s[1];
329
+ var searchRef = react_1.default.useRef(null);
330
+ var _t = (0, react_1.useState)(''),
331
+ search = _t[0],
332
+ setSearch = _t[1];
246
333
  // Modal 模式相关状态
247
- const [internalModalVisible, setInternalModalVisible] = useState(false);
248
- const [dropdownPosition, setDropdownPosition] = useState({
249
- top: 0,
250
- left: 0
251
- });
252
- const [dropdownWidthCalc, setDropdownWidthCalc] = useState(subWidth ?? 151);
253
- const [selectedItemKey, setSelectedItemKey] = useState(selected ?? "");
254
- const [top, setTop] = useState(18);
255
- const [optionListHeight, setOptionListHeight] = useState(0);
256
- const buttonRef = useRef(null);
257
- const topAnim = useRef(new Animated.Value(18)).current;
258
- const offsetSpace = 8;
259
- const offsetHeight = 10;
260
- useEffect(() => {
334
+ var _u = (0, react_1.useState)(false),
335
+ internalModalVisible = _u[0],
336
+ setInternalModalVisible = _u[1];
337
+ var _v = (0, react_1.useState)({
338
+ top: 0,
339
+ left: 0
340
+ }),
341
+ dropdownPosition = _v[0],
342
+ setDropdownPosition = _v[1];
343
+ var _w = (0, react_1.useState)(subWidth !== null && subWidth !== void 0 ? subWidth : 151),
344
+ dropdownWidthCalc = _w[0],
345
+ setDropdownWidthCalc = _w[1];
346
+ var _x = (0, react_1.useState)(selected !== null && selected !== void 0 ? selected : ""),
347
+ selectedItemKey = _x[0],
348
+ setSelectedItemKey = _x[1];
349
+ var _y = (0, react_1.useState)(18),
350
+ top = _y[0],
351
+ setTop = _y[1];
352
+ var _z = (0, react_1.useState)(0),
353
+ optionListHeight = _z[0],
354
+ setOptionListHeight = _z[1];
355
+ var buttonRef = (0, react_1.useRef)(null);
356
+ var topAnim = (0, react_1.useRef)(new react_native_1.Animated.Value(18)).current;
357
+ var offsetSpace = 8;
358
+ var offsetHeight = 10;
359
+ (0, react_1.useEffect)(function () {
261
360
  selectedItem(value);
262
361
  }, [value]);
263
-
264
362
  // Modal 模式相关 useEffect
265
- useEffect(() => {
266
- setSelectedItemKey(selected ?? "");
363
+ (0, react_1.useEffect)(function () {
364
+ setSelectedItemKey(selected !== null && selected !== void 0 ? selected : "");
267
365
  }, [selected]);
268
- useEffect(() => {
366
+ (0, react_1.useEffect)(function () {
269
367
  if (typeof modalVisible === "boolean" && modalVisible !== undefined) {
270
368
  setInternalModalVisible(modalVisible);
271
369
  }
272
370
  }, [modalVisible]);
273
-
274
371
  // 标签动画效果
275
- useEffect(() => {
372
+ (0, react_1.useEffect)(function () {
276
373
  if (!useModal || noLabelAnim) return;
277
- const start = !selectedItemKey ? 0 : 18;
278
- const target = !selectedItemKey ? 18 : 0;
374
+ var start = !selectedItemKey ? 0 : 18;
375
+ var target = !selectedItemKey ? 18 : 0;
279
376
  if (top === target) return;
280
377
  setTop(target);
281
378
  topAnim.setValue(start);
282
- Animated.timing(topAnim, {
379
+ react_native_1.Animated.timing(topAnim, {
283
380
  toValue: target,
284
381
  duration: 300,
285
382
  useNativeDriver: true
286
383
  }).start();
287
384
  }, [selectedItemKey, useModal, noLabelAnim]);
288
- const handleStopEvent = event => {
385
+ var handleStopEvent = function (event) {
289
386
  event.stopPropagation();
290
387
  };
291
- const updateSearch = search => {
388
+ var updateSearch = function (search) {
292
389
  setSearch(search);
293
390
  onSearchChange && onSearchChange(search);
294
391
  };
295
-
296
392
  // Modal 模式下的弹出逻辑
297
- const openDropdown = () => {
393
+ var openDropdown = function () {
298
394
  if (props.disabled) return;
299
395
  if (buttonRef.current) {
300
- buttonRef.current.measure((_fx, _fy, width, height, px, py) => {
301
- const window = Dimensions.get("window");
302
- const dropdownHeight = subHeight ?? Math.min(40 * dropdownItems.length + 24, 224);
303
- const dropdownWidth = Math.max(width, subWidth ?? 151);
396
+ buttonRef.current.measure(function (_fx, _fy, width, height, px, py) {
397
+ var window = react_native_1.Dimensions.get("window");
398
+ var dropdownHeight = subHeight !== null && subHeight !== void 0 ? subHeight : Math.min(40 * dropdownItems.length + 24, 224);
399
+ var dropdownWidth = Math.max(width, subWidth !== null && subWidth !== void 0 ? subWidth : 151);
304
400
  setDropdownWidthCalc(dropdownWidth);
305
-
306
401
  // 计算显示位置
307
- const enoughSpaceBelow = py + height + dropdownHeight + offsetHeight <= window.height;
308
- const enoughSpaceAbove = py - dropdownHeight >= 0;
309
- const enoughSpaceRight = px + dropdownWidth <= window.width;
310
- const adjustedPx = px % window.width + (px > window.width ? 56 : 0) + offsetWidth;
311
- const top = enoughSpaceBelow ? py + height + offsetSpace : enoughSpaceAbove ? py - dropdownHeight - offsetHeight - 16 : py + height + offsetSpace;
312
- const left = enoughSpaceRight ? adjustedPx : adjustedPx + width - dropdownWidth;
402
+ var enoughSpaceBelow = py + height + dropdownHeight + offsetHeight <= window.height;
403
+ var enoughSpaceAbove = py - dropdownHeight >= 0;
404
+ var enoughSpaceRight = px + dropdownWidth <= window.width;
405
+ var adjustedPx = px % window.width + (px > window.width ? 56 : 0) + offsetWidth;
406
+ var top = enoughSpaceBelow ? py + height + offsetSpace : enoughSpaceAbove ? py - dropdownHeight - offsetHeight - 16 : py + height + offsetSpace;
407
+ var left = enoughSpaceRight ? adjustedPx : adjustedPx + width - dropdownWidth;
313
408
  setDropdownPosition({
314
- top,
315
- left
409
+ top: top,
410
+ left: left
316
411
  });
317
412
  if (setModalVisible) {
318
413
  setModalVisible(true);
@@ -322,38 +417,35 @@ const Dropdown = ({
322
417
  });
323
418
  }
324
419
  };
325
- const closeModal = () => {
420
+ var closeModal = function () {
326
421
  if (setModalVisible) {
327
422
  setModalVisible(false);
328
423
  } else {
329
424
  setInternalModalVisible(false);
330
425
  }
331
426
  };
332
- const handleConLayout = event => {
333
- const {
334
- height
335
- } = event.nativeEvent.layout;
427
+ var handleConLayout = function (event) {
428
+ var height = event.nativeEvent.layout.height;
336
429
  setOptionListHeight(height);
337
430
  };
338
-
339
431
  // 如果使用 Modal 模式,渲染新的 Modal 界面
340
432
  if (useModal) {
341
- return /*#__PURE__*/React.createElement(View, {
433
+ return react_1.default.createElement(react_native_1.View, {
342
434
  style: [styles.modalContainer, width ? {
343
435
  width: width
344
436
  } : null, {
345
437
  minHeight: 40 + (label ? 7 : 0) + (showStateMsg ? 15 : 0)
346
438
  }]
347
- }, label && !noLabelAnim && /*#__PURE__*/React.createElement(Animated.View, {
439
+ }, label && !noLabelAnim && react_1.default.createElement(react_native_1.Animated.View, {
348
440
  style: [styles.labelCon, {
349
441
  top: topAnim
350
442
  }, {
351
443
  backgroundColor: backgroundColor || theme.theme.colors.white
352
444
  }]
353
- }, /*#__PURE__*/React.createElement(Pressable, {
445
+ }, react_1.default.createElement(react_native_1.Pressable, {
354
446
  style: styles.labelInner,
355
447
  onPress: openDropdown
356
- }, /*#__PURE__*/React.createElement(Text, {
448
+ }, react_1.default.createElement(react_native_1.Text, {
357
449
  style: [styles.labelText, state === "error" && {
358
450
  color: theme.theme.colors.error
359
451
  }, !selectedItemKey && {
@@ -363,9 +455,9 @@ const Dropdown = ({
363
455
  }],
364
456
  numberOfLines: 1,
365
457
  ellipsizeMode: "tail"
366
- }, !selectedItemKey ? props.placeholder || label : label), required && /*#__PURE__*/React.createElement(Text, {
458
+ }, !selectedItemKey ? props.placeholder || label : label), required && react_1.default.createElement(react_native_1.Text, {
367
459
  style: styles.required
368
- }, "*"))), /*#__PURE__*/React.createElement(TouchableOpacity, {
460
+ }, "*"))), react_1.default.createElement(react_native_1.TouchableOpacity, {
369
461
  ref: buttonRef,
370
462
  style: [showSelectedValue || noLabelAnim && label ? styles.modalBtn : null, dropdownType === "solid" ? styles.modalSolidBtn : null, dropdownType === "solid" && radius ? {
371
463
  borderRadius: radius
@@ -374,7 +466,7 @@ const Dropdown = ({
374
466
  label && !noLabelAnim ? {
375
467
  marginTop: 7
376
468
  } : null, noLabelAnim && label && backgroundColor ? {
377
- backgroundColor
469
+ backgroundColor: backgroundColor
378
470
  } : null, state === "error" ? {
379
471
  borderColor: theme.theme.colors.error
380
472
  } : null, props.disabled ? {
@@ -386,7 +478,7 @@ const Dropdown = ({
386
478
  }],
387
479
  disabled: props.disabled,
388
480
  onPress: openDropdown
389
- }, showSelectedValue ? /*#__PURE__*/React.createElement(Text, {
481
+ }, showSelectedValue ? react_1.default.createElement(react_native_1.Text, {
390
482
  style: [styles.alignCenter, {
391
483
  flexGrow: 1,
392
484
  marginRight: 12
@@ -395,7 +487,9 @@ const Dropdown = ({
395
487
  }],
396
488
  numberOfLines: 1,
397
489
  ellipsizeMode: "tail"
398
- }, dropdownItems.find(item => item.key === selectedItemKey)?.value) : noLabelAnim && label ? /*#__PURE__*/React.createElement(Text, {
490
+ }, (_b = dropdownItems.find(function (item) {
491
+ return item.key === selectedItemKey;
492
+ })) === null || _b === void 0 ? void 0 : _b.value) : noLabelAnim && label ? react_1.default.createElement(react_native_1.Text, {
399
493
  style: [styles.alignCenter, {
400
494
  flexGrow: 1,
401
495
  marginRight: 2
@@ -406,31 +500,31 @@ const Dropdown = ({
406
500
  } : null],
407
501
  numberOfLines: 1,
408
502
  ellipsizeMode: "tail"
409
- }, label) : null, /*#__PURE__*/React.createElement(TapasIcon, {
503
+ }, label) : null, react_1.default.createElement(TapasIcon_1.default, {
410
504
  size: 20,
411
505
  style: [styles.alignCenter, styles.modalIcon, iconStyle, props.disabled && {
412
506
  color: theme.theme.colors.grey3
413
507
  }],
414
508
  name: internalModalVisible && props.icon === "arrow_drop_down" ? "arrow_drop_up" : props.icon === "arrow_drop_up" ? "arrow_drop_down" : props.icon || "arrow_drop_down"
415
- })), showStateMsg && /*#__PURE__*/React.createElement(View, {
509
+ })), showStateMsg && react_1.default.createElement(react_native_1.View, {
416
510
  style: styles.msg
417
- }, /*#__PURE__*/React.createElement(Text, {
511
+ }, react_1.default.createElement(react_native_1.Text, {
418
512
  style: [styles.msgText, state === "error" && {
419
513
  color: theme.theme.colors.error
420
514
  }],
421
515
  numberOfLines: 1,
422
516
  ellipsizeMode: "tail"
423
- }, stateMsg)), /*#__PURE__*/React.createElement(Modal, {
517
+ }, stateMsg)), react_1.default.createElement(react_native_1.Modal, {
424
518
  transparent: true,
425
519
  visible: internalModalVisible,
426
520
  onRequestClose: closeModal,
427
521
  animationType: "fade"
428
- }, /*#__PURE__*/React.createElement(TouchableOpacity, {
522
+ }, react_1.default.createElement(react_native_1.TouchableOpacity, {
429
523
  style: {
430
524
  flex: 1
431
525
  },
432
526
  onPress: closeModal
433
- }, /*#__PURE__*/React.createElement(View, {
527
+ }, react_1.default.createElement(react_native_1.View, {
434
528
  style: [styles.modalOptionsCon, {
435
529
  top: dropdownPosition.top,
436
530
  left: dropdownPosition.left,
@@ -439,191 +533,21 @@ const Dropdown = ({
439
533
  maxHeight: subHeight
440
534
  } : null],
441
535
  onLayout: handleConLayout
442
- }, customPopoverContent ? customPopoverContent : /*#__PURE__*/React.createElement(ScrollView, {
536
+ }, customPopoverContent ? customPopoverContent : react_1.default.createElement(react_native_1.ScrollView, {
443
537
  style: styles.modalOptionsScrollView,
444
538
  showsHorizontalScrollIndicator: false,
445
539
  showsVerticalScrollIndicator: false
446
- }, /*#__PURE__*/React.createElement(View, {
540
+ }, react_1.default.createElement(react_native_1.View, {
447
541
  style: styles.modalOptionsInner
448
- }, dropdownItems.length > 0 ? dropdownItems.map((item, index) => /*#__PURE__*/React.createElement(Pressable, {
449
- style: ({
450
- pressed
451
- }) => [styles.modalOption, item.secondaryValue ? {
452
- flexWrap: "wrap"
453
- } : null, {
454
- padding: 10,
455
- backgroundColor: pressed ? theme.theme.colors.grey4 || "#f0f0f0" : "transparent"
456
- },
457
- // 第一个 item 添加左上和右上圆角
458
- index === 0 && {
459
- borderTopLeftRadius: 12,
460
- borderTopRightRadius: 12
461
- },
462
- // 最后一个 item 添加左下和右下圆角
463
- index === dropdownItems.length - 1 && {
464
- borderBottomLeftRadius: 12,
465
- borderBottomRightRadius: 12
466
- }, showCheckedStatusInList && selectedItemKey === item.key ? {
467
- backgroundColor: theme.theme.colors.grey4 || "#f0f0f0"
468
- } : null],
469
- key: `dropdown-option-${item.key}-${index}`,
470
- onPress: () => {
471
- closeModal();
472
- if (onSelect) {
473
- onSelect(item);
474
- } else {
475
- setSelectedItemKey(item.key);
476
- }
477
- }
478
- }, /*#__PURE__*/React.createElement(View, {
479
- style: {
480
- display: "flex",
481
- flexDirection: "row",
482
- justifyContent: "space-between",
483
- overflow: "hidden",
484
- width: "100%"
485
- }
486
- }, /*#__PURE__*/React.createElement(Text, {
487
- style: [styles.modalOptionText],
488
- numberOfLines: 1,
489
- ellipsizeMode: "tail"
490
- }, item.value), selectedItemKey === item.key && /*#__PURE__*/React.createElement(TapasIcon, {
491
- name: "check",
492
- size: 20,
493
- color: theme.theme.colors.primary
494
- })), item.secondaryValue && /*#__PURE__*/React.createElement(View, {
495
- style: {
496
- display: "flex",
497
- flexDirection: "row",
498
- flex: 1,
499
- height: 14,
500
- overflow: "hidden",
501
- minWidth: dropdownWidthCalc - 32
502
- }
503
- }, /*#__PURE__*/React.createElement(Text, {
504
- style: [styles.modalOptionText, {
505
- fontSize: 12,
506
- color: theme.theme.colors.secondary
507
- }],
508
- numberOfLines: 1,
509
- ellipsizeMode: "tail"
510
- }, item.secondaryValue)))) : /*#__PURE__*/React.createElement(Text, {
511
- numberOfLines: 1,
512
- ellipsizeMode: "tail",
513
- style: [styles.modalOptionText, styles.modalNoOptions]
514
- }, emptyText || "No options")))), extendBtn && /*#__PURE__*/React.createElement(Pressable, {
515
- onPress: () => {
516
- closeModal();
517
- setTimeout(() => {
518
- onExtendBtnPress?.();
519
- }, 300);
520
- },
521
- style: [styles.extendBtnCon, {
522
- left: dropdownPosition.left,
523
- top: dropdownPosition.top + optionListHeight + 8,
524
- width: dropdownWidthCalc
525
- }]
526
- }, extendBtnIcon && /*#__PURE__*/React.createElement(TapasIcon, {
527
- size: 20,
528
- name: extendBtnIcon
529
- }), /*#__PURE__*/React.createElement(Text, {
530
- style: styles.extendBtnText,
531
- numberOfLines: 1,
532
- ellipsizeMode: "tail"
533
- }, extendBtn)))));
534
- }
535
-
536
- // 原有的 CustomDropdown 模式
537
- return /*#__PURE__*/React.createElement(CustomDropdown, _extends({
538
- title: props?.title,
539
- value: `${prefix}${selected_old?.name}`,
540
- isVisible: isVisible,
541
- width: width,
542
- subWidth: subWidth,
543
- subHeight: subHeight,
544
- testID: testID
545
- }, props, {
546
- onClose: () => {
547
- props.onClose && props.onClose();
548
- },
549
- onPress: () => {
550
- props.onPress && props.onPress();
551
- },
552
- sheetTitlePros: {
553
- ...props.sheetTitlePros,
554
- onClose: () => {
555
- props.onClose && props.onClose();
556
- }
557
- }
558
- }), /*#__PURE__*/React.createElement(Pressable, {
559
- onPress: handleStopEvent
560
- }, props.showSearchBar && /*#__PURE__*/React.createElement(SearchBar, {
561
- ref: search => searchRef.current = search,
562
- containerStyle: {
563
- ...styles.searchBarContainer,
564
- borderEndWidth: 1,
565
- borderTopWidth: 0,
566
- borderRightWidth: 0,
567
- width: subWidth
568
- },
569
- inputContainerStyle: styles.inputContainer,
570
- placeholder: props.placeholder,
571
- onChangeText: updateSearch,
572
- inputStyle: {
573
- ...styles.inputStyle
574
- },
575
- leftIconContainerStyle: styles.leftIconContainer,
576
- value: search,
577
- lightTheme: true,
578
- searchIcon: /*#__PURE__*/React.createElement(TapasIcon, {
579
- name: "search",
580
- style: styles.iconStyle,
581
- size: 20
582
- }),
583
- clearIcon: /*#__PURE__*/React.createElement(TapasIcon, {
584
- name: "close",
585
- onPress: () => {
586
- const search = searchRef.current;
587
- if (search) {
588
- search.clear();
589
- search.blur();
590
- }
591
- },
592
- size: 20
593
- })
594
- })), /*#__PURE__*/React.createElement(ScrollView, {
595
- style: {
596
- width: subWidth,
597
- height: subHeight
598
- }
599
- }, options?.map((item, index) => {
600
- const visibleItems = options.filter(item => !item.hide);
601
- const currentVisibleIndex = visibleItems.findIndex(visibleItem => visibleItem === item);
602
- const isFirst = currentVisibleIndex === 0;
603
- const isLast = currentVisibleIndex === visibleItems.length - 1;
604
- return !item.hide && /*#__PURE__*/React.createElement(CustomListItem, {
605
- onItemPress: value => {
606
- if (type === 'button') {
607
- props.onItemPress && props.onItemPress(item.value);
608
- } else {
609
- selectedItem(value);
610
- onChange && onChange(value);
611
- }
612
- props.onClose && props.onClose();
613
- },
614
- key: index,
615
- item: item,
616
- selected: selected_old,
617
- isFirst: isFirst,
618
- isLast: isLast
619
- });
620
- })));
621
- };
622
- export default withTheme(Dropdown);
623
-
624
- // 向后兼容的别名导出
625
- export const TapasDropdownModal = withTheme(Dropdown);
626
- //# sourceMappingURL=Dropdown.js.mapeme.theme.colors.grey4 || "#f0f0f0" : "transparent"
542
+ }, dropdownItems.length > 0 ? dropdownItems.map(function (item, index) {
543
+ return react_1.default.createElement(react_native_1.Pressable, {
544
+ style: function (_a) {
545
+ var pressed = _a.pressed;
546
+ return [styles.modalOption, item.secondaryValue ? {
547
+ flexWrap: "wrap"
548
+ } : null, {
549
+ padding: 10,
550
+ backgroundColor: pressed ? theme.theme.colors.grey4 || "#f0f0f0" : "transparent"
627
551
  },
628
552
  // 第一个 item 添加左上和右上圆角
629
553
  index === 0 && {