@1money/component-ui 0.0.42-alpha.2 → 0.0.42-alpha.5
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/es/components/Select/Select.js +23 -84
- package/es/components/Select/SelectCustom.d.ts +6 -0
- package/es/components/Select/SelectCustom.js +223 -0
- package/es/components/Select/index.d.ts +1 -0
- package/es/components/Select/index.js +2 -1
- package/es/components/Select/interface.d.ts +80 -1
- package/es/components/Select/interface.js +1 -1
- package/es/components/Select/style/Select.css +1 -1
- package/es/components/Select/useSelectShell.d.ts +27 -0
- package/es/components/Select/useSelectShell.js +92 -0
- package/es/components/Tooltip/Tooltip.js +7 -3
- package/es/index.css +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/lib/components/Select/Select.js +22 -83
- package/lib/components/Select/SelectCustom.d.ts +6 -0
- package/lib/components/Select/SelectCustom.js +233 -0
- package/lib/components/Select/index.d.ts +1 -0
- package/lib/components/Select/index.js +11 -2
- package/lib/components/Select/interface.d.ts +80 -1
- package/lib/components/Select/interface.js +1 -1
- package/lib/components/Select/style/Select.css +1 -1
- package/lib/components/Select/useSelectShell.d.ts +27 -0
- package/lib/components/Select/useSelectShell.js +100 -0
- package/lib/components/Tooltip/Tooltip.js +7 -3
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +7 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +18 -0
- package/scripts/mcp-server/index.generated.json +232 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.SelectCustom = void 0;
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
var _react = require("@floating-ui/react");
|
|
11
|
+
var _react2 = require("react");
|
|
12
|
+
var _hooks = require("@1money/hooks");
|
|
13
|
+
var _Icons = require("../Icons");
|
|
14
|
+
var _Spinner = require("../Spinner");
|
|
15
|
+
var _classnames = _interopRequireWildcard(require("../../utils/classnames"));
|
|
16
|
+
var _SelectFieldShell = _interopRequireDefault(require("./SelectFieldShell"));
|
|
17
|
+
var _useSelectShell2 = require("./useSelectShell");
|
|
18
|
+
var _utils = require("./utils");
|
|
19
|
+
require("./style");
|
|
20
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
21
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
22
|
+
var DEFAULT_MAX_HEIGHT = 320;
|
|
23
|
+
var isRenderableTemplate = function isRenderableTemplate(value) {
|
|
24
|
+
return value !== null && value !== undefined && value !== false;
|
|
25
|
+
};
|
|
26
|
+
var SelectCustom = exports.SelectCustom = function SelectCustom(props) {
|
|
27
|
+
var _props$className = props.className,
|
|
28
|
+
className = _props$className === void 0 ? '' : _props$className,
|
|
29
|
+
_props$prefixCls = props.prefixCls,
|
|
30
|
+
prefixCls = _props$prefixCls === void 0 ? 'select' : _props$prefixCls,
|
|
31
|
+
style = props.style,
|
|
32
|
+
id = props.id,
|
|
33
|
+
name = props.name,
|
|
34
|
+
ariaLabel = props['aria-label'],
|
|
35
|
+
ariaLabelledBy = props['aria-labelledby'],
|
|
36
|
+
_props$size = props.size,
|
|
37
|
+
size = _props$size === void 0 ? 'large' : _props$size,
|
|
38
|
+
_props$status = props.status,
|
|
39
|
+
status = _props$status === void 0 ? 'default' : _props$status,
|
|
40
|
+
_props$variant = props.variant,
|
|
41
|
+
variant = _props$variant === void 0 ? 'fill' : _props$variant,
|
|
42
|
+
_props$disabled = props.disabled,
|
|
43
|
+
disabledProp = _props$disabled === void 0 ? false : _props$disabled,
|
|
44
|
+
_props$loading = props.loading,
|
|
45
|
+
loading = _props$loading === void 0 ? false : _props$loading,
|
|
46
|
+
label = props.label,
|
|
47
|
+
info = props.info,
|
|
48
|
+
description = props.description,
|
|
49
|
+
feedback = props.feedback,
|
|
50
|
+
_props$required = props.required,
|
|
51
|
+
required = _props$required === void 0 ? false : _props$required,
|
|
52
|
+
prefix = props.prefix,
|
|
53
|
+
_props$placeholder = props.placeholder,
|
|
54
|
+
placeholder = _props$placeholder === void 0 ? 'Value' : _props$placeholder,
|
|
55
|
+
selectedTemplate = props.selectedTemplate,
|
|
56
|
+
_props$arrow = props.arrow,
|
|
57
|
+
arrow = _props$arrow === void 0 ? true : _props$arrow,
|
|
58
|
+
open = props.open,
|
|
59
|
+
_props$defaultOpen = props.defaultOpen,
|
|
60
|
+
defaultOpen = _props$defaultOpen === void 0 ? false : _props$defaultOpen,
|
|
61
|
+
_props$portal = props.portal,
|
|
62
|
+
portal = _props$portal === void 0 ? true : _props$portal,
|
|
63
|
+
panelClassName = props.panelClassName,
|
|
64
|
+
panelFooter = props.panelFooter,
|
|
65
|
+
_props$listMaxHeight = props.listMaxHeight,
|
|
66
|
+
listMaxHeight = _props$listMaxHeight === void 0 ? DEFAULT_MAX_HEIGHT : _props$listMaxHeight,
|
|
67
|
+
placement = props.placement,
|
|
68
|
+
panelWidth = props.panelWidth,
|
|
69
|
+
_props$role = props.role,
|
|
70
|
+
roleProp = _props$role === void 0 ? 'dialog' : _props$role,
|
|
71
|
+
animation = props.animation,
|
|
72
|
+
onOpenChange = props.onOpenChange,
|
|
73
|
+
onBlur = props.onBlur,
|
|
74
|
+
children = props.children,
|
|
75
|
+
ref = props.ref;
|
|
76
|
+
var disabled = disabledProp || loading;
|
|
77
|
+
var classes = (0, _classnames["default"])(prefixCls);
|
|
78
|
+
var autoId = (0, _react2.useId)();
|
|
79
|
+
var triggerId = id !== null && id !== void 0 ? id : autoId;
|
|
80
|
+
var labelId = (0, _react2.useId)();
|
|
81
|
+
var descriptionId = (0, _react2.useId)();
|
|
82
|
+
var feedbackId = (0, _react2.useId)();
|
|
83
|
+
var normalizedSize = (0, _utils.normalizeSize)(size);
|
|
84
|
+
var floatingRef = (0, _react2.useRef)(null);
|
|
85
|
+
var triggerRef = (0, _react2.useRef)(null);
|
|
86
|
+
var handleTriggerRef = (0, _hooks.useEventCallback)(function (node) {
|
|
87
|
+
triggerRef.current = node;
|
|
88
|
+
if (ref) {
|
|
89
|
+
ref.current = node;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
var _useSelectShell = (0, _useSelectShell2.useSelectShell)({
|
|
93
|
+
open: open,
|
|
94
|
+
defaultOpen: defaultOpen,
|
|
95
|
+
onOpenChange: onOpenChange,
|
|
96
|
+
disabled: disabled,
|
|
97
|
+
placement: placement,
|
|
98
|
+
panelWidth: panelWidth,
|
|
99
|
+
listMaxHeight: listMaxHeight,
|
|
100
|
+
animation: animation,
|
|
101
|
+
role: roleProp
|
|
102
|
+
}),
|
|
103
|
+
isOpen = _useSelectShell.isOpen,
|
|
104
|
+
setOpen = _useSelectShell.setOpen,
|
|
105
|
+
refs = _useSelectShell.refs,
|
|
106
|
+
context = _useSelectShell.context,
|
|
107
|
+
floatingStyles = _useSelectShell.floatingStyles,
|
|
108
|
+
transitionStyles = _useSelectShell.transitionStyles,
|
|
109
|
+
isMounted = _useSelectShell.isMounted,
|
|
110
|
+
baseInteractions = _useSelectShell.baseInteractions;
|
|
111
|
+
var setReference = (0, _hooks.useEventCallback)(function (node) {
|
|
112
|
+
refs.setReference(node);
|
|
113
|
+
handleTriggerRef(node);
|
|
114
|
+
});
|
|
115
|
+
var setFloating = (0, _hooks.useEventCallback)(function (node) {
|
|
116
|
+
refs.setFloating(node);
|
|
117
|
+
floatingRef.current = node;
|
|
118
|
+
});
|
|
119
|
+
var _useInteractions = (0, _react.useInteractions)(baseInteractions),
|
|
120
|
+
getReferenceProps = _useInteractions.getReferenceProps,
|
|
121
|
+
getFloatingProps = _useInteractions.getFloatingProps;
|
|
122
|
+
var notifyBlurIfOutside = (0, _hooks.useEventCallback)(function (relatedTarget, event) {
|
|
123
|
+
var _a, _b;
|
|
124
|
+
var nextTarget = relatedTarget;
|
|
125
|
+
var withinTrigger = !!(nextTarget && ((_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.contains(nextTarget)));
|
|
126
|
+
var withinFloating = !!(nextTarget && ((_b = floatingRef.current) === null || _b === void 0 ? void 0 : _b.contains(nextTarget)));
|
|
127
|
+
if (!withinTrigger && !withinFloating) {
|
|
128
|
+
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
var handleTriggerBlur = (0, _hooks.useEventCallback)(function (event) {
|
|
132
|
+
notifyBlurIfOutside(event.relatedTarget, event);
|
|
133
|
+
});
|
|
134
|
+
var close = (0, _hooks.useEventCallback)(function () {
|
|
135
|
+
var _a;
|
|
136
|
+
setOpen(false);
|
|
137
|
+
(_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus({
|
|
138
|
+
preventScroll: true
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
var triggerContent = typeof selectedTemplate === 'function' ? selectedTemplate({
|
|
142
|
+
open: isOpen,
|
|
143
|
+
disabled: disabled
|
|
144
|
+
}) : selectedTemplate;
|
|
145
|
+
var hasSelection = isRenderableTemplate(triggerContent);
|
|
146
|
+
var valueLabelClass = hasSelection ? 'value' : 'placeholder';
|
|
147
|
+
var triggerClassName = classes('trigger', (0, _classnames.joinCls)(classes("trigger-".concat(normalizedSize)), classes("trigger-".concat(variant)), isOpen && classes('trigger-open'), hasSelection ? classes('trigger-filled') : classes('trigger-placeholder'), status !== 'default' && classes("trigger-".concat(status)), disabled && classes('trigger-disabled')));
|
|
148
|
+
var iconSize = normalizedSize === 'small' ? 16 : 20;
|
|
149
|
+
var floatingAriaLabelledBy = ariaLabelledBy !== null && ariaLabelledBy !== void 0 ? ariaLabelledBy : label ? labelId : undefined;
|
|
150
|
+
var describedByIds = [description ? descriptionId : null, feedback ? feedbackId : null].filter(Boolean).join(' ') || undefined;
|
|
151
|
+
var panelCtx = {
|
|
152
|
+
close: close,
|
|
153
|
+
open: isOpen
|
|
154
|
+
};
|
|
155
|
+
var panelBody = typeof children === 'function' ? children(panelCtx) : children;
|
|
156
|
+
return (0, _jsxRuntime.jsxs)(_SelectFieldShell["default"], {
|
|
157
|
+
classes: classes,
|
|
158
|
+
className: className,
|
|
159
|
+
size: normalizedSize,
|
|
160
|
+
variant: variant,
|
|
161
|
+
status: status,
|
|
162
|
+
disabled: disabled,
|
|
163
|
+
loading: loading,
|
|
164
|
+
label: label,
|
|
165
|
+
info: info,
|
|
166
|
+
description: description,
|
|
167
|
+
feedback: feedback,
|
|
168
|
+
required: required,
|
|
169
|
+
labelId: labelId,
|
|
170
|
+
descriptionId: descriptionId,
|
|
171
|
+
feedbackId: feedbackId,
|
|
172
|
+
children: [(0, _jsxRuntime.jsxs)("button", Object.assign({}, getReferenceProps({
|
|
173
|
+
ref: setReference,
|
|
174
|
+
id: triggerId,
|
|
175
|
+
type: 'button',
|
|
176
|
+
name: name,
|
|
177
|
+
disabled: disabled,
|
|
178
|
+
style: style,
|
|
179
|
+
className: triggerClassName,
|
|
180
|
+
onBlur: handleTriggerBlur,
|
|
181
|
+
'aria-label': ariaLabel,
|
|
182
|
+
'aria-labelledby': floatingAriaLabelledBy,
|
|
183
|
+
'aria-describedby': describedByIds
|
|
184
|
+
}), {
|
|
185
|
+
children: [(0, _jsxRuntime.jsxs)("span", {
|
|
186
|
+
className: classes('content'),
|
|
187
|
+
children: [prefix && (0, _jsxRuntime.jsx)("span", {
|
|
188
|
+
className: classes('prefix'),
|
|
189
|
+
children: prefix
|
|
190
|
+
}), (0, _jsxRuntime.jsx)("span", {
|
|
191
|
+
className: classes(valueLabelClass, (0, _classnames.joinCls)(classes("".concat(valueLabelClass, "-").concat(normalizedSize)), disabled && classes("".concat(valueLabelClass, "-disabled")))),
|
|
192
|
+
children: hasSelection ? triggerContent : placeholder
|
|
193
|
+
})]
|
|
194
|
+
}), arrow && (0, _jsxRuntime.jsx)("span", {
|
|
195
|
+
className: classes('icon'),
|
|
196
|
+
children: loading ? (0, _jsxRuntime.jsx)(_Spinner.Spinner, {
|
|
197
|
+
size: iconSize,
|
|
198
|
+
strokeWidth: 2
|
|
199
|
+
}) : (0, _jsxRuntime.jsx)(_Icons.Icons, {
|
|
200
|
+
name: isOpen ? 'chevronUp' : 'chevronDown',
|
|
201
|
+
size: iconSize,
|
|
202
|
+
color: "currentColor"
|
|
203
|
+
})
|
|
204
|
+
})]
|
|
205
|
+
})), isMounted && !disabled && function () {
|
|
206
|
+
var panelNode = (0, _jsxRuntime.jsx)(_react.FloatingFocusManager, {
|
|
207
|
+
context: context,
|
|
208
|
+
modal: false,
|
|
209
|
+
initialFocus: -1,
|
|
210
|
+
returnFocus: false,
|
|
211
|
+
children: (0, _jsxRuntime.jsxs)("div", Object.assign({}, getFloatingProps({
|
|
212
|
+
ref: setFloating,
|
|
213
|
+
className: (0, _classnames.joinCls)(classes('panel'), panelClassName),
|
|
214
|
+
style: Object.assign(Object.assign({}, floatingStyles), transitionStyles)
|
|
215
|
+
}), {
|
|
216
|
+
children: [(0, _jsxRuntime.jsx)("div", {
|
|
217
|
+
className: classes('panel-body'),
|
|
218
|
+
children: panelBody
|
|
219
|
+
}), panelFooter != null && (0, _jsxRuntime.jsx)("div", {
|
|
220
|
+
className: classes('panel-footer'),
|
|
221
|
+
children: panelFooter
|
|
222
|
+
})]
|
|
223
|
+
}))
|
|
224
|
+
});
|
|
225
|
+
return portal ? (0, _jsxRuntime.jsx)(_react.FloatingPortal, {
|
|
226
|
+
children: panelNode
|
|
227
|
+
}) : panelNode;
|
|
228
|
+
}()]
|
|
229
|
+
});
|
|
230
|
+
};
|
|
231
|
+
SelectCustom.displayName = 'SelectCustom';
|
|
232
|
+
var _default = exports["default"] = /*#__PURE__*/(0, _react2.memo)(SelectCustom);
|
|
233
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEN1c3RvbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEN1c3RvbS50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9TcGlubmVyIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9TZWxlY3RGaWVsZFNoZWxsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91c2VTZWxlY3RTaGVsbDIiLCJfdXRpbHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJERUZBVUxUX01BWF9IRUlHSFQiLCJpc1JlbmRlcmFibGVUZW1wbGF0ZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiU2VsZWN0Q3VzdG9tIiwiZXhwb3J0cyIsInByb3BzIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJzdHlsZSIsImlkIiwibmFtZSIsImFyaWFMYWJlbCIsImFyaWFMYWJlbGxlZEJ5IiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJHN0YXR1cyIsInN0YXR1cyIsIl9wcm9wcyR2YXJpYW50IiwidmFyaWFudCIsIl9wcm9wcyRkaXNhYmxlZCIsImRpc2FibGVkIiwiZGlzYWJsZWRQcm9wIiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwibGFiZWwiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJzZWxlY3RlZFRlbXBsYXRlIiwiX3Byb3BzJGFycm93IiwiYXJyb3ciLCJvcGVuIiwiX3Byb3BzJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJfcHJvcHMkcG9ydGFsIiwicG9ydGFsIiwicGFuZWxDbGFzc05hbWUiLCJwYW5lbEZvb3RlciIsIl9wcm9wcyRsaXN0TWF4SGVpZ2h0IiwibGlzdE1heEhlaWdodCIsInBsYWNlbWVudCIsInBhbmVsV2lkdGgiLCJfcHJvcHMkcm9sZSIsInJvbGUiLCJyb2xlUHJvcCIsImFuaW1hdGlvbiIsIm9uT3BlbkNoYW5nZSIsIm9uQmx1ciIsImNoaWxkcmVuIiwicmVmIiwiY2xhc3NlcyIsInJvb3RDbGFzc25hbWVzIiwiYXV0b0lkIiwidXNlSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJub3JtYWxpemVkU2l6ZSIsIm5vcm1hbGl6ZVNpemUiLCJmbG9hdGluZ1JlZiIsInVzZVJlZiIsInRyaWdnZXJSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwidXNlRXZlbnRDYWxsYmFjayIsIm5vZGUiLCJjdXJyZW50IiwiX3VzZVNlbGVjdFNoZWxsIiwidXNlU2VsZWN0U2hlbGwiLCJpc09wZW4iLCJzZXRPcGVuIiwicmVmcyIsImNvbnRleHQiLCJmbG9hdGluZ1N0eWxlcyIsInRyYW5zaXRpb25TdHlsZXMiLCJpc01vdW50ZWQiLCJiYXNlSW50ZXJhY3Rpb25zIiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwibm90aWZ5Qmx1cklmT3V0c2lkZSIsInJlbGF0ZWRUYXJnZXQiLCJldmVudCIsIl9hIiwiX2IiLCJuZXh0VGFyZ2V0Iiwid2l0aGluVHJpZ2dlciIsImNvbnRhaW5zIiwid2l0aGluRmxvYXRpbmciLCJoYW5kbGVUcmlnZ2VyQmx1ciIsImNsb3NlIiwiZm9jdXMiLCJwcmV2ZW50U2Nyb2xsIiwidHJpZ2dlckNvbnRlbnQiLCJoYXNTZWxlY3Rpb24iLCJ2YWx1ZUxhYmVsQ2xhc3MiLCJ0cmlnZ2VyQ2xhc3NOYW1lIiwiam9pbkNscyIsImNvbmNhdCIsImljb25TaXplIiwiZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSIsImRlc2NyaWJlZEJ5SWRzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJwYW5lbEN0eCIsInBhbmVsQm9keSIsIl9qc3hzIiwiU2VsZWN0RmllbGRTaGVsbCIsImFzc2lnbiIsInR5cGUiLCJfanN4IiwiU3Bpbm5lciIsInN0cm9rZVdpZHRoIiwiSWNvbnMiLCJjb2xvciIsInBhbmVsTm9kZSIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwibW9kYWwiLCJpbml0aWFsRm9jdXMiLCJyZXR1cm5Gb2N1cyIsIkZsb2F0aW5nUG9ydGFsIiwiZGlzcGxheU5hbWUiLCJfZGVmYXVsdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBQyx1QkFBQSxDQUFBUCxPQUFBO0FBR0EsSUFBQVEsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQVQsT0FBQTtBQUNBLElBQUFVLGdCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxNQUFBLEdBQUFYLE9BQUE7QUFDQUEsT0FBQTtBQUFpQixTQUFBWSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3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LEVBQUEsS0FBQSxFQUFBO1lBQUtsSCxTQUFTLEVBQUVrRCxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUFGLFFBQUEsRUFBR1g7VUFBVyxDQUFBLENBQ3REO1FBQUEsQ0FBQSxDQUFBO01BQ0csQ0FBQSxDQUVUO01BRUQsT0FBT0YsTUFBTSxHQUFHLElBQUErRSxlQUFBLEVBQUNVLHFCQUFjLEVBQUE7UUFBQTVFLFFBQUEsRUFBRXVFO01BQVMsQ0FBQSxDQUFrQixHQUFHQSxTQUFTO0lBQzFFLENBQUMsQ0FBQyxDQUFFO0VBQUEsQ0FBQSxDQUNhO0FBRXZCLENBQUM7QUFFRDNILFlBQVksQ0FBQ2lJLFdBQVcsR0FBRyxjQUFjO0FBQUMsSUFBQUMsUUFBQSxHQUFBakksT0FBQSwyQkFFM0IsSUFBQWtJLFlBQUksRUFBQ25JLFlBQVksQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9TZWxlY3RDdXN0b20uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgRmxvYXRpbmdGb2N1c01hbmFnZXIsIEZsb2F0aW5nUG9ydGFsLCB1c2VJbnRlcmFjdGlvbnMgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IHsgbWVtbywgdXNlSWQsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uL1NwaW5uZXInO1xuaW1wb3J0IHsgam9pbkNscywgZGVmYXVsdCBhcyByb290Q2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IFNlbGVjdEZpZWxkU2hlbGwgZnJvbSAnLi9TZWxlY3RGaWVsZFNoZWxsJztcbmltcG9ydCB7IHVzZVNlbGVjdFNoZWxsIH0gZnJvbSAnLi91c2VTZWxlY3RTaGVsbCc7XG5pbXBvcnQgeyBub3JtYWxpemVTaXplIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgREVGQVVMVF9NQVhfSEVJR0hUID0gMzIwO1xuY29uc3QgaXNSZW5kZXJhYmxlVGVtcGxhdGUgPSAodmFsdWUpID0+IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IGZhbHNlO1xuZXhwb3J0IGNvbnN0IFNlbGVjdEN1c3RvbSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIHZhcmlhbnQgPSAnZmlsbCcsIGRpc2FibGVkOiBkaXNhYmxlZFByb3AgPSBmYWxzZSwgbG9hZGluZyA9IGZhbHNlLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBwcmVmaXgsIHBsYWNlaG9sZGVyID0gJ1ZhbHVlJywgc2VsZWN0ZWRUZW1wbGF0ZSwgYXJyb3cgPSB0cnVlLCBvcGVuLCBkZWZhdWx0T3BlbiA9IGZhbHNlLCBwb3J0YWwgPSB0cnVlLCBwYW5lbENsYXNzTmFtZSwgcGFuZWxGb290ZXIsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIHBsYWNlbWVudCwgcGFuZWxXaWR0aCwgcm9sZTogcm9sZVByb3AgPSAnZGlhbG9nJywgYW5pbWF0aW9uLCBvbk9wZW5DaGFuZ2UsIG9uQmx1ciwgY2hpbGRyZW4sIHJlZiwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpc2FibGVkID0gZGlzYWJsZWRQcm9wIHx8IGxvYWRpbmc7XG4gICAgY29uc3QgY2xhc3NlcyA9IHJvb3RDbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgYXV0b0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCB0cmlnZ2VySWQgPSBpZCAhPT0gbnVsbCAmJiBpZCAhPT0gdm9pZCAwID8gaWQgOiBhdXRvSWQ7XG4gICAgY29uc3QgbGFiZWxJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZGVzY3JpcHRpb25JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZmVlZGJhY2tJZCA9IHVzZUlkKCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNpemUgPSBub3JtYWxpemVTaXplKHNpemUpO1xuICAgIGNvbnN0IGZsb2F0aW5nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlclJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgeyBpc09wZW4sIHNldE9wZW4sIHJlZnMsIGNvbnRleHQsIGZsb2F0aW5nU3R5bGVzLCB0cmFuc2l0aW9uU3R5bGVzLCBpc01vdW50ZWQsIGJhc2VJbnRlcmFjdGlvbnMsIH0gPSB1c2VTZWxlY3RTaGVsbCh7XG4gICAgICAgIG9wZW4sXG4gICAgICAgIGRlZmF1bHRPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2UsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHBhbmVsV2lkdGgsXG4gICAgICAgIGxpc3RNYXhIZWlnaHQsXG4gICAgICAgIGFuaW1hdGlvbixcbiAgICAgICAgcm9sZTogcm9sZVByb3AsXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgaGFuZGxlVHJpZ2dlclJlZihub2RlKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGbG9hdGluZyA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRGbG9hdGluZyhub2RlKTtcbiAgICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcyB9ID0gdXNlSW50ZXJhY3Rpb25zKGJhc2VJbnRlcmFjdGlvbnMpO1xuICAgIGNvbnN0IG5vdGlmeUJsdXJJZk91dHNpZGUgPSB1c2VFdmVudENhbGxiYWNrKChyZWxhdGVkVGFyZ2V0LCBldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBuZXh0VGFyZ2V0ID0gcmVsYXRlZFRhcmdldDtcbiAgICAgICAgY29uc3Qgd2l0aGluVHJpZ2dlciA9ICEhKG5leHRUYXJnZXQgJiYgKChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbnRhaW5zKG5leHRUYXJnZXQpKSk7XG4gICAgICAgIGNvbnN0IHdpdGhpbkZsb2F0aW5nID0gISEobmV4dFRhcmdldCAmJiAoKF9iID0gZmxvYXRpbmdSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNvbnRhaW5zKG5leHRUYXJnZXQpKSk7XG4gICAgICAgIGlmICghd2l0aGluVHJpZ2dlciAmJiAhd2l0aGluRmxvYXRpbmcpIHtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihldmVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGNsb3NlID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgICAgIChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9KTtcbiAgICBjb25zdCB0cmlnZ2VyQ29udGVudCA9IHR5cGVvZiBzZWxlY3RlZFRlbXBsYXRlID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gc2VsZWN0ZWRUZW1wbGF0ZSh7IG9wZW46IGlzT3BlbiwgZGlzYWJsZWQgfSlcbiAgICAgICAgOiBzZWxlY3RlZFRlbXBsYXRlO1xuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IGlzUmVuZGVyYWJsZVRlbXBsYXRlKHRyaWdnZXJDb250ZW50KTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCB0cmlnZ2VyQ2xhc3NOYW1lID0gY2xhc3NlcygndHJpZ2dlcicsIGpvaW5DbHMoY2xhc3NlcyhgdHJpZ2dlci0ke25vcm1hbGl6ZWRTaXplfWApLCBjbGFzc2VzKGB0cmlnZ2VyLSR7dmFyaWFudH1gKSwgaXNPcGVuICYmIGNsYXNzZXMoJ3RyaWdnZXItb3BlbicpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnc21hbGwnID8gMTYgOiAyMDtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCwgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbF1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBwYW5lbEN0eCA9IHsgY2xvc2UsIG9wZW46IGlzT3BlbiB9O1xuICAgIGNvbnN0IHBhbmVsQm9keSA9IHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkcmVuKHBhbmVsQ3R4KSA6IGNoaWxkcmVuO1xuICAgIHJldHVybiAoX2pzeHMoU2VsZWN0RmllbGRTaGVsbCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc2l6ZTogbm9ybWFsaXplZFNpemUsIHZhcmlhbnQ6IHZhcmlhbnQsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIGxvYWRpbmc6IGxvYWRpbmcsIGxhYmVsOiBsYWJlbCwgaW5mbzogaW5mbywgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBmZWVkYmFjazogZmVlZGJhY2ssIHJlcXVpcmVkOiByZXF1aXJlZCwgbGFiZWxJZDogbGFiZWxJZCwgZGVzY3JpcHRpb25JZDogZGVzY3JpcHRpb25JZCwgZmVlZGJhY2tJZDogZmVlZGJhY2tJZCwgY2hpbGRyZW46IFtfanN4cyhcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRSZWZlcmVuY2VQcm9wcyh7XG4gICAgICAgICAgICAgICAgcmVmOiBzZXRSZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgaWQ6IHRyaWdnZXJJZCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHJpZ2dlckNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZVRyaWdnZXJCbHVyLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5LFxuICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogZGVzY3JpYmVkQnlJZHMsXG4gICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZhbHVlTGFiZWxDbGFzcywgam9pbkNscyhjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tJHtub3JtYWxpemVkU2l6ZX1gKSwgZGlzYWJsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LWRpc2FibGVkYCkpKSwgY2hpbGRyZW46IGhhc1NlbGVjdGlvbiA/IHRyaWdnZXJDb250ZW50IDogcGxhY2Vob2xkZXIgfSldIH0pLCBhcnJvdyAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2ljb24nKSwgY2hpbGRyZW46IGxvYWRpbmcgPyAoX2pzeChTcGlubmVyLCB7IHNpemU6IGljb25TaXplLCBzdHJva2VXaWR0aDogMiB9KSkgOiAoX2pzeChJY29ucywgeyBuYW1lOiBpc09wZW4gPyAnY2hldnJvblVwJyA6ICdjaGV2cm9uRG93bicsIHNpemU6IGljb25TaXplLCBjb2xvcjogXCJjdXJyZW50Q29sb3JcIiB9KSkgfSkpXSB9KSksIGlzTW91bnRlZCAmJiAhZGlzYWJsZWQgJiYgKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYW5lbE5vZGUgPSAoX2pzeChGbG9hdGluZ0ZvY3VzTWFuYWdlciwgeyBjb250ZXh0OiBjb250ZXh0LCBtb2RhbDogZmFsc2UsIGluaXRpYWxGb2N1czogLTEsIHJldHVybkZvY3VzOiBmYWxzZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEZsb2F0aW5nUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBzZXRGbG9hdGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdwYW5lbCcpLCBwYW5lbENsYXNzTmFtZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmbG9hdGluZ1N0eWxlcyksIHRyYW5zaXRpb25TdHlsZXMpLFxuICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWJvZHknKSwgY2hpbGRyZW46IHBhbmVsQm9keSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsTm9kZSB9KSA6IHBhbmVsTm9kZTtcbiAgICAgICAgICAgIH0pKCldIH0pKTtcbn07XG5TZWxlY3RDdXN0b20uZGlzcGxheU5hbWUgPSAnU2VsZWN0Q3VzdG9tJztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0Q3VzdG9tKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
var _exportNames = {
|
|
8
|
-
Select: true
|
|
9
|
+
Select: true,
|
|
10
|
+
SelectCustom: true
|
|
9
11
|
};
|
|
10
12
|
Object.defineProperty(exports, "Select", {
|
|
11
13
|
enumerable: true,
|
|
@@ -13,6 +15,12 @@ Object.defineProperty(exports, "Select", {
|
|
|
13
15
|
return _Select.Select;
|
|
14
16
|
}
|
|
15
17
|
});
|
|
18
|
+
Object.defineProperty(exports, "SelectCustom", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _SelectCustom["default"];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
16
24
|
Object.defineProperty(exports, "default", {
|
|
17
25
|
enumerable: true,
|
|
18
26
|
get: function get() {
|
|
@@ -20,6 +28,7 @@ Object.defineProperty(exports, "default", {
|
|
|
20
28
|
}
|
|
21
29
|
});
|
|
22
30
|
var _Select = _interopRequireWildcard(require("./Select"));
|
|
31
|
+
var _SelectCustom = _interopRequireDefault(require("./SelectCustom"));
|
|
23
32
|
var _interface = require("./interface");
|
|
24
33
|
Object.keys(_interface).forEach(function (key) {
|
|
25
34
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -46,4 +55,4 @@ Object.keys(_constants).forEach(function (key) {
|
|
|
46
55
|
});
|
|
47
56
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
48
57
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L2luZGV4LnRzIl0sIm5hbWVzIjpbIl9TZWxlY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfU2VsZWN0Q3VzdG9tIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9pbnRlcmZhY2UiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9leHBvcnROYW1lcyIsImV4cG9ydHMiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJfY29uc3RhbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwibiIsIl9fcHJvdG9fXyIsImEiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaSIsInNldCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxhQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFBQUksTUFBQSxDQUFBQyxJQUFBLENBQUFGLFVBQUEsRUFBQUcsT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBSixVQUFBLENBQUFJLEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsSUFBQTtNQUFBLE9BQUFaLFVBQUEsQ0FBQUksR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUNBLElBQUFTLFVBQUEsR0FBQWhCLE9BQUE7QUFBQUksTUFBQSxDQUFBQyxJQUFBLENBQUFXLFVBQUEsRUFBQVYsT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBUyxVQUFBLENBQUFULEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsSUFBQTtNQUFBLE9BQUFDLFVBQUEsQ0FBQVQsR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUE0QixTQUFBVSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQW5CLHdCQUFBbUIsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBTixHQUFBLENBQUFHLENBQUEsT0FBQU8sQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQXZCLE1BQUEsQ0FBQVMsY0FBQSxJQUFBVCxNQUFBLENBQUF3Qix3QkFBQSxXQUFBQyxDQUFBLElBQUFYLENBQUEsb0JBQUFXLENBQUEsT0FBQXBCLGNBQUEsQ0FBQUMsSUFBQSxDQUFBUSxDQUFBLEVBQUFXLENBQUEsU0FBQUMsQ0FBQSxHQUFBSCxDQUFBLEdBQUF2QixNQUFBLENBQUF3Qix3QkFBQSxDQUFBVixDQUFBLEVBQUFXLENBQUEsVUFBQUMsQ0FBQSxLQUFBQSxDQUFBLENBQUFmLEdBQUEsSUFBQWUsQ0FBQSxDQUFBQyxHQUFBLElBQUEzQixNQUFBLENBQUFTLGNBQUEsQ0FBQVksQ0FBQSxFQUFBSSxDQUFBLEVBQUFDLENBQUEsSUFBQUwsQ0FBQSxDQUFBSSxDQUFBLElBQUFYLENBQUEsQ0FBQVcsQ0FBQSxZQUFBSixDQUFBLGNBQUFQLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFVLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBTyxDQUFBLEdBQUFBLENBQUEiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
+
import type { Placement, UseRoleProps } from '@floating-ui/react';
|
|
1
2
|
import type { CSSProperties, FocusEvent, HTMLAttributes, ReactNode, RefObject } from 'react';
|
|
2
3
|
import type { FloatingAnimation } from "../../hooks/useFloatingAnimation";
|
|
4
|
+
export type SelectCustomRole = UseRoleProps['role'];
|
|
5
|
+
export interface SelectCustomTriggerContext {
|
|
6
|
+
open: boolean;
|
|
7
|
+
disabled: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface SelectCustomPanelContext {
|
|
10
|
+
close: () => void;
|
|
11
|
+
open: boolean;
|
|
12
|
+
}
|
|
3
13
|
export declare const SELECT_SIZES: readonly ["large", "small"];
|
|
4
14
|
export declare const SELECT_STATUSES: readonly ["default", "error", "warning", "success"];
|
|
5
15
|
export declare const SELECT_VARIANTS: readonly ["fill", "stroke", "frameless"];
|
|
@@ -76,7 +86,6 @@ export interface SelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defau
|
|
|
76
86
|
defaultOpen?: boolean;
|
|
77
87
|
portal?: boolean;
|
|
78
88
|
allowDeselect?: boolean;
|
|
79
|
-
clearable?: boolean;
|
|
80
89
|
panelClassName?: string;
|
|
81
90
|
optionClassName?: string;
|
|
82
91
|
listMaxHeight?: number;
|
|
@@ -93,3 +102,73 @@ export interface SelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defau
|
|
|
93
102
|
renderOption?: (option: SelectOption, meta: SelectRenderOptionMeta) => ReactNode;
|
|
94
103
|
renderValue?: (option: SelectOption | SelectOption[] | null, meta: SelectRenderValueMeta) => ReactNode;
|
|
95
104
|
}
|
|
105
|
+
export interface SelectCustomProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'onBlur' | 'prefix'> {
|
|
106
|
+
ref?: RefObject<HTMLButtonElement | null>;
|
|
107
|
+
className?: string;
|
|
108
|
+
prefixCls?: string;
|
|
109
|
+
style?: CSSProperties;
|
|
110
|
+
id?: string;
|
|
111
|
+
name?: string;
|
|
112
|
+
'aria-label'?: string;
|
|
113
|
+
'aria-labelledby'?: string;
|
|
114
|
+
size?: SelectSize | 'middle';
|
|
115
|
+
status?: SelectStatus;
|
|
116
|
+
variant?: SelectVariant;
|
|
117
|
+
disabled?: boolean;
|
|
118
|
+
loading?: boolean;
|
|
119
|
+
label?: ReactNode;
|
|
120
|
+
info?: ReactNode;
|
|
121
|
+
description?: ReactNode;
|
|
122
|
+
feedback?: ReactNode;
|
|
123
|
+
required?: boolean;
|
|
124
|
+
prefix?: ReactNode;
|
|
125
|
+
placeholder?: ReactNode;
|
|
126
|
+
/**
|
|
127
|
+
* Content rendered inside the trigger when something is "selected".
|
|
128
|
+
* Falsy values (`null` / `undefined` / `false`) fall back to `placeholder`.
|
|
129
|
+
* Pass a function to receive the current open/disabled state.
|
|
130
|
+
*/
|
|
131
|
+
selectedTemplate?: ReactNode | ((ctx: SelectCustomTriggerContext) => ReactNode);
|
|
132
|
+
/**
|
|
133
|
+
* Whether to render the chevron icon at the trailing end of the trigger.
|
|
134
|
+
* @default true
|
|
135
|
+
*/
|
|
136
|
+
arrow?: boolean;
|
|
137
|
+
open?: boolean;
|
|
138
|
+
defaultOpen?: boolean;
|
|
139
|
+
portal?: boolean;
|
|
140
|
+
panelClassName?: string;
|
|
141
|
+
panelFooter?: ReactNode;
|
|
142
|
+
listMaxHeight?: number;
|
|
143
|
+
/**
|
|
144
|
+
* Floating-ui placement of the panel relative to the trigger.
|
|
145
|
+
* @default 'bottom-start'
|
|
146
|
+
*/
|
|
147
|
+
placement?: Placement;
|
|
148
|
+
/**
|
|
149
|
+
* Override the panel width. Number is treated as `px`; string is used as-is
|
|
150
|
+
* (e.g. `'354px'`, `'100%'`). When unset, the panel width matches the
|
|
151
|
+
* trigger width.
|
|
152
|
+
*/
|
|
153
|
+
panelWidth?: number | string;
|
|
154
|
+
/**
|
|
155
|
+
* ARIA role applied to the floating panel and matched on the trigger via
|
|
156
|
+
* `aria-haspopup`. Defaults to `'dialog'` because the panel content is
|
|
157
|
+
* arbitrary — set to `'listbox'` / `'menu'` / `'tree'` etc. only if the
|
|
158
|
+
* panel actually exposes that semantic to assistive tech.
|
|
159
|
+
* @default 'dialog'
|
|
160
|
+
*/
|
|
161
|
+
role?: SelectCustomRole;
|
|
162
|
+
/**
|
|
163
|
+
* Open/close animation. Default `{ kind: 'height', duration: { open: 150, close: 100 } }`.
|
|
164
|
+
* Set to `false` to disable.
|
|
165
|
+
*/
|
|
166
|
+
animation?: FloatingAnimation;
|
|
167
|
+
onOpenChange?: (open: boolean) => void;
|
|
168
|
+
onBlur?: (event?: FocusEvent<HTMLElement>) => void;
|
|
169
|
+
/**
|
|
170
|
+
* Panel body. Receives `{ close, open }` so consumers can dismiss the panel
|
|
171
|
+
* after interacting (e.g. picking an item).
|
|
172
|
+
*/
|
|
173
|
+
children?: ReactNode | ((ctx: SelectCustomPanelContext) => ReactNode);
|
|
174
|
+
}
|
|
@@ -7,4 +7,4 @@ exports.SELECT_VARIANTS = exports.SELECT_STATUSES = exports.SELECT_SIZES = void
|
|
|
7
7
|
var SELECT_SIZES = exports.SELECT_SIZES = ['large', 'small'];
|
|
8
8
|
var SELECT_STATUSES = exports.SELECT_STATUSES = ['default', 'error', 'warning', 'success'];
|
|
9
9
|
var SELECT_VARIANTS = exports.SELECT_VARIANTS = ['fill', 'stroke', 'frameless'];
|
|
10
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6WyJTRUxFQ1RfU0laRVMiLCJleHBvcnRzIiwiU0VMRUNUX1NUQVRVU0VTIiwiU0VMRUNUX1ZBUklBTlRTIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFnQk8sSUFBTUEsWUFBWSxHQUFBQyxPQUFBLENBQUFELFlBQUEsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVU7QUFDaEQsSUFBTUUsZUFBZSxHQUFBRCxPQUFBLENBQUFDLGVBQUEsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBVTtBQUMzRSxJQUFNQyxlQUFlLEdBQUFGLE9BQUEsQ0FBQUUsZUFBQSxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQVUiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvaW50ZXJmYWNlLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.om-component-ui-select{display:flex;flex-direction:column;gap:var(--om-spacing-200,8px);width:100%}.om-component-ui-select-label-row{display:inline-flex;gap:var(--om-spacing-100,4px);align-items:center}.om-component-ui-select-label-text{display:inline}.om-component-ui-select-required{color:var(--om-text-danger,#ae0000)}.om-component-ui-select-info{display:inline-flex;align-items:center;color:var(--om-icon-default-tertiary,#646465)}.om-component-ui-select-description-text{display:block}.om-component-ui-select-trigger{display:flex;gap:var(--om-spacing-200,8px);align-items:center;width:100%;min-width:120px;color:inherit;text-align:left;border:1px solid var(--om-border-default,#d1d2d2);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.om-component-ui-select-trigger-large{min-height:var(--om-component-height-3xl,56px);padding:var(--om-spacing-300,12px);border-radius:var(--om-radius-300,12px)}.om-component-ui-select-trigger-small{min-height:var(--om-component-height-lg,44px);padding:var(--om-spacing-200,8px) var(--om-spacing-300,12px);border-radius:var(--om-radius-200,8px)}.om-component-ui-select-trigger-fill{background-color:var(--om-bg-default-secondary,#f8f8f8)}.om-component-ui-select-trigger-stroke{background-color:transparent}.om-component-ui-select-trigger-frameless{justify-content:flex-start;width:auto;min-width:auto;min-height:auto;padding:0;background:transparent;border:none;border-radius:0}.om-component-ui-select-trigger:not(.om-component-ui-select-trigger-disabled):hover{border-color:var(--om-border-default-tertiary,#404042)}.om-component-ui-select-trigger-frameless:not(.om-component-ui-select-trigger-disabled):hover{border-color:transparent}.om-component-ui-select-trigger-open{border-color:var(--om-border-brand,#073387);box-shadow:inset 0 0 0 1px var(--om-border-brand,#073387)}.om-component-ui-select-trigger-error{border-color:var(--om-border-danger,#ae0000)}.om-component-ui-select-trigger-warning{border-color:var(--om-border-warning,#db8600)}.om-component-ui-select-trigger-success{border-color:var(--om-border-positive,#1f5800)}.om-component-ui-select-trigger-disabled{color:var(--om-text-disabled,#bbbdc1);background-color:var(--om-bg-disabled,#f0f0f0);border-color:var(--om-border-disabled,#e3e4e4);box-shadow:none;cursor:not-allowed}.om-component-ui-select-trigger-error,.om-component-ui-select-trigger-frameless,.om-component-ui-select-trigger-success,.om-component-ui-select-trigger-warning{box-shadow:none}.om-component-ui-select-trigger-disabled .om-component-ui-select-icon,.om-component-ui-select-trigger-disabled .om-component-ui-select-prefix{color:var(--om-icon-disabled,#d1d2d2)}.om-component-ui-select-content{display:flex;flex:1 1 auto;gap:var(--om-spacing-200,8px);align-items:center;min-width:0}.om-component-ui-select-prefix{display:inline-flex;flex-shrink:0;align-items:center;color:var(--om-icon-default-tertiary,#646465)}.om-component-ui-select-placeholder,.om-component-ui-select-value{display:inline-flex;flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-value-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-strong-font-weight)}.om-component-ui-select-value-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-strong-font-weight)}.om-component-ui-select-placeholder-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-font-weight)}.om-component-ui-select-placeholder-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-font-weight)}.om-component-ui-select-value{color:var(--om-text-default,#131313)}.om-component-ui-select-value-multiple{display:flex;flex-wrap:wrap;gap:var(--om-spacing-200,8px);align-content:flex-start;align-items:center;max-height:88px;overflow:hidden;white-space:normal;text-overflow:clip}.om-component-ui-select-placeholder{color:var(--om-text-neutral-secondary,#9fa3a3)}.om-component-ui-select-placeholder-disabled,.om-component-ui-select-value-disabled{color:var(--om-text-disabled,#bbbdc1)}.om-component-ui-select-icon{display:inline-flex;flex-shrink:0;align-items:center;color:var(--om-icon-default,#131313)}.om-component-ui-select-clear{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;color:var(--om-icon-default-tertiary,#646465);cursor:pointer;transition:color .2s ease}.om-component-ui-select-clear:hover{color:var(--om-icon-default,#131313)}.om-component-ui-select-trigger-multiple-filled{padding-top:var(--om-spacing-200,8px);padding-bottom:var(--om-spacing-200,8px)}.om-component-ui-select-tag{font-size:var(--om-body-sm-font-size);font-family:var(--om-body-sm-font-family);line-height:var(--om-body-sm-line-height);letter-spacing:var(--om-body-sm-letter-spacing);font-weight:var(--om-body-sm-strong-font-weight);display:inline-flex;flex-shrink:0;gap:var(--om-spacing-100,4px);align-items:center;justify-content:center;max-width:100%;padding:var(--om-spacing-100,4px) var(--om-spacing-200,8px);color:var(--om-text-default-tertiary,#646465);background-color:var(--om-bg-neutral-tertiary,#f0f0f0);border-radius:var(--om-radius-full,9999px)}.om-component-ui-select-tag-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-tag-remove{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;color:currentcolor}.om-component-ui-select-collapsed-values{display:inline-flex;flex:1 1 auto;gap:var(--om-spacing-100,4px);align-items:center;min-width:0}.om-component-ui-select-collapsed-values-list{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-collapsed-values-extra{flex-shrink:0;color:var(--om-text-default-secondary,#404042)}.om-component-ui-select-collapsed-values-extra-disabled{color:var(--om-text-disabled,#bbbdc1)}.om-component-ui-select-feedback{display:inline-flex;gap:var(--om-spacing-100,4px);align-items:flex-start;color:var(--om-text-default-secondary,#404042)}.om-component-ui-select-feedback-error{color:var(--om-text-danger,#ae0000)}.om-component-ui-select-feedback-warning{color:var(--om-text-warning,#db8600)}.om-component-ui-select-feedback-success{color:var(--om-text-positive,#1f5800)}.om-component-ui-select-feedback-disabled{color:var(--om-text-disabled,#bbbdc1)}.om-component-ui-select-feedback-icon{display:inline-flex;flex-shrink:0;align-items:center;margin-top:1px}.om-component-ui-select-panel{z-index:1500;display:flex;flex-direction:column;padding:var(--om-spacing-200,8px);overflow:hidden;background-color:var(--om-bg-default,#fff);border:1px solid var(--om-border-neutral-tertiary,#f8f8f8);border-radius:var(--om-radius-300,12px);box-shadow:var(--om-shadow-100,0 4px 8px rgba(65,91,130,.12))}.om-component-ui-select-search{display:flex;flex-shrink:0;gap:var(--om-spacing-200,8px);align-items:center;width:100%;min-height:var(--om-component-height-3xl,56px);margin-bottom:var(--om-spacing-200,8px);padding:var(--om-spacing-300,12px) var(--om-spacing-400,16px);background-color:var(--om-bg-default,#fff);border:1px solid var(--om-border-default,#d1d2d2);border-radius:var(--om-radius-300,12px);transition:border-color .2s ease,box-shadow .2s ease}.om-component-ui-select-search:hover{border-color:var(--om-border-default-tertiary,#404042)}.om-component-ui-select-search:focus-within{border-color:var(--om-border-brand,#073387);box-shadow:inset 0 0 0 1px var(--om-border-brand,#073387)}.om-component-ui-select-search-icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;color:var(--om-icon-default,#131313)}.om-component-ui-select-search-input{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-font-weight);flex:1 1 auto;min-width:0;color:var(--om-text-default,#131313);background:transparent;border:none;outline:none}.om-component-ui-select-search-input::placeholder{color:var(--om-text-neutral-secondary,#9fa3a3)}.om-component-ui-select-panel-body{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--om-spacing-050,2px);min-height:0;overflow-y:auto}.om-component-ui-select-panel-footer{flex-shrink:0;width:100%;padding-top:var(--om-spacing-300,12px);padding-bottom:var(--om-spacing-100,4px);border-top:1px solid var(--om-border-neutral-secondary,#f0f0f0)}.om-component-ui-select-group{display:flex;flex-direction:column;width:100%}.om-component-ui-select-group-label{padding:var(--om-spacing-200,8px) 0}.om-component-ui-select-group-label,.om-component-ui-select-option{display:flex;align-items:center;width:100%;color:var(--om-text-default,#131313)}.om-component-ui-select-option{gap:var(--om-spacing-300,12px);min-height:40px;margin:var(--om-spacing-100,4px) 0;padding:var(--om-spacing-200,8px);text-align:left;background:transparent;border:none;border-radius:var(--om-radius-200,8px);cursor:pointer;transition:background-color .2s ease}.om-component-ui-select-option:focus,.om-component-ui-select-option:focus-visible{outline:none;box-shadow:none}.om-component-ui-select-option-active,.om-component-ui-select-option-selected,.om-component-ui-select-option:hover{background-color:var(--om-bg-default-secondary,#f8f8f8)}.om-component-ui-select-option-disabled{color:var(--om-text-disabled,#bbbdc1);background-color:transparent;cursor:not-allowed}.om-component-ui-select-option-content{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--om-spacing-050,2px);min-width:0}.om-component-ui-select-option-label{color:currentcolor}.om-component-ui-select-option-description,.om-component-ui-select-option-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-option-check{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:16px;height:16px;margin-left:auto;color:var(--om-icon-brand,#073387)}.om-component-ui-select-empty{padding:var(--om-spacing-200,8px);text-align:center}.om-component-ui-select-frameless{width:auto}.om-component-ui-select-frameless .om-component-ui-select-placeholder-large,.om-component-ui-select-frameless .om-component-ui-select-value-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-font-weight);color:var(--om-text-default-tertiary,#646465)}.om-component-ui-select-frameless .om-component-ui-select-placeholder-small,.om-component-ui-select-frameless .om-component-ui-select-value-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-font-weight);color:var(--om-text-default-tertiary,#646465)}.om-component-ui-select-frameless.om-component-ui-select-disabled{color:var(--om-text-disabled,#bbbdc1)}
|
|
1
|
+
.om-component-ui-select{display:flex;flex-direction:column;gap:var(--om-spacing-200,8px);width:100%}.om-component-ui-select-label-row{display:inline-flex;gap:var(--om-spacing-100,4px);align-items:center}.om-component-ui-select-label-text{display:inline}.om-component-ui-select-required{color:var(--om-text-danger,#ae0000)}.om-component-ui-select-info{display:inline-flex;align-items:center;color:var(--om-icon-default-tertiary,#646465)}.om-component-ui-select-description-text{display:block}.om-component-ui-select-trigger{display:flex;gap:var(--om-spacing-200,8px);align-items:center;width:100%;min-width:120px;color:inherit;text-align:left;border:1px solid var(--om-border-default,#d1d2d2);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.om-component-ui-select-trigger-large{min-height:var(--om-component-height-3xl,56px);padding:var(--om-spacing-300,12px);border-radius:var(--om-radius-300,12px)}.om-component-ui-select-trigger-small{min-height:var(--om-component-height-lg,44px);padding:var(--om-spacing-200,8px) var(--om-spacing-300,12px);border-radius:var(--om-radius-200,8px)}.om-component-ui-select-trigger-fill{background-color:var(--om-bg-default-secondary,#f8f8f8)}.om-component-ui-select-trigger-stroke{background-color:transparent}.om-component-ui-select-trigger-frameless{justify-content:flex-start;width:auto;min-width:auto;min-height:auto;padding:0;background:transparent;border:none;border-radius:0}.om-component-ui-select-trigger:not(.om-component-ui-select-trigger-disabled):hover{border-color:var(--om-border-default-tertiary,#404042)}.om-component-ui-select-trigger-frameless:not(.om-component-ui-select-trigger-disabled):hover{border-color:transparent}.om-component-ui-select-trigger-open{border-color:var(--om-border-brand,#073387);box-shadow:inset 0 0 0 1px var(--om-border-brand,#073387)}.om-component-ui-select-trigger-error{border-color:var(--om-border-danger,#ae0000)}.om-component-ui-select-trigger-warning{border-color:var(--om-border-warning,#db8600)}.om-component-ui-select-trigger-success{border-color:var(--om-border-positive,#1f5800)}.om-component-ui-select-trigger-disabled{color:var(--om-text-disabled,#bbbdc1);background-color:var(--om-bg-disabled,#f0f0f0);border-color:var(--om-border-disabled,#e3e4e4);box-shadow:none;cursor:not-allowed}.om-component-ui-select-trigger-error,.om-component-ui-select-trigger-frameless,.om-component-ui-select-trigger-success,.om-component-ui-select-trigger-warning{box-shadow:none}.om-component-ui-select-trigger-disabled .om-component-ui-select-icon,.om-component-ui-select-trigger-disabled .om-component-ui-select-prefix{color:var(--om-icon-disabled,#d1d2d2)}.om-component-ui-select-content{display:flex;flex:1 1 auto;gap:var(--om-spacing-200,8px);align-items:center;min-width:0}.om-component-ui-select-prefix{display:inline-flex;flex-shrink:0;align-items:center;color:var(--om-icon-default-tertiary,#646465)}.om-component-ui-select-placeholder,.om-component-ui-select-value{display:inline-flex;flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-value-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-strong-font-weight)}.om-component-ui-select-value-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-strong-font-weight)}.om-component-ui-select-placeholder-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-font-weight)}.om-component-ui-select-placeholder-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-font-weight)}.om-component-ui-select-value{color:var(--om-text-default,#131313)}.om-component-ui-select-value-multiple{display:flex;flex-wrap:wrap;gap:var(--om-spacing-200,8px);align-content:flex-start;align-items:center;max-height:88px;overflow:hidden;white-space:normal;text-overflow:clip}.om-component-ui-select-placeholder{color:var(--om-text-neutral-secondary,#9fa3a3)}.om-component-ui-select-placeholder-disabled,.om-component-ui-select-value-disabled{color:var(--om-text-disabled,#bbbdc1)}.om-component-ui-select-icon{display:inline-flex;flex-shrink:0;align-items:center;color:var(--om-icon-default,#131313)}.om-component-ui-select-trigger-multiple-filled{padding-top:var(--om-spacing-200,8px);padding-bottom:var(--om-spacing-200,8px)}.om-component-ui-select-tag{font-size:var(--om-body-sm-font-size);font-family:var(--om-body-sm-font-family);line-height:var(--om-body-sm-line-height);letter-spacing:var(--om-body-sm-letter-spacing);font-weight:var(--om-body-sm-strong-font-weight);display:inline-flex;flex-shrink:0;gap:var(--om-spacing-100,4px);align-items:center;justify-content:center;max-width:100%;padding:var(--om-spacing-100,4px) var(--om-spacing-200,8px);color:var(--om-text-default-tertiary,#646465);background-color:var(--om-bg-neutral-tertiary,#f0f0f0);border-radius:var(--om-radius-full,9999px)}.om-component-ui-select-tag-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-tag-remove{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;color:currentcolor}.om-component-ui-select-collapsed-values{display:inline-flex;flex:1 1 auto;gap:var(--om-spacing-100,4px);align-items:center;min-width:0}.om-component-ui-select-collapsed-values-list{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-collapsed-values-extra{flex-shrink:0;color:var(--om-text-default-secondary,#404042)}.om-component-ui-select-collapsed-values-extra-disabled{color:var(--om-text-disabled,#bbbdc1)}.om-component-ui-select-feedback{display:inline-flex;gap:var(--om-spacing-100,4px);align-items:flex-start;color:var(--om-text-default-secondary,#404042)}.om-component-ui-select-feedback-error{color:var(--om-text-danger,#ae0000)}.om-component-ui-select-feedback-warning{color:var(--om-text-warning,#db8600)}.om-component-ui-select-feedback-success{color:var(--om-text-positive,#1f5800)}.om-component-ui-select-feedback-disabled{color:var(--om-text-disabled,#bbbdc1)}.om-component-ui-select-feedback-icon{display:inline-flex;flex-shrink:0;align-items:center;margin-top:1px}.om-component-ui-select-panel{z-index:1500;display:flex;flex-direction:column;padding:var(--om-spacing-200,8px);overflow:hidden;background-color:var(--om-bg-default,#fff);border:1px solid var(--om-border-neutral-tertiary,#f8f8f8);border-radius:var(--om-radius-300,12px);box-shadow:var(--om-shadow-100,0 4px 8px rgba(65,91,130,.12))}.om-component-ui-select-search{display:flex;flex-shrink:0;gap:var(--om-spacing-200,8px);align-items:center;width:100%;min-height:var(--om-component-height-3xl,56px);margin-bottom:var(--om-spacing-200,8px);padding:var(--om-spacing-300,12px) var(--om-spacing-400,16px);background-color:var(--om-bg-default,#fff);border:1px solid var(--om-border-default,#d1d2d2);border-radius:var(--om-radius-300,12px);transition:border-color .2s ease,box-shadow .2s ease}.om-component-ui-select-search:hover{border-color:var(--om-border-default-tertiary,#404042)}.om-component-ui-select-search:focus-within{border-color:var(--om-border-brand,#073387);box-shadow:inset 0 0 0 1px var(--om-border-brand,#073387)}.om-component-ui-select-search-icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;color:var(--om-icon-default,#131313)}.om-component-ui-select-search-input{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-font-weight);flex:1 1 auto;min-width:0;color:var(--om-text-default,#131313);background:transparent;border:none;outline:none}.om-component-ui-select-search-input::placeholder{color:var(--om-text-neutral-secondary,#9fa3a3)}.om-component-ui-select-panel-body{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--om-spacing-050,2px);min-height:0;overflow-y:auto}.om-component-ui-select-panel-footer{flex-shrink:0;width:100%;padding-top:var(--om-spacing-300,12px);padding-bottom:var(--om-spacing-100,4px);border-top:1px solid var(--om-border-neutral-secondary,#f0f0f0)}.om-component-ui-select-group{display:flex;flex-direction:column;width:100%}.om-component-ui-select-group-label{padding:var(--om-spacing-200,8px) 0}.om-component-ui-select-group-label,.om-component-ui-select-option{display:flex;align-items:center;width:100%;color:var(--om-text-default,#131313)}.om-component-ui-select-option{gap:var(--om-spacing-300,12px);min-height:40px;margin:var(--om-spacing-100,4px) 0;padding:var(--om-spacing-200,8px);text-align:left;background:transparent;border:none;border-radius:var(--om-radius-200,8px);cursor:pointer;transition:background-color .2s ease}.om-component-ui-select-option:focus,.om-component-ui-select-option:focus-visible{outline:none;box-shadow:none}.om-component-ui-select-option-active,.om-component-ui-select-option-selected,.om-component-ui-select-option:hover{background-color:var(--om-bg-default-secondary,#f8f8f8)}.om-component-ui-select-option-disabled{color:var(--om-text-disabled,#bbbdc1);background-color:transparent;cursor:not-allowed}.om-component-ui-select-option-content{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--om-spacing-050,2px);min-width:0}.om-component-ui-select-option-label{color:currentcolor}.om-component-ui-select-option-description,.om-component-ui-select-option-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.om-component-ui-select-option-check{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:16px;height:16px;margin-left:auto;color:var(--om-icon-brand,#073387)}.om-component-ui-select-empty{padding:var(--om-spacing-200,8px);text-align:center}.om-component-ui-select-frameless{width:auto}.om-component-ui-select-frameless .om-component-ui-select-placeholder-large,.om-component-ui-select-frameless .om-component-ui-select-value-large{font-size:var(--om-body-lg-font-size);font-family:var(--om-body-lg-font-family);line-height:var(--om-body-lg-line-height);letter-spacing:var(--om-body-lg-letter-spacing);font-weight:var(--om-body-lg-font-weight);color:var(--om-text-default-tertiary,#646465)}.om-component-ui-select-frameless .om-component-ui-select-placeholder-small,.om-component-ui-select-frameless .om-component-ui-select-value-small{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-font-weight);color:var(--om-text-default-tertiary,#646465)}.om-component-ui-select-frameless.om-component-ui-select-disabled{color:var(--om-text-disabled,#bbbdc1)}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ElementProps, FloatingContext, Placement, ReferenceType, UseFloatingReturn, UseRoleProps } from '@floating-ui/react';
|
|
2
|
+
import type { CSSProperties } from 'react';
|
|
3
|
+
import type { FloatingAnimation } from "../../hooks/useFloatingAnimation";
|
|
4
|
+
export interface UseSelectShellOptions {
|
|
5
|
+
open?: boolean;
|
|
6
|
+
defaultOpen?: boolean;
|
|
7
|
+
onOpenChange?: (open: boolean) => void;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
placement?: Placement;
|
|
10
|
+
panelWidth?: number | string;
|
|
11
|
+
listMaxHeight?: number;
|
|
12
|
+
animation?: FloatingAnimation;
|
|
13
|
+
role?: UseRoleProps['role'];
|
|
14
|
+
}
|
|
15
|
+
export interface UseSelectShellReturn<RT extends ReferenceType = ReferenceType> {
|
|
16
|
+
isOpen: boolean;
|
|
17
|
+
setOpen: (open: boolean) => void;
|
|
18
|
+
refs: UseFloatingReturn<RT>['refs'];
|
|
19
|
+
context: FloatingContext<RT>;
|
|
20
|
+
placement: Placement;
|
|
21
|
+
floatingStyles: CSSProperties;
|
|
22
|
+
transitionStyles: CSSProperties;
|
|
23
|
+
isMounted: boolean;
|
|
24
|
+
baseInteractions: ElementProps[];
|
|
25
|
+
}
|
|
26
|
+
export declare function useSelectShell<RT extends HTMLElement = HTMLButtonElement>(options: UseSelectShellOptions): UseSelectShellReturn<RT>;
|
|
27
|
+
export default useSelectShell;
|