@easy-editor/setters 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +150 -150
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +151 -152
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +153 -154
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +5 -5
- package/dist/index.min.js.map +1 -1
- package/dist/lib/popover.d.ts +9 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -3,8 +3,74 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React$1 = require('react');
|
|
6
|
+
var reactDom = require('react-dom');
|
|
6
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Popover - 共享弹窗组件
|
|
11
|
+
* - 使用 Portal 渲染到 document.body,避免被父容器遮挡
|
|
12
|
+
* - 自动匹配触发器宽度
|
|
13
|
+
*/
|
|
14
|
+
const Popover = props => {
|
|
15
|
+
const {
|
|
16
|
+
open,
|
|
17
|
+
onClose,
|
|
18
|
+
trigger,
|
|
19
|
+
children,
|
|
20
|
+
width = 'trigger'
|
|
21
|
+
} = props;
|
|
22
|
+
const triggerRef = React$1.useRef(null);
|
|
23
|
+
const [position, setPosition] = React$1.useState({
|
|
24
|
+
top: 0,
|
|
25
|
+
left: 0
|
|
26
|
+
});
|
|
27
|
+
const [popoverWidth, setPopoverWidth] = React$1.useState(0);
|
|
28
|
+
|
|
29
|
+
// 计算弹窗位置
|
|
30
|
+
React$1.useEffect(() => {
|
|
31
|
+
if (open && triggerRef.current) {
|
|
32
|
+
const triggerRect = triggerRef.current.getBoundingClientRect();
|
|
33
|
+
const triggerWidth = triggerRect.width;
|
|
34
|
+
|
|
35
|
+
// 设置弹窗宽度
|
|
36
|
+
if (width === 'trigger') {
|
|
37
|
+
setPopoverWidth(triggerWidth);
|
|
38
|
+
}
|
|
39
|
+
setPosition({
|
|
40
|
+
top: triggerRect.bottom + 4,
|
|
41
|
+
left: triggerRect.left
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}, [open, width]);
|
|
45
|
+
|
|
46
|
+
// 点击外部关闭
|
|
47
|
+
React$1.useEffect(() => {
|
|
48
|
+
const handleClickOutside = event => {
|
|
49
|
+
const target = event.target;
|
|
50
|
+
const popoverEl = document.querySelector('.es-popover-portal');
|
|
51
|
+
if (popoverEl && !popoverEl.contains(target) && triggerRef.current && !triggerRef.current.contains(target)) {
|
|
52
|
+
onClose();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
if (open) {
|
|
56
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
57
|
+
return () => document.removeEventListener('mousedown', handleClickOutside);
|
|
58
|
+
}
|
|
59
|
+
}, [open, onClose]);
|
|
60
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
61
|
+
ref: triggerRef
|
|
62
|
+
}, trigger), open && /*#__PURE__*/reactDom.createPortal(/*#__PURE__*/React.createElement("div", {
|
|
63
|
+
className: "es-popover-portal",
|
|
64
|
+
style: {
|
|
65
|
+
position: 'fixed',
|
|
66
|
+
top: position.top,
|
|
67
|
+
left: position.left,
|
|
68
|
+
width: popoverWidth || 'auto',
|
|
69
|
+
zIndex: 1000
|
|
70
|
+
}
|
|
71
|
+
}, children), document.body));
|
|
72
|
+
};
|
|
73
|
+
|
|
8
74
|
function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
|
|
9
75
|
|
|
10
76
|
function cn(...inputs) {
|
|
@@ -3831,7 +3897,7 @@ var Sketch = /*#__PURE__*/React$1.forwardRef((props, ref) => {
|
|
|
3831
3897
|
});
|
|
3832
3898
|
Sketch.displayName = 'Sketch';
|
|
3833
3899
|
|
|
3834
|
-
var styles$i = {"trigger":"es-trigger-w-aUi","colorPreview":"es-colorPreview-SUgiJ","colorValue":"es-colorValue-cYdRP","popover":"es-popover-SfIUB"
|
|
3900
|
+
var styles$i = {"trigger":"es-trigger-w-aUi","colorPreview":"es-colorPreview-SUgiJ","colorValue":"es-colorValue-cYdRP","popover":"es-popover-SfIUB"};
|
|
3835
3901
|
|
|
3836
3902
|
const ColorSetter = props => {
|
|
3837
3903
|
const {
|
|
@@ -3841,40 +3907,25 @@ const ColorSetter = props => {
|
|
|
3841
3907
|
disableAlpha = false
|
|
3842
3908
|
} = props;
|
|
3843
3909
|
const [open, setOpen] = React$1.useState(false);
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3910
|
+
return /*#__PURE__*/React.createElement(Popover, {
|
|
3911
|
+
open: open,
|
|
3912
|
+
onClose: () => setOpen(false),
|
|
3913
|
+
trigger: /*#__PURE__*/React.createElement("button", {
|
|
3914
|
+
"aria-label": "Select color",
|
|
3915
|
+
className: styles$i.trigger,
|
|
3916
|
+
onClick: () => setOpen(true),
|
|
3917
|
+
type: "button"
|
|
3918
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
3919
|
+
"aria-label": "Current color",
|
|
3920
|
+
className: styles$i.colorPreview,
|
|
3921
|
+
style: {
|
|
3922
|
+
backgroundColor: value ?? initialValue
|
|
3849
3923
|
}
|
|
3850
|
-
}
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
}
|
|
3854
|
-
return () => {
|
|
3855
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
3856
|
-
};
|
|
3857
|
-
}, [open]);
|
|
3858
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3859
|
-
ref: containerRef,
|
|
3860
|
-
style: {
|
|
3861
|
-
position: 'relative'
|
|
3862
|
-
}
|
|
3863
|
-
}, /*#__PURE__*/React.createElement("button", {
|
|
3864
|
-
"aria-label": "Select color",
|
|
3865
|
-
className: styles$i.trigger,
|
|
3866
|
-
onClick: () => setOpen(!open),
|
|
3867
|
-
type: "button"
|
|
3924
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
3925
|
+
className: styles$i.colorValue
|
|
3926
|
+
}, value ?? initialValue))
|
|
3868
3927
|
}, /*#__PURE__*/React.createElement("div", {
|
|
3869
|
-
|
|
3870
|
-
className: styles$i.colorPreview,
|
|
3871
|
-
style: {
|
|
3872
|
-
backgroundColor: value ?? initialValue
|
|
3873
|
-
}
|
|
3874
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
3875
|
-
className: styles$i.colorValue
|
|
3876
|
-
}, value ?? initialValue)), /*#__PURE__*/React.createElement("div", {
|
|
3877
|
-
className: cn(styles$i.popover, !open && styles$i.popoverHidden)
|
|
3928
|
+
className: styles$i.popover
|
|
3878
3929
|
}, /*#__PURE__*/React.createElement(Sketch, {
|
|
3879
3930
|
color: value,
|
|
3880
3931
|
disableAlpha: disableAlpha,
|
|
@@ -3883,7 +3934,7 @@ const ColorSetter = props => {
|
|
|
3883
3934
|
})));
|
|
3884
3935
|
};
|
|
3885
3936
|
|
|
3886
|
-
var styles$h = {"
|
|
3937
|
+
var styles$h = {"trigger":"es-trigger-fTNvQ","triggerIcon":"es-triggerIcon-1mdQ0","triggerIconPrimary":"es-triggerIconPrimary-opifh","triggerIconMuted":"es-triggerIconMuted-CWgDl","triggerText":"es-triggerText-WeQRu","popoverContent":"es-popoverContent-6qE--","tabsList":"es-tabsList-liSeY","tabTrigger":"es-tabTrigger-6j7K-","tabTriggerActive":"es-tabTriggerActive-g6hcl","tabTriggerIcon":"es-tabTriggerIcon-dRSAp","tabContent":"es-tabContent--H166","tabContentActive":"es-tabContentActive-Fjdu5","section":"es-section-eDYxd","sectionLabel":"es-sectionLabel--LHE8","input":"es-input--OymK","inputMono":"es-inputMono-pCJz3","textarea":"es-textarea-iurkc","booleanButtons":"es-booleanButtons-0bM8P","booleanButton":"es-booleanButton-3fXcB","booleanButtonActive":"es-booleanButtonActive-zGWrZ","datasourceList":"es-datasourceList-VIRXb","datasourceButton":"es-datasourceButton-giz6D","datasourceButtonActive":"es-datasourceButtonActive-m5WPP","datasourceIcon":"es-datasourceIcon-q9Omt","emptyState":"es-emptyState-rI2si","hint":"es-hint-zfWLZ","preview":"es-preview-tUInw"};
|
|
3887
3938
|
|
|
3888
3939
|
const defaultValue$3 = {
|
|
3889
3940
|
type: 'static',
|
|
@@ -3901,20 +3952,6 @@ const DataBindingSetter = props => {
|
|
|
3901
3952
|
const currentValue = value ?? initialValue ?? defaultValue$3;
|
|
3902
3953
|
const [open, setOpen] = React$1.useState(false);
|
|
3903
3954
|
const [activeTab, setActiveTab] = React$1.useState(currentValue.type);
|
|
3904
|
-
const containerRef = React$1.useRef(null);
|
|
3905
|
-
React$1.useEffect(() => {
|
|
3906
|
-
const handleClickOutside = event => {
|
|
3907
|
-
if (containerRef.current && !containerRef.current.contains(event.target)) {
|
|
3908
|
-
setOpen(false);
|
|
3909
|
-
}
|
|
3910
|
-
};
|
|
3911
|
-
if (open) {
|
|
3912
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
3913
|
-
}
|
|
3914
|
-
return () => {
|
|
3915
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
3916
|
-
};
|
|
3917
|
-
}, [open]);
|
|
3918
3955
|
const updateBinding = React$1.useCallback(updates => {
|
|
3919
3956
|
onChange({
|
|
3920
3957
|
...currentValue,
|
|
@@ -4011,18 +4048,20 @@ const DataBindingSetter = props => {
|
|
|
4011
4048
|
text: '静态数据'
|
|
4012
4049
|
};
|
|
4013
4050
|
}, [currentValue, dataSources]);
|
|
4014
|
-
return /*#__PURE__*/React.createElement(
|
|
4015
|
-
|
|
4016
|
-
|
|
4017
|
-
|
|
4018
|
-
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4051
|
+
return /*#__PURE__*/React.createElement(Popover, {
|
|
4052
|
+
open: open,
|
|
4053
|
+
onClose: () => setOpen(false),
|
|
4054
|
+
width: 300,
|
|
4055
|
+
trigger: /*#__PURE__*/React.createElement("button", {
|
|
4056
|
+
"aria-label": "Data binding",
|
|
4057
|
+
className: styles$h.trigger,
|
|
4058
|
+
onClick: () => setOpen(true),
|
|
4059
|
+
type: "button"
|
|
4060
|
+
}, bindingStatus.icon, /*#__PURE__*/React.createElement("span", {
|
|
4061
|
+
className: styles$h.triggerText
|
|
4062
|
+
}, bindingStatus.text))
|
|
4063
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
4064
|
+
className: styles$h.popoverContent
|
|
4026
4065
|
}, /*#__PURE__*/React.createElement("div", {
|
|
4027
4066
|
className: styles$h.tabsList,
|
|
4028
4067
|
role: "tablist"
|
|
@@ -4084,7 +4123,7 @@ const DataBindingSetter = props => {
|
|
|
4084
4123
|
}, "\u7ED1\u5B9A\u540E\u53EF\u5728\u9884\u89C8\u6A21\u5F0F\u67E5\u770B\u6570\u636E")) : null))));
|
|
4085
4124
|
};
|
|
4086
4125
|
|
|
4087
|
-
var styles$g = {"
|
|
4126
|
+
var styles$g = {"trigger":"es-trigger-rmYLl","triggerIcon":"es-triggerIcon-ktlTS","triggerText":"es-triggerText-B63By","popoverContent":"es-popoverContent-IIcFY","header":"es-header-VoKF3","headerTitle":"es-headerTitle-vDZR8","headerCount":"es-headerCount-stTlN","mappingList":"es-mappingList-SLqhN","mappingItem":"es-mappingItem-xtRLl","mappingHeader":"es-mappingHeader-LwKiY","mappingTitle":"es-mappingTitle-IMhzw","mappingRequired":"es-mappingRequired-tP6L-","mappingType":"es-mappingType-nyqrh","mappingRow":"es-mappingRow-lFfhT","select":"es-select-R4pIl","input":"es-input--LohJ","arrowIcon":"es-arrowIcon-QqWMM","targetField":"es-targetField-gSvGk","transformRow":"es-transformRow-O6MAG","transformIcon":"es-transformIcon-beXzy","transformInput":"es-transformInput-SyN2q","clearButton":"es-clearButton-Pm-uP","helpText":"es-helpText-IHqjo"};
|
|
4088
4127
|
|
|
4089
4128
|
const defaultValue$2 = {
|
|
4090
4129
|
mappings: []
|
|
@@ -4099,20 +4138,6 @@ const DataMappingSetter = props => {
|
|
|
4099
4138
|
} = props;
|
|
4100
4139
|
const currentValue = value ?? initialValue ?? defaultValue$2;
|
|
4101
4140
|
const [open, setOpen] = React$1.useState(false);
|
|
4102
|
-
const containerRef = React$1.useRef(null);
|
|
4103
|
-
React$1.useEffect(() => {
|
|
4104
|
-
const handleClickOutside = event => {
|
|
4105
|
-
if (containerRef.current && !containerRef.current.contains(event.target)) {
|
|
4106
|
-
setOpen(false);
|
|
4107
|
-
}
|
|
4108
|
-
};
|
|
4109
|
-
if (open) {
|
|
4110
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
4111
|
-
}
|
|
4112
|
-
return () => {
|
|
4113
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
4114
|
-
};
|
|
4115
|
-
}, [open]);
|
|
4116
4141
|
|
|
4117
4142
|
// 获取字段的映射
|
|
4118
4143
|
const getMapping = React$1.useCallback(targetField => currentValue.mappings.find(m => m.targetField === targetField), [currentValue.mappings]);
|
|
@@ -4148,22 +4173,22 @@ const DataMappingSetter = props => {
|
|
|
4148
4173
|
|
|
4149
4174
|
// 统计已映射字段数
|
|
4150
4175
|
const mappedCount = currentValue.mappings.filter(m => m.sourceField).length;
|
|
4151
|
-
return /*#__PURE__*/React.createElement(
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4176
|
+
return /*#__PURE__*/React.createElement(Popover, {
|
|
4177
|
+
open: open,
|
|
4178
|
+
onClose: () => setOpen(false),
|
|
4179
|
+
width: 320,
|
|
4180
|
+
trigger: /*#__PURE__*/React.createElement("button", {
|
|
4181
|
+
"aria-label": "Data mapping",
|
|
4182
|
+
className: styles$g.trigger,
|
|
4183
|
+
onClick: () => setOpen(true),
|
|
4184
|
+
type: "button"
|
|
4185
|
+
}, /*#__PURE__*/React.createElement(Settings2, {
|
|
4186
|
+
className: styles$g.triggerIcon
|
|
4187
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
4188
|
+
className: styles$g.triggerText
|
|
4189
|
+
}, "\u5B57\u6BB5\u6620\u5C04 (", mappedCount, "/", targetFields.length, ")"))
|
|
4165
4190
|
}, /*#__PURE__*/React.createElement("div", {
|
|
4166
|
-
className: styles$g.
|
|
4191
|
+
className: styles$g.popoverContent
|
|
4167
4192
|
}, /*#__PURE__*/React.createElement("div", {
|
|
4168
4193
|
className: styles$g.header
|
|
4169
4194
|
}, /*#__PURE__*/React.createElement("span", {
|
|
@@ -4229,10 +4254,10 @@ const DataMappingSetter = props => {
|
|
|
4229
4254
|
}, "\u6E05\u9664\u6620\u5C04") : null);
|
|
4230
4255
|
})), /*#__PURE__*/React.createElement("div", {
|
|
4231
4256
|
className: styles$g.helpText
|
|
4232
|
-
}, /*#__PURE__*/React.createElement("p", null, "\u2022 \u6E90\u5B57\u6BB5: \u6570\u636E\u6E90\u4E2D\u7684\u5B57\u6BB5\u8DEF\u5F84"), /*#__PURE__*/React.createElement("p", null, "\u2022 \u8F6C\u6362\u8868\u8FBE\u5F0F: \u5982 value * 100, value.toFixed(2)"))))
|
|
4257
|
+
}, /*#__PURE__*/React.createElement("p", null, "\u2022 \u6E90\u5B57\u6BB5: \u6570\u636E\u6E90\u4E2D\u7684\u5B57\u6BB5\u8DEF\u5F84"), /*#__PURE__*/React.createElement("p", null, "\u2022 \u8F6C\u6362\u8868\u8FBE\u5F0F: \u5982 value * 100, value.toFixed(2)"))));
|
|
4233
4258
|
};
|
|
4234
4259
|
|
|
4235
|
-
var styles$f = {"
|
|
4260
|
+
var styles$f = {"trigger":"es-trigger-IjziC","triggerIcon":"es-triggerIcon-t21hp","triggerText":"es-triggerText-WQ-5H","popover":"es-popover-h2Vn-","searchWrapper":"es-searchWrapper-jUGP6","searchIcon":"es-searchIcon-Qu4Cl","searchInput":"es-searchInput-YUlsM","section":"es-section-mWvKy","sectionTitle":"es-sectionTitle-4m6ZV","iconGrid":"es-iconGrid-hvHqv","iconButton":"es-iconButton-3y2jO","iconButtonSelected":"es-iconButtonSelected-01Ozi","iconButtonIcon":"es-iconButtonIcon-ur-nS","emptyMessage":"es-emptyMessage-dWKQh"};
|
|
4236
4261
|
|
|
4237
4262
|
// 图标映射表
|
|
4238
4263
|
const iconMap = {
|
|
@@ -4355,20 +4380,6 @@ const IconSetter = props => {
|
|
|
4355
4380
|
const [open, setOpen] = React$1.useState(false);
|
|
4356
4381
|
const [searchQuery, setSearchQuery] = React$1.useState('');
|
|
4357
4382
|
const [recentIcons, setRecentIcons] = React$1.useState([]);
|
|
4358
|
-
const containerRef = React$1.useRef(null);
|
|
4359
|
-
React$1.useEffect(() => {
|
|
4360
|
-
const handleClickOutside = event => {
|
|
4361
|
-
if (containerRef.current && !containerRef.current.contains(event.target)) {
|
|
4362
|
-
setOpen(false);
|
|
4363
|
-
}
|
|
4364
|
-
};
|
|
4365
|
-
if (open) {
|
|
4366
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
4367
|
-
}
|
|
4368
|
-
return () => {
|
|
4369
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
4370
|
-
};
|
|
4371
|
-
}, [open]);
|
|
4372
4383
|
|
|
4373
4384
|
// 获取图标组件
|
|
4374
4385
|
const getIconComponent = React$1.useCallback(iconName => iconMap[iconName] || Circle, []);
|
|
@@ -4394,20 +4405,21 @@ const IconSetter = props => {
|
|
|
4394
4405
|
setOpen(false);
|
|
4395
4406
|
}, [onChange]);
|
|
4396
4407
|
const CurrentIcon = getIconComponent(currentValue.name);
|
|
4397
|
-
return /*#__PURE__*/React.createElement(
|
|
4398
|
-
|
|
4399
|
-
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
|
|
4408
|
-
|
|
4409
|
-
|
|
4410
|
-
|
|
4408
|
+
return /*#__PURE__*/React.createElement(Popover, {
|
|
4409
|
+
open: open,
|
|
4410
|
+
onClose: () => setOpen(false),
|
|
4411
|
+
trigger: /*#__PURE__*/React.createElement("button", {
|
|
4412
|
+
"aria-label": "Select icon",
|
|
4413
|
+
className: styles$f.trigger,
|
|
4414
|
+
onClick: () => setOpen(true),
|
|
4415
|
+
type: "button"
|
|
4416
|
+
}, /*#__PURE__*/React.createElement(CurrentIcon, {
|
|
4417
|
+
className: styles$f.triggerIcon
|
|
4418
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
4419
|
+
className: styles$f.triggerText
|
|
4420
|
+
}, currentValue.name))
|
|
4421
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
4422
|
+
className: styles$f.popover
|
|
4411
4423
|
}, /*#__PURE__*/React.createElement("div", {
|
|
4412
4424
|
className: styles$f.searchWrapper
|
|
4413
4425
|
}, /*#__PURE__*/React.createElement(Search, {
|
|
@@ -4735,7 +4747,7 @@ const SegmentedSetter = props => {
|
|
|
4735
4747
|
}, option.label)));
|
|
4736
4748
|
};
|
|
4737
4749
|
|
|
4738
|
-
var styles$8 = {"
|
|
4750
|
+
var styles$8 = {"trigger":"es-trigger-YRz9p","triggerValue":"es-triggerValue-k-g2-","placeholder":"es-placeholder-F8-XP","chevron":"es-chevron-UbZv-","chevronOpen":"es-chevronOpen-Yui-r","dropdown":"es-dropdown-l2sra","option":"es-option-cv-7C","optionSelected":"es-optionSelected-K4e5h","optionDisabled":"es-optionDisabled-72jrC"};
|
|
4739
4751
|
|
|
4740
4752
|
const SelectSetter = props => {
|
|
4741
4753
|
const {
|
|
@@ -4746,22 +4758,8 @@ const SelectSetter = props => {
|
|
|
4746
4758
|
onChange
|
|
4747
4759
|
} = props;
|
|
4748
4760
|
const [open, setOpen] = React$1.useState(false);
|
|
4749
|
-
const containerRef = React$1.useRef(null);
|
|
4750
4761
|
const currentValue = value ?? initialValue ?? '';
|
|
4751
4762
|
const selectedOption = options.find(opt => opt.value === currentValue);
|
|
4752
|
-
React$1.useEffect(() => {
|
|
4753
|
-
const handleClickOutside = event => {
|
|
4754
|
-
if (containerRef.current && !containerRef.current.contains(event.target)) {
|
|
4755
|
-
setOpen(false);
|
|
4756
|
-
}
|
|
4757
|
-
};
|
|
4758
|
-
if (open) {
|
|
4759
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
4760
|
-
}
|
|
4761
|
-
return () => {
|
|
4762
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
4763
|
-
};
|
|
4764
|
-
}, [open]);
|
|
4765
4763
|
const handleSelect = (optionValue, disabled) => {
|
|
4766
4764
|
if (disabled) {
|
|
4767
4765
|
return;
|
|
@@ -4769,21 +4767,22 @@ const SelectSetter = props => {
|
|
|
4769
4767
|
onChange(optionValue);
|
|
4770
4768
|
setOpen(false);
|
|
4771
4769
|
};
|
|
4772
|
-
return /*#__PURE__*/React.createElement(
|
|
4773
|
-
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
|
|
4782
|
-
|
|
4783
|
-
|
|
4784
|
-
|
|
4785
|
-
|
|
4786
|
-
|
|
4770
|
+
return /*#__PURE__*/React.createElement(Popover, {
|
|
4771
|
+
open: open,
|
|
4772
|
+
onClose: () => setOpen(false),
|
|
4773
|
+
trigger: /*#__PURE__*/React.createElement("button", {
|
|
4774
|
+
"aria-expanded": open,
|
|
4775
|
+
"aria-haspopup": "listbox",
|
|
4776
|
+
className: styles$8.trigger,
|
|
4777
|
+
onClick: () => setOpen(true),
|
|
4778
|
+
type: "button"
|
|
4779
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
4780
|
+
className: cn(styles$8.triggerValue, selectedOption ? '' : styles$8.placeholder)
|
|
4781
|
+
}, selectedOption?.label || placeholder || '请选择'), /*#__PURE__*/React.createElement(ChevronDown, {
|
|
4782
|
+
className: cn(styles$8.chevron, open ? styles$8.chevronOpen : '')
|
|
4783
|
+
}))
|
|
4784
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
4785
|
+
className: styles$8.dropdown,
|
|
4787
4786
|
role: "listbox"
|
|
4788
4787
|
}, options.map(option => /*#__PURE__*/React.createElement("button", {
|
|
4789
4788
|
"aria-selected": option.value === currentValue,
|
|
@@ -5298,6 +5297,7 @@ exports.JsonSetter = JsonSetter;
|
|
|
5298
5297
|
exports.NodeIdSetter = NodeIdSetter;
|
|
5299
5298
|
exports.NumberSetter = NumberSetter;
|
|
5300
5299
|
exports.ObjectSetter = ObjectSetter;
|
|
5300
|
+
exports.Popover = Popover;
|
|
5301
5301
|
exports.RectSetter = RectSetter;
|
|
5302
5302
|
exports.SegmentedSetter = SegmentedSetter;
|
|
5303
5303
|
exports.SelectSetter = SelectSetter;
|