@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.
- package/commonjs/AnimatedNavItem/index.js.map +2 -1
- package/commonjs/BarChart/BarChart.js +112 -90
- package/commonjs/BarChart/BarChart.js.map +1 -1
- package/commonjs/Button/Button.js +96 -78
- package/commonjs/Button/Button.js.map +1 -2
- package/commonjs/Button/ButtonGroup.js +156 -136
- package/commonjs/Button/ButtonGroup.js.map +1 -2
- package/commonjs/Calendar/Calendar.base.js +162 -190
- package/commonjs/Calendar/Calendar.base.js.map +1 -2
- package/commonjs/Calendar/Calendar.js +86 -102
- package/commonjs/Calendar/Calendar.js.map +2 -1
- package/commonjs/Calendar/CustomRange.js +271 -324
- package/commonjs/Calendar/DaySelector.js +115 -113
- package/commonjs/Calendar/DaySelector.js.map +2 -1
- package/commonjs/Calendar/MonthSelector.js +118 -115
- package/commonjs/Calendar/local.js +2 -2
- package/commonjs/Calendar/local.js.map +2 -1
- package/commonjs/Calendar/types.js +11 -11
- package/commonjs/CheckBox/CheckBox.js +96 -63
- package/commonjs/CheckBox/CheckBox.js.map +1 -2
- package/commonjs/CheckBox/CheckBoxItem.js +78 -57
- package/commonjs/CheckBox/CheckBoxItem.js.map +1 -2
- package/commonjs/CircularProgress/CircularProgress.js +25 -23
- package/commonjs/CircularProgress/CircularProgress.js.map +1 -2
- package/commonjs/Collapsible/Collapsible.js +60 -74
- package/commonjs/Collapsible/Collapsible.js.map +2 -1
- package/commonjs/DashboardCard/DashboardCard.js +74 -94
- package/commonjs/DashboardCard/DashboardCard.js.map +1 -1
- package/commonjs/DataCell/DataCell.js +108 -0
- package/commonjs/DataCell/DataCell.js.map +1 -0
- package/commonjs/DataCell/index.js +15 -9
- package/commonjs/DataTable/DataTable.js +0 -69
- package/commonjs/DataTable/index.js.map +2 -1
- package/commonjs/DeviceSelectionModal/DeviceSelectionModal.js +242 -244
- package/commonjs/DeviceSelectionModal/DeviceSelectionModal.js.map +1 -2
- package/commonjs/DraggableFlatList/DraggableFlatList.js +1 -1
- package/commonjs/Dropdown/InputDropdown.js.map +2 -1
- package/commonjs/Gantt/Accessories.js +135 -168
- package/commonjs/Gantt/Accessories.js.map +1 -2
- package/commonjs/Gantt/Gantt.js +149 -149
- package/commonjs/Gantt/Gantt.js.map +2 -1
- package/commonjs/Gantt/GanttInnerElementType.js +93 -102
- package/commonjs/Gantt/GanttInnerElementType.js.map +2 -1
- package/commonjs/Gantt/helper.js +119 -145
- package/commonjs/Gantt/types.js +4 -4
- package/commonjs/Grid/VariableSizeGrid.js +120 -113
- package/commonjs/Grid/VariableSizeGrid.js.map +2 -1
- package/commonjs/Grid/helper.js.map +2 -1
- package/commonjs/Grid/timer.js +9 -5
- package/commonjs/Grid/timer.js.map +1 -2
- package/commonjs/HelloWave/HelloWave.js +46 -53
- package/commonjs/HelloWave/HelloWave.js.map +1 -2
- package/commonjs/Hoverable/Hoverable.js +35 -33
- package/commonjs/Hoverable/Hoverable.js.map +2 -2
- package/commonjs/IconText/IconText.js +88 -65
- package/commonjs/IconText/IconText.js.map +2 -1
- package/commonjs/Icons/TapasIcon.js +99 -100
- package/commonjs/Icons/TapasIcon.js.map +1 -2
- package/commonjs/Icons/TapasIconExpo.js +101 -94
- package/commonjs/Icons/smartFontLoader.js +266 -222
- package/commonjs/Image/PreviewImg.js +85 -63
- package/commonjs/Image/PreviewImg.js.map +1 -2
- package/commonjs/Layout/DrawerContext.js +49 -35
- package/commonjs/Layout/DrawerContext.js.map +1 -2
- package/commonjs/Layout/ToastContext.js +34 -46
- package/commonjs/LineChart/LineChart.js +126 -144
- package/commonjs/LineChart/LineChart.js.map +1 -2
- package/commonjs/LineChart/index.js +4 -3
- package/commonjs/LineChart/index.js.map +1 -2
- package/commonjs/ListItem/ListItem.js +80 -108
- package/commonjs/ListItem/ListItem.js.map +2 -1
- package/commonjs/Loading/Loading.js +66 -54
- package/commonjs/Loading/Loading.js.map +1 -1
- package/commonjs/MessageBox/MessageBox.js +127 -126
- package/commonjs/MessageBox/MessageBox.js.map +2 -1
- package/commonjs/MultiSelector/MultiSelector.js +250 -225
- package/commonjs/MultiSelector/index.js +6 -8
- package/commonjs/MultiSelector/index.js.map +2 -1
- package/commonjs/Navigation/Navigation.js +65 -0
- package/commonjs/Navigation/Navigation.js.map +1 -0
- package/commonjs/Notification/Notification.js +110 -89
- package/commonjs/Notification/index.js +6 -8
- package/commonjs/Notification/index.js.map +2 -1
- package/commonjs/NumericInput/NumericInput.js +23 -0
- package/commonjs/NumericInput/NumericInput.js.map +1 -0
- package/commonjs/Overlay/Overlay.js +24 -45
- package/commonjs/Overlay/Overlay.js.map +1 -1
- package/commonjs/Pagination/Pagination.js +93 -151
- package/commonjs/Pagination/Pagination.js.map +1 -1
- package/commonjs/PieChart/PieChart.js.map +2 -1
- package/commonjs/PieChart/index.js +3 -4
- package/commonjs/PieChart/index.js.map +2 -1
- package/commonjs/Popover/Popover.js +112 -137
- package/commonjs/Popover/Popover.js.map +1 -2
- package/commonjs/Progress/Progress.js +54 -48
- package/commonjs/Progress/Progress.js.map +1 -2
- package/commonjs/Quantity/Quantity.js +52 -127
- package/commonjs/Quantity/Quantity.js.map +0 -1
- package/commonjs/Quantity/index.js +8 -6
- package/commonjs/Quantity/index.js.map +1 -2
- package/commonjs/ReasonModal/ReasonModal.js +125 -122
- package/commonjs/ReasonModal/ReasonModal.js.map +2 -1
- package/commonjs/ReasonModal/index.js +9 -15
- package/commonjs/ReasonModal/index.js.map +1 -2
- package/commonjs/SearchInput/SearchInput.js +92 -108
- package/commonjs/SheetTitle/SheetTitle.js +0 -6
- package/commonjs/SheetTitle/SheetTitle.js.map +0 -1
- package/commonjs/Shell/Shell.js +84 -92
- package/commonjs/Shell/Shell.js.map +2 -1
- package/commonjs/Shell/styles.js.map +1 -2
- package/commonjs/Shell/types.js +2 -2
- package/commonjs/Shell/types.js.map +1 -2
- package/commonjs/StatisticCard/StatisticCard.js +41 -47
- package/commonjs/Steps/Steps.js +41 -40
- package/commonjs/Steps/Steps.js.map +1 -1
- package/commonjs/TabTitle/index.js +0 -1
- package/commonjs/TabTitle/index.js.map +0 -1
- package/commonjs/TableColumnHeader/TableColumnHeader.js +134 -140
- package/commonjs/Tag/Tag.js +0 -41
- package/commonjs/Tag/Tag.js.map +0 -1
- package/commonjs/Task/Task.js +201 -112
- package/commonjs/Task/Task.js.map +2 -1
- package/commonjs/Text/Text.js.map +0 -1
- package/commonjs/Theme/ThemeProvider.js +18 -16
- package/commonjs/Theme/defaultTheme.js +21 -16
- package/commonjs/Theme/defaultTheme.js.map +2 -1
- package/commonjs/Toast/Toast.js +32 -0
- package/commonjs/Toast/Toast.js.map +1 -0
- package/commonjs/UserSwitcher/UserSwitcher.js +147 -144
- package/commonjs/UserSwitcher/UserSwitcher.js.map +2 -1
- package/module/Alert/Alert.js +71 -51
- package/module/Alert/Alert.js.map +2 -1
- package/module/AnimatedNavItem/AnimatedNavItem.js.map +1 -2
- package/module/AnimatedNavItem/index.js +7 -3
- package/module/AnimatedNavItem/index.js.map +1 -2
- package/module/BarChart/BarChart.js +140 -109
- package/module/BarChart/BarChart.js.map +2 -1
- package/module/BarChart/index.js +4 -2
- package/module/Button/ButtonGroup.js +120 -129
- package/module/Button/ButtonGroup.js.map +1 -2
- package/module/Calendar/ConcreteTimeSelector.js +299 -211
- package/module/Calendar/ConcreteTimeSelector.js.map +2 -1
- package/module/Calendar/DaySelector.js +118 -95
- package/module/Calendar/DaySelector.js.map +2 -1
- package/module/Calendar/TimeSelector.js +307 -215
- package/module/Calendar/TimeSelector.js.map +1 -2
- package/module/Calendar/local.js +7 -7
- package/module/Calendar/local.js.map +2 -1
- package/module/Calendar/types.js.map +1 -2
- package/module/Card/Card.js +236 -154
- package/module/Card/Card.js.map +1 -1
- package/module/CheckBox/CheckBox.js +89 -93
- package/module/CheckBox/CheckBox.js.map +2 -1
- package/module/CheckBox/CheckBoxItem.js +84 -69
- package/module/CheckBox/CheckBoxItem.js.map +1 -1
- package/module/CheckBox/GroupCheckBox.js +76 -66
- package/module/CheckBox/GroupCheckBox.js.map +2 -1
- package/module/CircularProgress/CircularProgress.js +0 -22
- package/module/CircularProgress/CircularProgress.js.map +0 -1
- package/module/DashboardCard/DashboardCard.js +88 -80
- package/module/DashboardCard/DashboardCard.js.map +1 -2
- package/module/DataCell/DataCell.js +224 -311
- package/module/DataCell/DataCell.js.map +1 -2
- package/module/DataTable/DataTable.js +100 -0
- package/module/DataTable/index.js.map +1 -2
- package/module/DeviceSelectionModal/DeviceSelectionModal.js +124 -0
- package/module/DeviceSelectionModal/DeviceSelectionModal.js.map +1 -0
- package/module/DraggableFlatList/DraggableFlatList.js +9 -0
- package/module/DraggableFlatList/DraggableFlatList.js.map +1 -0
- package/module/Dropdown/CustomDropdown.js +160 -212
- package/module/Dropdown/CustomDropdown.js.map +1 -1
- package/module/Dropdown/Dropdown.js +408 -484
- package/module/Dropdown/Dropdown.js.map +1 -2
- package/module/Dropdown/InputDropdown.js +134 -116
- package/module/Dropdown/InputDropdown.js.map +2 -1
- package/module/ExternalLink/ExternalLink.js +0 -150
- package/module/ExternalLink/ExternalLink.js.map +0 -1
- package/module/Gantt/Accessories.js.map +2 -1
- package/module/Gantt/Gantt.js +152 -139
- package/module/Gantt/Gantt.js.map +2 -1
- package/module/Gantt/GanttInnerElementType.js.map +1 -2
- package/module/Gantt/helper.js +163 -129
- package/module/Gantt/types.js +8 -4
- package/module/Gantt/types.js.map +1 -2
- package/module/Grid/VariableSizeGrid.js +118 -121
- package/module/Grid/VariableSizeGrid.js.map +1 -2
- package/module/Grid/helper.js.map +2 -1
- package/module/Grid/timer.js +16 -14
- package/module/Grid/timer.js.map +1 -2
- package/module/HelloWave/HelloWave.js +53 -43
- package/module/HelloWave/HelloWave.js.map +2 -1
- package/module/Hoverable/Hoverable.js +66 -69
- package/module/Hoverable/Hoverable.js.map +1 -2
- package/module/Icons/TapasIcon.js +96 -120
- package/module/Icons/TapasIcon.js.map +1 -2
- package/module/Icons/TapasIconExpo.js +98 -78
- package/module/Icons/TapasIconExpo.js.map +2 -1
- package/module/Icons/fontLoader.js.map +2 -1
- package/module/Icons/index.js +10 -9
- package/module/Icons/smartFontLoader.js.map +2 -1
- package/module/Input/Input.js +74 -0
- package/module/Input/Input.js.map +1 -0
- package/module/Layout/DrawerContext.js +29 -18
- package/module/Layout/DrawerContext.js.map +2 -1
- package/module/Layout/Layout.js +100 -100
- package/module/Layout/index.js +15 -14
- package/module/LineChart/LineChart.js +157 -121
- package/module/Loading/Loading.js +65 -67
- package/module/Loading/Loading.js.map +2 -1
- package/module/MultiSelector/MultiSelector.js.map +2 -1
- package/module/MultiSelector/index.js +2 -3
- package/module/MultiSelector/index.js.map +2 -1
- package/module/Notification/Notification.js +105 -101
- package/module/Notification/Notification.js.map +2 -1
- package/module/Notification/index.js +18 -1
- package/module/Notification/index.js.map +1 -1
- package/module/NumericInput/NumericInput.js.map +1 -0
- package/module/Overlay/Overlay.js +29 -0
- package/module/Overlay/Overlay.js.map +1 -0
- package/module/Pagination/Pagination.js +0 -72
- package/module/Pagination/Pagination.js.map +0 -1
- package/module/PieChart/PieChart.js +101 -76
- package/module/PieChart/PieChart.js.map +1 -2
- package/module/Quantity/Quantity.js +129 -112
- package/module/ReasonModal/ReasonModal.js +114 -145
- package/module/ReasonModal/ReasonModal.js.map +1 -2
- package/module/ReasonModal/index.js +27 -0
- package/module/ScanButton/ScanButton.js +56 -35
- package/module/ScanButton/ScanButton.js.map +1 -1
- package/module/Shell/types.js +2 -4
- package/module/TabTitle/TabTitle.js +57 -48
- package/module/TableColumnHeader/TableColumnHeader.js +153 -126
- package/module/Task/Task.js +113 -207
- package/module/Task/Task.js.map +1 -2
- package/module/Task/type.js +4 -8
- package/module/Task/type.js.map +1 -2
- package/module/Text/Text.js +80 -70
- package/module/Text/Text.js.map +1 -2
- package/module/TextArea/TextArea.js +119 -0
- package/module/TextArea/TextArea.js.map +1 -0
- package/module/Theme/defaultTheme.js +20 -0
- package/module/Theme/defaultTheme.js.map +1 -0
- package/module/Timeline/Timeline.js +54 -0
- package/module/Timeline/Timeline.js.map +1 -0
- package/module/UserSwitcher/UserSwitcher.js.map +2 -1
- package/module/index.js.map +1 -2
- package/package.json +1 -1
- package/typescript/Hoverable/Hoverable.d.ts.map +1 -1
|
@@ -1,121 +1,204 @@
|
|
|
1
|
-
|
|
2
|
-
import React, { useCallback, useMemo, useState, useEffect } from "react";
|
|
3
|
-
import { View, Text, Pressable } from "react-native";
|
|
4
|
-
import { withTheme, makeStyles } from "@rneui/themed";
|
|
5
|
-
import TapasIcon from "../Icons/TapasIcon";
|
|
6
|
-
// import { TapasDropdown } from "../Dropdown/Dropdown";
|
|
1
|
+
"use strict";
|
|
7
2
|
|
|
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 __rest = this && this.__rest || function (s, e) {
|
|
55
|
+
var t = {};
|
|
56
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
57
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
58
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
59
|
+
}
|
|
60
|
+
return t;
|
|
61
|
+
};
|
|
62
|
+
var __importDefault = this && this.__importDefault || function (mod) {
|
|
63
|
+
return mod && mod.__esModule ? mod : {
|
|
64
|
+
"default": mod
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
Object.defineProperty(exports, "__esModule", {
|
|
68
|
+
value: true
|
|
69
|
+
});
|
|
70
|
+
exports.setDropdownStateChangeListener = exports.TapasDataCell = exports.DataCell = void 0;
|
|
71
|
+
var react_1 = __importStar(require("react"));
|
|
72
|
+
var react_native_1 = require("react-native");
|
|
73
|
+
var themed_1 = require("@rneui/themed");
|
|
74
|
+
var TapasIcon_1 = __importDefault(require("../Icons/TapasIcon"));
|
|
75
|
+
// import { TapasDropdown } from "../Dropdown/Dropdown";
|
|
8
76
|
// 全局下拉菜单状态管理
|
|
9
|
-
|
|
77
|
+
var globalDropdownState = {
|
|
10
78
|
activeColumn: null,
|
|
11
79
|
activeRow: null,
|
|
12
|
-
closeAll: ()
|
|
80
|
+
closeAll: function () {},
|
|
13
81
|
onDropdownStateChange: undefined
|
|
14
82
|
};
|
|
15
|
-
|
|
16
83
|
// 注册和注销下拉菜单的函数
|
|
17
|
-
|
|
84
|
+
var registerDropdown = function (columnIndex, rowIndex, closeCallback) {
|
|
85
|
+
var _a;
|
|
18
86
|
globalDropdownState.activeColumn = columnIndex;
|
|
19
87
|
globalDropdownState.activeRow = rowIndex;
|
|
20
88
|
globalDropdownState.closeAll = closeCallback;
|
|
21
89
|
// 通知状态变化
|
|
22
|
-
globalDropdownState.onDropdownStateChange
|
|
90
|
+
(_a = globalDropdownState.onDropdownStateChange) === null || _a === void 0 ? void 0 : _a.call(globalDropdownState, columnIndex, rowIndex);
|
|
23
91
|
};
|
|
24
|
-
|
|
92
|
+
var unregisterDropdown = function () {
|
|
93
|
+
var _a;
|
|
25
94
|
globalDropdownState.activeColumn = null;
|
|
26
95
|
globalDropdownState.activeRow = null;
|
|
27
|
-
globalDropdownState.closeAll = ()
|
|
96
|
+
globalDropdownState.closeAll = function () {};
|
|
28
97
|
// 通知状态变化
|
|
29
|
-
globalDropdownState.onDropdownStateChange
|
|
98
|
+
(_a = globalDropdownState.onDropdownStateChange) === null || _a === void 0 ? void 0 : _a.call(globalDropdownState, null, null);
|
|
30
99
|
};
|
|
31
|
-
|
|
100
|
+
var closeAllDropdowns = function () {
|
|
32
101
|
if (globalDropdownState.closeAll) {
|
|
33
102
|
globalDropdownState.closeAll();
|
|
34
103
|
}
|
|
35
104
|
};
|
|
36
|
-
|
|
37
105
|
// 设置下拉菜单状态变化监听器
|
|
38
|
-
|
|
106
|
+
var setDropdownStateChangeListener = function (callback) {
|
|
39
107
|
globalDropdownState.onDropdownStateChange = callback;
|
|
40
108
|
};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
109
|
+
exports.setDropdownStateChangeListener = setDropdownStateChangeListener;
|
|
110
|
+
var TapasDataCell = function (_a) {
|
|
111
|
+
var value = _a.value,
|
|
112
|
+
_b = _a.dataType,
|
|
113
|
+
dataType = _b === void 0 ? "text" : _b,
|
|
114
|
+
_c = _a.alignment,
|
|
115
|
+
alignment = _c === void 0 ? "left" : _c,
|
|
116
|
+
columnIndex = _a.columnIndex,
|
|
117
|
+
rowIndex = _a.rowIndex,
|
|
118
|
+
fieldName = _a.fieldName,
|
|
119
|
+
_d = _a.clickable,
|
|
120
|
+
clickable = _d === void 0 ? false : _d,
|
|
121
|
+
_e = _a.ellipsizeMode,
|
|
122
|
+
ellipsizeMode = _e === void 0 ? "tail" : _e,
|
|
123
|
+
_f = _a.numberOfLines,
|
|
124
|
+
numberOfLines = _f === void 0 ? 1 : _f,
|
|
125
|
+
textStyle = _a.textStyle,
|
|
126
|
+
_g = _a.padding,
|
|
127
|
+
padding = _g === void 0 ? {
|
|
128
|
+
horizontal: 16,
|
|
129
|
+
vertical: 8
|
|
130
|
+
} : _g,
|
|
131
|
+
_h = _a.statusConfig,
|
|
132
|
+
statusConfig = _h === void 0 ? {} : _h,
|
|
133
|
+
_j = _a.actions,
|
|
134
|
+
actions = _j === void 0 ? [] : _j,
|
|
135
|
+
_k = _a.showActions,
|
|
136
|
+
showActions = _k === void 0 ? false : _k,
|
|
137
|
+
_l = _a.actionIcon,
|
|
138
|
+
actionIcon = _l === void 0 ? "more_vert" : _l,
|
|
139
|
+
formatter = _a.formatter,
|
|
140
|
+
_m = _a.currencySymbol,
|
|
141
|
+
currencySymbol = _m === void 0 ? "$" : _m,
|
|
142
|
+
_o = _a.currencyPrecision,
|
|
143
|
+
currencyPrecision = _o === void 0 ? 2 : _o,
|
|
144
|
+
_p = _a.dateFormat,
|
|
145
|
+
dateFormat = _p === void 0 ? "YYYY-MM-DD" : _p,
|
|
146
|
+
_q = _a.booleanTrueText,
|
|
147
|
+
booleanTrueText = _q === void 0 ? "Yes" : _q,
|
|
148
|
+
_r = _a.booleanFalseText,
|
|
149
|
+
booleanFalseText = _r === void 0 ? "No" : _r,
|
|
150
|
+
_s = _a.emptyText,
|
|
151
|
+
emptyText = _s === void 0 ? "-" : _s,
|
|
152
|
+
onCellPress = _a.onCellPress,
|
|
153
|
+
onActionPress = _a.onActionPress,
|
|
154
|
+
attachMoreAction = _a.attachMoreAction,
|
|
155
|
+
onLongPress = _a.onLongPress,
|
|
156
|
+
_t = _a.disabled,
|
|
157
|
+
disabled = _t === void 0 ? false : _t,
|
|
158
|
+
_u = _a.minHeight,
|
|
159
|
+
minHeight = _u === void 0 ? 40 : _u,
|
|
160
|
+
_v = _a.isBlank,
|
|
161
|
+
isBlank = _v === void 0 ? false : _v,
|
|
162
|
+
onDropdownStateChange = _a.onDropdownStateChange,
|
|
163
|
+
gridInfo = _a.gridInfo,
|
|
164
|
+
style = _a.style,
|
|
165
|
+
otherProps = __rest(_a, ["value", "dataType", "alignment", "columnIndex", "rowIndex", "fieldName", "clickable", "ellipsizeMode", "numberOfLines", "textStyle", "padding", "statusConfig", "actions", "showActions", "actionIcon", "formatter", "currencySymbol", "currencyPrecision", "dateFormat", "booleanTrueText", "booleanFalseText", "emptyText", "onCellPress", "onActionPress", "attachMoreAction", "onLongPress", "disabled", "minHeight", "isBlank", "onDropdownStateChange", "gridInfo", "style"]);
|
|
166
|
+
var styles = useStyles({
|
|
167
|
+
alignment: alignment,
|
|
168
|
+
padding: padding,
|
|
169
|
+
minHeight: minHeight,
|
|
170
|
+
disabled: disabled,
|
|
84
171
|
clickable: clickable || !!onCellPress
|
|
85
172
|
});
|
|
86
|
-
|
|
87
173
|
// 格式化显示值
|
|
88
|
-
|
|
174
|
+
var formattedValue = (0, react_1.useMemo)(function () {
|
|
89
175
|
if (isBlank || value === null || value === undefined) {
|
|
90
176
|
return emptyText;
|
|
91
177
|
}
|
|
92
|
-
|
|
93
178
|
// 使用自定义格式化函数
|
|
94
179
|
if (formatter) {
|
|
95
180
|
return formatter(value, dataType);
|
|
96
181
|
}
|
|
97
|
-
|
|
98
182
|
// 内置格式化逻辑
|
|
99
183
|
switch (dataType) {
|
|
100
184
|
case "number":
|
|
101
185
|
return typeof value === "number" ? value.toLocaleString() : String(value);
|
|
102
186
|
case "currency":
|
|
103
187
|
{
|
|
104
|
-
|
|
188
|
+
var numValue = typeof value === "number" ? value : parseFloat(value);
|
|
105
189
|
if (isNaN(numValue)) return emptyText;
|
|
106
|
-
return
|
|
190
|
+
return "".concat(currencySymbol).concat(numValue.toFixed(currencyPrecision));
|
|
107
191
|
}
|
|
108
192
|
case "date":
|
|
109
193
|
{
|
|
110
194
|
if (!value) return emptyText;
|
|
111
|
-
|
|
195
|
+
var date = new Date(value);
|
|
112
196
|
if (isNaN(date.getTime())) return emptyText;
|
|
113
|
-
|
|
114
197
|
// 简单的日期格式化
|
|
115
198
|
if (dateFormat === "YYYY-MM-DD") {
|
|
116
199
|
return date.toISOString().split('T')[0];
|
|
117
200
|
} else if (dateFormat === "MM/DD/YYYY") {
|
|
118
|
-
return
|
|
201
|
+
return "".concat((date.getMonth() + 1).toString().padStart(2, '0'), "/").concat(date.getDate().toString().padStart(2, '0'), "/").concat(date.getFullYear());
|
|
119
202
|
} else {
|
|
120
203
|
return date.toLocaleDateString();
|
|
121
204
|
}
|
|
@@ -130,13 +213,12 @@ const TapasDataCell = ({
|
|
|
130
213
|
return String(value || emptyText);
|
|
131
214
|
}
|
|
132
215
|
}, [value, dataType, formatter, currencySymbol, currencyPrecision, dateFormat, booleanTrueText, booleanFalseText, emptyText, isBlank]);
|
|
133
|
-
|
|
134
216
|
// 获取状态样式
|
|
135
|
-
|
|
217
|
+
var getStatusStyle = (0, react_1.useCallback)(function () {
|
|
136
218
|
if (dataType !== "status" || !value || !statusConfig[value]) {
|
|
137
219
|
return {};
|
|
138
220
|
}
|
|
139
|
-
|
|
221
|
+
var config = statusConfig[value];
|
|
140
222
|
return {
|
|
141
223
|
color: config.color,
|
|
142
224
|
backgroundColor: config.backgroundColor,
|
|
@@ -148,69 +230,62 @@ const TapasDataCell = ({
|
|
|
148
230
|
overflow: "hidden"
|
|
149
231
|
};
|
|
150
232
|
}, [dataType, value, statusConfig]);
|
|
151
|
-
|
|
152
233
|
// 处理单元格点击
|
|
153
|
-
|
|
234
|
+
var handleCellPress = (0, react_1.useCallback)(function () {
|
|
154
235
|
if (disabled || isBlank) return;
|
|
155
|
-
onCellPress
|
|
236
|
+
onCellPress === null || onCellPress === void 0 ? void 0 : onCellPress(value, rowIndex, columnIndex, fieldName);
|
|
156
237
|
}, [disabled, isBlank, onCellPress, value, rowIndex, columnIndex, fieldName]);
|
|
157
|
-
|
|
158
238
|
// 处理长按
|
|
159
|
-
|
|
239
|
+
var handleLongPress = (0, react_1.useCallback)(function () {
|
|
160
240
|
if (disabled || isBlank) return;
|
|
161
|
-
onLongPress
|
|
241
|
+
onLongPress === null || onLongPress === void 0 ? void 0 : onLongPress(value, rowIndex, columnIndex, fieldName);
|
|
162
242
|
}, [disabled, isBlank, onLongPress, value, rowIndex, columnIndex, fieldName]);
|
|
163
|
-
|
|
164
243
|
// 处理操作按钮点击
|
|
165
|
-
|
|
244
|
+
var handleActionPress = (0, react_1.useCallback)(function (action) {
|
|
166
245
|
if (disabled || action.disabled) return;
|
|
167
|
-
onActionPress
|
|
246
|
+
onActionPress === null || onActionPress === void 0 ? void 0 : onActionPress(action, value, rowIndex, columnIndex);
|
|
168
247
|
}, [disabled, onActionPress, value, rowIndex, columnIndex]);
|
|
169
|
-
|
|
170
248
|
// 下拉菜单状态
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
249
|
+
var _w = (0, react_1.useState)(false),
|
|
250
|
+
dropdownVisible = _w[0],
|
|
251
|
+
setDropdownVisible = _w[1];
|
|
252
|
+
var _x = (0, react_1.useState)({
|
|
253
|
+
top: 32,
|
|
254
|
+
right: 0
|
|
255
|
+
}),
|
|
256
|
+
dropdownPosition = _x[0],
|
|
257
|
+
setDropdownPosition = _x[1];
|
|
177
258
|
// 计算下拉菜单的最佳位置
|
|
178
|
-
|
|
259
|
+
var calculateDropdownPosition = (0, react_1.useCallback)(function () {
|
|
179
260
|
// 更准确地计算下拉菜单的实际高度
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
261
|
+
var itemHeight = 32; // 每个选项的高度
|
|
262
|
+
var borderWidth = 2; // 边框宽度
|
|
263
|
+
var padding = 8; // 内边距
|
|
264
|
+
var shadowHeight = 4; // 阴影高度
|
|
185
265
|
// 考虑文本长度对高度的影响
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
266
|
+
var maxTextLength = Math.max.apply(Math, actions.map(function (action) {
|
|
267
|
+
return action.label.length;
|
|
268
|
+
}));
|
|
269
|
+
var textHeightAdjustment = maxTextLength > 10 ? 4 : 0; // 长文本可能需要更多高度
|
|
189
270
|
// 计算下拉菜单的宽度(考虑文本长度)
|
|
190
271
|
// const minWidth = 120; // 最小宽度
|
|
191
272
|
// const textWidth = maxTextLength * 8; // 估算文本宽度
|
|
192
273
|
// const _actualWidth = Math.max(minWidth, textWidth + 24); // 24px 为内边距和图标空间
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
const gridHeight = gridInfo?.gridHeight || 400; // 使用传入的 gridHeight 或默认值
|
|
198
|
-
|
|
274
|
+
var actualHeight = actions.length * itemHeight + borderWidth + padding + shadowHeight + textHeightAdjustment;
|
|
275
|
+
var buttonHeight = 32; // 按钮高度
|
|
276
|
+
var cellHeight = (gridInfo === null || gridInfo === void 0 ? void 0 : gridInfo.rowHeight) || 56; // 使用传入的 rowHeight 或默认值
|
|
277
|
+
var gridHeight = (gridInfo === null || gridInfo === void 0 ? void 0 : gridInfo.gridHeight) || 400; // 使用传入的 gridHeight 或默认值
|
|
199
278
|
// 根据行索引估算当前单元格在 Grid 中的位置
|
|
200
|
-
|
|
201
|
-
|
|
279
|
+
var currentRowIndex = rowIndex || 0;
|
|
202
280
|
// 计算当前单元格距离 Grid 底部的距离
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
281
|
+
var currentCellBottom = (currentRowIndex + 1) * cellHeight;
|
|
282
|
+
var spaceBelow = gridHeight - currentCellBottom;
|
|
206
283
|
// 计算上方可用空间
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
284
|
+
var currentCellTop = currentRowIndex * cellHeight;
|
|
285
|
+
var spaceAbove = currentCellTop;
|
|
210
286
|
// 添加安全边距,确保下拉菜单不会紧贴边界
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
287
|
+
var safetyMargin = 8;
|
|
288
|
+
var requiredSpace = actualHeight + safetyMargin;
|
|
214
289
|
// 智能选择显示位置
|
|
215
290
|
if (requiredSpace > spaceBelow && requiredSpace <= spaceAbove) {
|
|
216
291
|
// 下方空间不够,但上方空间足够,显示在上方
|
|
@@ -243,89 +318,79 @@ const TapasDataCell = ({
|
|
|
243
318
|
};
|
|
244
319
|
}
|
|
245
320
|
}, [actions.length, rowIndex, gridInfo]);
|
|
246
|
-
|
|
247
321
|
// 全局下拉菜单管理
|
|
248
|
-
useEffect(()
|
|
249
|
-
|
|
322
|
+
(0, react_1.useEffect)(function () {
|
|
323
|
+
var closeDropdown = function () {
|
|
250
324
|
setDropdownVisible(false);
|
|
251
325
|
unregisterDropdown();
|
|
252
326
|
};
|
|
253
|
-
|
|
254
327
|
// 注册当前下拉菜单
|
|
255
328
|
if (dropdownVisible) {
|
|
256
329
|
registerDropdown(columnIndex || 0, rowIndex || 0, closeDropdown);
|
|
257
330
|
} else {
|
|
258
331
|
unregisterDropdown();
|
|
259
332
|
}
|
|
260
|
-
|
|
261
333
|
// 清理函数
|
|
262
|
-
return ()
|
|
334
|
+
return function () {
|
|
263
335
|
unregisterDropdown();
|
|
264
336
|
};
|
|
265
337
|
}, [dropdownVisible, columnIndex, rowIndex]);
|
|
266
|
-
|
|
267
338
|
// 通知父组件下拉菜单状态变化
|
|
268
|
-
useEffect(()
|
|
269
|
-
onDropdownStateChange
|
|
339
|
+
(0, react_1.useEffect)(function () {
|
|
340
|
+
onDropdownStateChange === null || onDropdownStateChange === void 0 ? void 0 : onDropdownStateChange(dropdownVisible);
|
|
270
341
|
}, [dropdownVisible, onDropdownStateChange]);
|
|
271
|
-
|
|
272
342
|
// 监听全局关闭事件
|
|
273
|
-
useEffect(()
|
|
343
|
+
(0, react_1.useEffect)(function () {
|
|
274
344
|
// const _handleGlobalClose = () => {
|
|
275
345
|
// if (globalDropdownState.activeColumn !== columnIndex ||
|
|
276
346
|
// globalDropdownState.activeRow !== rowIndex) {
|
|
277
347
|
// setDropdownVisible(false);
|
|
278
348
|
// }
|
|
279
349
|
// };
|
|
280
|
-
|
|
281
350
|
// 这里可以添加全局事件监听器
|
|
282
351
|
// 为了简化,我们在点击其他单元格时关闭当前下拉菜单
|
|
283
352
|
}, [columnIndex, rowIndex]);
|
|
284
|
-
|
|
285
353
|
// 渲染操作按钮
|
|
286
|
-
|
|
354
|
+
var renderActions = function () {
|
|
287
355
|
if (!showActions || actions.length === 0 || isBlank) {
|
|
288
356
|
return null;
|
|
289
357
|
}
|
|
290
|
-
|
|
291
358
|
// 如果只有一个操作,直接显示图标按钮
|
|
292
359
|
if (actions.length === 1) {
|
|
293
|
-
|
|
294
|
-
if (!
|
|
295
|
-
|
|
360
|
+
var action_1 = actions[0];
|
|
361
|
+
if (!action_1) return null;
|
|
296
362
|
// 检查是否有文本内容,如果没有文本内容,按钮应该居中
|
|
297
|
-
|
|
298
|
-
|
|
363
|
+
var hasTextContent = formattedValue && formattedValue.trim() !== '';
|
|
364
|
+
var buttonStyle = hasTextContent ? [styles.actionButton, {
|
|
299
365
|
marginLeft: 8
|
|
300
366
|
}] : styles.actionButton;
|
|
301
|
-
return
|
|
367
|
+
return react_1.default.createElement(react_native_1.Pressable, {
|
|
302
368
|
style: buttonStyle,
|
|
303
|
-
onPress: event
|
|
369
|
+
onPress: function (event) {
|
|
304
370
|
// 阻止事件冒泡,避免触发外层的 attachCellPress
|
|
305
371
|
event.stopPropagation();
|
|
306
372
|
if (attachMoreAction) {
|
|
307
|
-
attachMoreAction(
|
|
373
|
+
attachMoreAction(action_1);
|
|
308
374
|
} else {
|
|
309
|
-
handleActionPress(
|
|
375
|
+
handleActionPress(action_1);
|
|
310
376
|
}
|
|
311
377
|
},
|
|
312
|
-
disabled: disabled ||
|
|
313
|
-
},
|
|
314
|
-
name:
|
|
378
|
+
disabled: disabled || action_1.disabled
|
|
379
|
+
}, react_1.default.createElement(TapasIcon_1.default, {
|
|
380
|
+
name: action_1.icon || actionIcon,
|
|
315
381
|
size: 16,
|
|
316
382
|
color: styles.actionIcon.color
|
|
317
383
|
}));
|
|
318
384
|
}
|
|
319
|
-
|
|
320
385
|
// 多个操作显示下拉菜单
|
|
321
|
-
return
|
|
386
|
+
return react_1.default.createElement(react_native_1.View, {
|
|
322
387
|
style: [styles.dropdownContainer, {
|
|
323
388
|
// 只有当前激活的下拉菜单容器才有高 z-index
|
|
324
389
|
zIndex: globalDropdownState.activeColumn === columnIndex && globalDropdownState.activeRow === rowIndex ? 2147483646 : 1
|
|
325
390
|
}]
|
|
326
|
-
},
|
|
391
|
+
}, react_1.default.createElement(react_native_1.Pressable, {
|
|
327
392
|
style: styles.actionButton,
|
|
328
|
-
onPress: event
|
|
393
|
+
onPress: function (event) {
|
|
329
394
|
// 阻止事件冒泡,避免触发外层的 attachCellPress
|
|
330
395
|
event.stopPropagation();
|
|
331
396
|
if (dropdownVisible) {
|
|
@@ -334,187 +399,35 @@ const TapasDataCell = ({
|
|
|
334
399
|
} else {
|
|
335
400
|
// 如果当前下拉菜单关闭,先关闭其他所有下拉菜单,然后打开当前菜单
|
|
336
401
|
closeAllDropdowns();
|
|
337
|
-
|
|
338
402
|
// 计算并设置下拉菜单位置
|
|
339
403
|
setDropdownPosition(calculateDropdownPosition());
|
|
340
|
-
|
|
341
404
|
// 延迟打开当前下拉菜单,确保其他菜单已关闭
|
|
342
|
-
setTimeout(()
|
|
405
|
+
setTimeout(function () {
|
|
343
406
|
setDropdownVisible(true);
|
|
344
407
|
}, 0);
|
|
345
408
|
}
|
|
346
409
|
},
|
|
347
410
|
disabled: disabled
|
|
348
|
-
},
|
|
411
|
+
}, react_1.default.createElement(TapasIcon_1.default, {
|
|
349
412
|
name: actionIcon,
|
|
350
413
|
size: 16,
|
|
351
414
|
color: styles.actionIcon.color
|
|
352
|
-
})), dropdownVisible &&
|
|
415
|
+
})), dropdownVisible && react_1.default.createElement(react_native_1.View, {
|
|
353
416
|
style: [styles.dropdownMenu, {
|
|
354
417
|
top: dropdownPosition.top,
|
|
355
418
|
right: dropdownPosition.right
|
|
356
419
|
}]
|
|
357
|
-
}, actions.map((action, index)
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
attachMoreAction
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
setDropdownVisible(false);
|
|
369
|
-
},
|
|
370
|
-
disabled: disabled || action.disabled
|
|
371
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
372
|
-
style: [styles.dropdownItemText, action.disabled && styles.dropdownItemDisabled]
|
|
373
|
-
}, action.label)))));
|
|
374
|
-
};
|
|
375
|
-
|
|
376
|
-
// 渲染内容
|
|
377
|
-
const renderContent = () => {
|
|
378
|
-
if (isBlank) {
|
|
379
|
-
return null;
|
|
380
|
-
}
|
|
381
|
-
const statusStyle = getStatusStyle();
|
|
382
|
-
const hasStatusStyle = Object.keys(statusStyle).length > 0;
|
|
383
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
384
|
-
style: styles.content
|
|
385
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
386
|
-
style: [styles.text, hasStatusStyle && statusStyle, textStyle],
|
|
387
|
-
numberOfLines: numberOfLines,
|
|
388
|
-
ellipsizeMode: ellipsizeMode
|
|
389
|
-
}, formattedValue), renderActions());
|
|
390
|
-
};
|
|
391
|
-
|
|
392
|
-
// 如果可点击,使用 Pressable
|
|
393
|
-
if (clickable || onCellPress || onLongPress) {
|
|
394
|
-
return /*#__PURE__*/React.createElement(Pressable, _extends({}, otherProps, {
|
|
395
|
-
style: [styles.container, style],
|
|
396
|
-
onPress: handleCellPress,
|
|
397
|
-
onLongPress: handleLongPress,
|
|
398
|
-
disabled: disabled
|
|
399
|
-
}), renderContent());
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
// 否则使用普通 View
|
|
403
|
-
return /*#__PURE__*/React.createElement(View, _extends({}, otherProps, {
|
|
404
|
-
style: [styles.container, style]
|
|
405
|
-
}), renderContent());
|
|
406
|
-
};
|
|
407
|
-
const useStyles = makeStyles((theme, props) => {
|
|
408
|
-
const alignment = props?.alignment || "left";
|
|
409
|
-
const paddingHorizontal = props?.padding?.horizontal || 16;
|
|
410
|
-
const paddingVertical = props?.padding?.vertical || 8;
|
|
411
|
-
const minHeight = props?.minHeight || 40;
|
|
412
|
-
const disabled = props?.disabled || false;
|
|
413
|
-
const clickable = props?.clickable || false;
|
|
414
|
-
const justifyContent = alignment === "left" ? "flex-start" : alignment === "right" ? "flex-end" : "center";
|
|
415
|
-
return {
|
|
416
|
-
container: {
|
|
417
|
-
minHeight,
|
|
418
|
-
paddingHorizontal,
|
|
419
|
-
paddingVertical,
|
|
420
|
-
backgroundColor: disabled ? theme?.colors?.grey5 || "#f8f9fa" : "transparent",
|
|
421
|
-
opacity: disabled ? 0.6 : 1,
|
|
422
|
-
borderBottomWidth: 0,
|
|
423
|
-
// 移除边框,让 Grid 处理边框
|
|
424
|
-
borderBottomColor: "transparent",
|
|
425
|
-
display: "flex",
|
|
426
|
-
flexDirection: "row",
|
|
427
|
-
alignItems: "center",
|
|
428
|
-
justifyContent: "space-between",
|
|
429
|
-
width: "100%",
|
|
430
|
-
height: "100%",
|
|
431
|
-
// 确保下拉菜单不被截断
|
|
432
|
-
overflow: "visible"
|
|
433
|
-
},
|
|
434
|
-
content: {
|
|
435
|
-
flex: 1,
|
|
436
|
-
flexDirection: "row",
|
|
437
|
-
alignItems: "center",
|
|
438
|
-
justifyContent: "space-between",
|
|
439
|
-
height: "100%",
|
|
440
|
-
minHeight
|
|
441
|
-
},
|
|
442
|
-
text: {
|
|
443
|
-
flex: 1,
|
|
444
|
-
fontSize: theme?.fonts?.sizeM || 14,
|
|
445
|
-
fontWeight: "400",
|
|
446
|
-
color: theme?.colors?.colorTextPrimary || theme?.colors?.grey1 || "#333",
|
|
447
|
-
textAlign: alignment,
|
|
448
|
-
alignSelf: justifyContent === "flex-start" ? "flex-start" : justifyContent === "flex-end" ? "flex-end" : "center"
|
|
449
|
-
},
|
|
450
|
-
actionButton: {
|
|
451
|
-
padding: 4,
|
|
452
|
-
borderRadius: 4,
|
|
453
|
-
backgroundColor: clickable ? "transparent" : theme?.colors?.grey5 || "#f8f9fa",
|
|
454
|
-
display: "flex",
|
|
455
|
-
alignItems: "center",
|
|
456
|
-
justifyContent: "center",
|
|
457
|
-
minWidth: 24,
|
|
458
|
-
minHeight: 24
|
|
459
|
-
},
|
|
460
|
-
actionIcon: {
|
|
461
|
-
color: theme?.colors?.grey2 || "#999"
|
|
462
|
-
},
|
|
463
|
-
dropdownContainer: {
|
|
464
|
-
position: "relative",
|
|
465
|
-
// 默认使用较低的 z-index,只有激活的下拉菜单容器才有高 z-index
|
|
466
|
-
zIndex: 1,
|
|
467
|
-
// 确保容器本身不会创建新的 stacking context
|
|
468
|
-
isolation: "auto"
|
|
469
|
-
},
|
|
470
|
-
dropdownMenu: {
|
|
471
|
-
position: "absolute",
|
|
472
|
-
// 使用绝对定位
|
|
473
|
-
backgroundColor: theme?.colors?.background || "#fff",
|
|
474
|
-
borderRadius: 4,
|
|
475
|
-
borderWidth: 1,
|
|
476
|
-
borderColor: theme?.colors?.grey4 || "#e0e0e0",
|
|
477
|
-
shadowColor: "#000",
|
|
478
|
-
shadowOffset: {
|
|
479
|
-
width: 0,
|
|
480
|
-
height: 2
|
|
481
|
-
},
|
|
482
|
-
shadowOpacity: 0.25,
|
|
483
|
-
shadowRadius: 3.84,
|
|
484
|
-
elevation: 5,
|
|
485
|
-
minWidth: 120,
|
|
486
|
-
zIndex: 2147483647,
|
|
487
|
-
// 更高的 z-index,确保显示在所有元素之上
|
|
488
|
-
// 确保下拉菜单不被父容器的 overflow 隐藏
|
|
489
|
-
overflow: "visible",
|
|
490
|
-
// 确保下拉菜单在正确的层级上
|
|
491
|
-
isolation: "isolate"
|
|
492
|
-
},
|
|
493
|
-
dropdownItem: {
|
|
494
|
-
paddingHorizontal: 12,
|
|
495
|
-
paddingVertical: 8,
|
|
496
|
-
borderBottomWidth: 1,
|
|
497
|
-
borderBottomColor: theme?.colors?.grey4 || "#e0e0e0"
|
|
498
|
-
},
|
|
499
|
-
dropdownItemLast: {
|
|
500
|
-
borderBottomWidth: 0
|
|
501
|
-
},
|
|
502
|
-
dropdownItemText: {
|
|
503
|
-
fontSize: 14,
|
|
504
|
-
color: theme?.colors?.colorTextPrimary || theme?.colors?.grey1 || "#333"
|
|
505
|
-
},
|
|
506
|
-
dropdownItemDisabled: {
|
|
507
|
-
color: theme?.colors?.grey3 || "#999",
|
|
508
|
-
opacity: 0.6
|
|
509
|
-
}
|
|
510
|
-
};
|
|
511
|
-
});
|
|
512
|
-
export default withTheme(TapasDataCell);
|
|
513
|
-
|
|
514
|
-
// Export aliases for compatibility
|
|
515
|
-
export const DataCell = withTheme(TapasDataCell);
|
|
516
|
-
export { TapasDataCell, setDropdownStateChangeListener };
|
|
517
|
-
//# sourceMappingURL=DataCell.js.mapPress(action);
|
|
420
|
+
}, actions.map(function (action, index) {
|
|
421
|
+
return react_1.default.createElement(react_native_1.Pressable, {
|
|
422
|
+
key: action.id,
|
|
423
|
+
style: [styles.dropdownItem, index === actions.length - 1 && styles.dropdownItemLast],
|
|
424
|
+
onPress: function (event) {
|
|
425
|
+
// 阻止事件冒泡,避免触发外层的 attachCellPress
|
|
426
|
+
event.stopPropagation();
|
|
427
|
+
if (attachMoreAction) {
|
|
428
|
+
attachMoreAction(action);
|
|
429
|
+
} else {
|
|
430
|
+
handleActionPress(action);
|
|
518
431
|
}
|
|
519
432
|
setDropdownVisible(false);
|
|
520
433
|
},
|