@1money/component-ui 0.0.64-alpha.3 → 0.0.64-alpha.4

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.
@@ -26,7 +26,7 @@
26
26
  .om-asset-select .om-component-ui-select-trigger-small {
27
27
  height: 44px;
28
28
  }
29
- .om-asset-select .label {
29
+ .om-asset-select-label {
30
30
  width: 100%;
31
31
  }
32
32
 
@@ -1,4 +1,3 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
1
  var __rest = this && this.__rest || function (s, e) {
3
2
  var t = {};
4
3
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
@@ -7,24 +6,17 @@ var __rest = this && this.__rest || function (s, e) {
7
6
  }
8
7
  return t;
9
8
  };
10
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- import { memo, useEffect, useMemo, useRef } from 'react';
12
- import { useControlledState, useEventCallback } from '@1money/hooks';
9
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
+ import { memo, useMemo } from 'react';
11
+ import { useEventCallback } from '@1money/hooks';
13
12
  import { Alert } from '../../../components/Alert';
14
13
  import { Flex } from '../../../components/Flex';
15
- import { Icons } from '../../../components/Icons';
16
14
  import { Select } from '../../../components/Select';
17
15
  import { TypographyBody } from '../../../components/Typography';
18
16
  import { joinCls } from '../../../utils/classnames';
19
17
  var WRAP_CLS = 'om-network-select';
20
- var PANEL_CLS = "".concat(WRAP_CLS, "-panel");
21
18
  var ICON_CLS = "".concat(WRAP_CLS, "-icon");
22
- var CARD_CLS = "".concat(WRAP_CLS, "-card");
23
- var CARD_ACTIVE_CLS = "".concat(CARD_CLS, "-active");
24
19
  var ICON_SIZE = 24;
25
- var CHECK_ICON_SIZE = 16;
26
- /** Brand blue — `palette(icon, 'brand')` resolves to `$blue-700`. */
27
- var CHECK_COLOR = '#073387';
28
20
  var WARNING_BODY = 'Only deposit your asset using one of the supported networks below. Depositing via an unsupported network will result in the permanent loss of your funds.';
29
21
  var renderTimeMeta = function renderTimeMeta(item) {
30
22
  return _jsx(TypographyBody, {
@@ -33,117 +25,6 @@ var renderTimeMeta = function renderTimeMeta(item) {
33
25
  children: "\u2248 ".concat(item.processingTime, " mins")
34
26
  });
35
27
  };
36
- /**
37
- * The option list as an accessible listbox. `Select.Custom` mounts the panel
38
- * fresh on every open, so the mount effect lands focus on the active option,
39
- * and arrow keys roam focus between options (Enter / Space are handled
40
- * natively by the `<button>` elements).
41
- */
42
- var NetworkOptionList = function NetworkOptionList(_ref) {
43
- var options = _ref.options,
44
- selected = _ref.selected,
45
- strong = _ref.strong,
46
- onPick = _ref.onPick;
47
- var itemsRef = useRef([]);
48
- var didFocusRef = useRef(false);
49
- useEffect(function () {
50
- var _a;
51
- if (didFocusRef.current || options.length === 0) return;
52
- didFocusRef.current = true;
53
- var initialIndex = Math.max(0, options.findIndex(function (item) {
54
- return item.network === selected;
55
- }));
56
- (_a = itemsRef.current[initialIndex]) === null || _a === void 0 ? void 0 : _a.focus({
57
- preventScroll: true
58
- });
59
- }, [options, selected]);
60
- var focusItemAt = function focusItemAt(index) {
61
- var _a;
62
- var count = options.length;
63
- if (count === 0) return;
64
- var next = (index % count + count) % count;
65
- (_a = itemsRef.current[next]) === null || _a === void 0 ? void 0 : _a.focus({
66
- preventScroll: false
67
- });
68
- };
69
- var handleKeyDown = function handleKeyDown(event) {
70
- var current = itemsRef.current.findIndex(function (el) {
71
- return el === document.activeElement;
72
- });
73
- switch (event.key) {
74
- case 'ArrowDown':
75
- case 'ArrowRight':
76
- event.preventDefault();
77
- focusItemAt(current + 1);
78
- break;
79
- case 'ArrowUp':
80
- case 'ArrowLeft':
81
- event.preventDefault();
82
- focusItemAt(current - 1);
83
- break;
84
- case 'Home':
85
- event.preventDefault();
86
- focusItemAt(0);
87
- break;
88
- case 'End':
89
- event.preventDefault();
90
- focusItemAt(options.length - 1);
91
- break;
92
- default:
93
- break;
94
- }
95
- };
96
- return _jsx(Flex, {
97
- vertical: true,
98
- gap: 8,
99
- role: 'listbox',
100
- onKeyDown: handleKeyDown,
101
- children: options.map(function (item, index) {
102
- var active = item.network === selected;
103
- return _jsxs("button", {
104
- ref: function ref(el) {
105
- itemsRef.current[index] = el;
106
- },
107
- type: 'button',
108
- role: 'option',
109
- "aria-selected": active,
110
- className: joinCls(CARD_CLS, active && CARD_ACTIVE_CLS),
111
- onClick: function onClick() {
112
- return onPick(item);
113
- },
114
- children: [_jsx("img", {
115
- src: item.iconUrl,
116
- alt: item.networkDesc,
117
- width: ICON_SIZE,
118
- height: ICON_SIZE,
119
- className: ICON_CLS
120
- }), _jsxs(Flex, {
121
- vertical: true,
122
- gap: 0,
123
- align: 'start',
124
- style: {
125
- minWidth: 0,
126
- flex: 1
127
- },
128
- children: [_jsx(TypographyBody, {
129
- size: 'md',
130
- strong: strong,
131
- color: 'default',
132
- children: item.networkSymbol
133
- }), _jsx(TypographyBody, {
134
- size: 'sm',
135
- color: 'default-secondary',
136
- children: item.networkDesc
137
- })]
138
- }), renderTimeMeta(item), active ? _jsx(Icons, {
139
- name: 'check',
140
- size: CHECK_ICON_SIZE,
141
- color: CHECK_COLOR
142
- }) : null]
143
- }, item.network);
144
- })
145
- });
146
- };
147
28
  var NetworkSelectBase = function NetworkSelectBase(_a) {
148
29
  var options = _a.options,
149
30
  className = _a.className,
@@ -159,71 +40,95 @@ var NetworkSelectBase = function NetworkSelectBase(_a) {
159
40
  defaultValue = _a.defaultValue,
160
41
  onChange = _a.onChange,
161
42
  rest = __rest(_a, ["options", "className", "label", "name", "placeholder", "strong", "value", "defaultValue", "onChange"]);
162
- var _useControlledState = useControlledState(defaultValue, value),
163
- _useControlledState2 = _slicedToArray(_useControlledState, 2),
164
- selected = _useControlledState2[0],
165
- setSelected = _useControlledState2[1];
166
- var selectedItem = useMemo(function () {
167
- return options.find(function (item) {
168
- return item.network === selected;
43
+ // Adapt the backend payload to the shared `Select`, which owns selection
44
+ // state, keyboard navigation, and the trailing selected check.
45
+ var selectOptions = useMemo(function () {
46
+ return options.map(function (item) {
47
+ return {
48
+ value: item.network,
49
+ label: item.networkSymbol,
50
+ description: item.networkDesc,
51
+ raw: item
52
+ };
169
53
  });
170
- }, [options, selected]);
171
- var handlePick = useEventCallback(function (item, close) {
172
- setSelected(item.network);
173
- onChange === null || onChange === void 0 ? void 0 : onChange(item.network, item);
174
- close();
54
+ }, [options]);
55
+ var handleChange = useEventCallback(function (next, option) {
56
+ var _a;
57
+ if (typeof next !== 'string') return;
58
+ var item = (_a = option === null || option === void 0 ? void 0 : option.raw) !== null && _a !== void 0 ? _a : options.find(function (network) {
59
+ return network.network === next;
60
+ });
61
+ if (item) onChange === null || onChange === void 0 ? void 0 : onChange(next, item);
175
62
  });
176
- return _jsx(Select.Custom, Object.assign({}, rest, {
177
- name: name,
178
- label: label,
179
- placeholder: placeholder,
180
- className: joinCls(WRAP_CLS, className),
181
- panelClassName: PANEL_CLS,
182
- selectedTemplate: selectedItem ? function (_ref2) {
183
- var fontSize = _ref2.fontSize;
184
- return _jsxs(Flex, {
185
- align: 'center',
186
- justify: 'space-between',
187
- gap: 8,
63
+ // Custom option body — icon, two-line symbol/description, and processing
64
+ // time. The shared `Select` appends the brand-colored selected check.
65
+ var renderOptionContent = function renderOptionContent(option) {
66
+ var item = option.raw;
67
+ return _jsxs(_Fragment, {
68
+ children: [_jsx("img", {
69
+ src: item.iconUrl,
70
+ alt: item.networkDesc,
71
+ width: ICON_SIZE,
72
+ height: ICON_SIZE,
73
+ className: ICON_CLS
74
+ }), _jsxs(Flex, {
75
+ vertical: true,
76
+ gap: 0,
77
+ align: 'start',
188
78
  style: {
189
- width: '100%'
79
+ minWidth: 0,
80
+ flex: 1
190
81
  },
191
- children: [_jsxs(Flex, {
192
- align: 'center',
193
- gap: 8,
194
- children: [_jsx("img", {
195
- src: selectedItem.iconUrl,
196
- alt: selectedItem.networkDesc,
197
- width: ICON_SIZE,
198
- height: ICON_SIZE,
199
- className: ICON_CLS
200
- }), _jsx(TypographyBody, {
201
- size: fontSize,
202
- strong: strong,
203
- children: selectedItem.networkSymbol
204
- })]
205
- }), renderTimeMeta(selectedItem)]
206
- });
207
- } : null,
208
- children: function children(_ref3) {
209
- var close = _ref3.close;
210
- return _jsxs(Flex, {
211
- vertical: true,
212
- gap: 8,
213
- children: [_jsx(Alert, {
214
- status: 'warning',
215
- body: WARNING_BODY
216
- }), _jsx(NetworkOptionList, {
217
- options: options,
218
- selected: selected,
82
+ children: [_jsx(TypographyBody, {
83
+ size: 'md',
219
84
  strong: strong,
220
- onPick: function onPick(item) {
221
- return handlePick(item, close);
222
- }
85
+ color: 'default',
86
+ children: item.networkSymbol
87
+ }), _jsx(TypographyBody, {
88
+ size: 'sm',
89
+ color: 'default-secondary',
90
+ children: item.networkDesc
223
91
  })]
224
- });
225
- }
92
+ }), renderTimeMeta(item)]
93
+ });
94
+ };
95
+ var renderValue = function renderValue(option, meta) {
96
+ // `Select` calls `renderValue(null)` when nothing is selected, so the
97
+ // placeholder fallback is this function's responsibility.
98
+ if (!option || Array.isArray(option)) return placeholder;
99
+ var item = option.raw;
100
+ return _jsxs(Flex, {
101
+ align: 'center',
102
+ gap: 8,
103
+ children: [_jsx("img", {
104
+ src: item.iconUrl,
105
+ alt: item.networkDesc,
106
+ width: ICON_SIZE,
107
+ height: ICON_SIZE,
108
+ className: ICON_CLS
109
+ }), _jsx(TypographyBody, {
110
+ size: meta.fontSize,
111
+ strong: strong,
112
+ children: item.networkSymbol
113
+ })]
114
+ });
115
+ };
116
+ return _jsx(Select, Object.assign({}, rest, {
117
+ name: name,
118
+ label: label,
119
+ placeholder: placeholder,
120
+ className: joinCls(WRAP_CLS, className),
121
+ options: selectOptions,
122
+ value: value,
123
+ defaultValue: defaultValue,
124
+ panelHeader: _jsx(Alert, {
125
+ status: 'warning',
126
+ body: WARNING_BODY
127
+ }),
128
+ renderOptionContent: renderOptionContent,
129
+ renderValue: renderValue,
130
+ onChange: handleChange
226
131
  }));
227
132
  };
228
133
  export var NetworkSelect = /*#__PURE__*/memo(NetworkSelectBase);
229
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL1NlbGVjdC9OZXR3b3JrL05ldHdvcmtTZWxlY3QuanMiLCJidXNpbmVzcy9TZWxlY3Qvc3JjL2J1c2luZXNzL1NlbGVjdC9OZXR3b3JrL05ldHdvcmtTZWxlY3QudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidXNlRXZlbnRDYWxsYmFjayIsIkFsZXJ0IiwiRmxleCIsIkljb25zIiwiU2VsZWN0IiwiVHlwb2dyYXBoeUJvZHkiLCJqb2luQ2xzIiwiV1JBUF9DTFMiLCJQQU5FTF9DTFMiLCJjb25jYXQiLCJJQ09OX0NMUyIsIkNBUkRfQ0xTIiwiQ0FSRF9BQ1RJVkVfQ0xTIiwiSUNPTl9TSVpFIiwiQ0hFQ0tfSUNPTl9TSVpFIiwiQ0hFQ0tfQ09MT1IiLCJXQVJOSU5HX0JPRFkiLCJyZW5kZXJUaW1lTWV0YSIsIml0ZW0iLCJzaXplIiwiY29sb3IiLCJjaGlsZHJlbiIsInByb2Nlc3NpbmdUaW1lIiwiTmV0d29ya09wdGlvbkxpc3QiLCJfcmVmIiwib3B0aW9ucyIsInNlbGVjdGVkIiwic3Ryb25nIiwib25QaWNrIiwiaXRlbXNSZWYiLCJkaWRGb2N1c1JlZiIsIl9hIiwiY3VycmVudCIsImluaXRpYWxJbmRleCIsIk1hdGgiLCJtYXgiLCJmaW5kSW5kZXgiLCJuZXR3b3JrIiwiZm9jdXMiLCJwcmV2ZW50U2Nyb2xsIiwiZm9jdXNJdGVtQXQiLCJpbmRleCIsImNvdW50IiwibmV4dCIsImhhbmRsZUtleURvd24iLCJldmVudCIsImVsIiwiZG9jdW1lbnQiLCJhY3RpdmVFbGVtZW50Iiwia2V5IiwicHJldmVudERlZmF1bHQiLCJ2ZXJ0aWNhbCIsImdhcCIsInJvbGUiLCJvbktleURvd24iLCJtYXAiLCJhY3RpdmUiLCJyZWYiLCJ0eXBlIiwiY2xhc3NOYW1lIiwib25DbGljayIsInNyYyIsImljb25VcmwiLCJhbHQiLCJuZXR3b3JrRGVzYyIsIndpZHRoIiwiaGVpZ2h0IiwiYWxpZ24iLCJzdHlsZSIsIm1pbldpZHRoIiwiZmxleCIsIm5ldHdvcmtTeW1ib2wiLCJuYW1lIiwiTmV0d29ya1NlbGVjdEJhc2UiLCJfYSRsYWJlbCIsImxhYmVsIiwiX2EkbmFtZSIsIl9hJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfYSRzdHJvbmciLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsIm9uQ2hhbmdlIiwicmVzdCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2V0U2VsZWN0ZWQiLCJzZWxlY3RlZEl0ZW0iLCJmaW5kIiwiaGFuZGxlUGljayIsImNsb3NlIiwiQ3VzdG9tIiwiYXNzaWduIiwicGFuZWxDbGFzc05hbWUiLCJzZWxlY3RlZFRlbXBsYXRlIiwiX3JlZjIiLCJmb250U2l6ZSIsImp1c3RpZnkiLCJfcmVmMyIsInN0YXR1cyIsImJvZHkiLCJOZXR3b3JrU2VsZWN0Il0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxD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QVE7VUFDbEJDLE1BQU0sRUFBRUEsTUFBTTtVQUNkQyxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBR1YsSUFBSTtZQUFBLE9BQUt3RSxVQUFVLENBQUN4RSxJQUFJLEVBQUV5RSxLQUFLLENBQUM7VUFBQTtRQUFBLENBQUEsQ0FDekM7TUFBQSxDQUFBLENBQ0c7SUFBQTtFQUNSLENBQUEsQ0FBQSxDQUNhO0FBRXBCLENBQUM7QUFFRCxPQUFPLElBQU1XLGFBQWEsZ0JBQUczRyxJQUFJLENBQUM4RSxpQkFBaUIsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9TZWxlY3QvTmV0d29yay9OZXR3b3JrU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvQWxlcnQnO1xuaW1wb3J0IHsgRmxleCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRmxleCc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvSWNvbnMnO1xuaW1wb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9TZWxlY3QnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHkgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuY29uc3QgV1JBUF9DTFMgPSAnb20tbmV0d29yay1zZWxlY3QnO1xuY29uc3QgUEFORUxfQ0xTID0gYCR7V1JBUF9DTFN9LXBhbmVsYDtcbmNvbnN0IElDT05fQ0xTID0gYCR7V1JBUF9DTFN9LWljb25gO1xuY29uc3QgQ0FSRF9DTFMgPSBgJHtXUkFQX0NMU30tY2FyZGA7XG5jb25zdCBDQVJEX0FDVElWRV9DTFMgPSBgJHtDQVJEX0NMU30tYWN0aXZlYDtcbmNvbnN0IElDT05fU0laRSA9IDI0O1xuY29uc3QgQ0hFQ0tfSUNPTl9TSVpFID0gMTY7XG4vKiogQnJhbmQgYmx1ZSDigJQgYHBhbGV0dGUoaWNvbiwgJ2JyYW5kJylgIHJlc29sdmVzIHRvIGAkYmx1ZS03MDBgLiAqL1xuY29uc3QgQ0hFQ0tfQ09MT1IgPSAnIzA3MzM4Nyc7XG5jb25zdCBXQVJOSU5HX0JPRFkgPSAnT25seSBkZXBvc2l0IHlvdXIgYXNzZXQgdXNpbmcgb25lIG9mIHRoZSBzdXBwb3J0ZWQgbmV0d29ya3MgYmVsb3cuIERlcG9zaXRpbmcgdmlhIGFuIHVuc3VwcG9ydGVkIG5ldHdvcmsgd2lsbCByZXN1bHQgaW4gdGhlIHBlcm1hbmVudCBsb3NzIG9mIHlvdXIgZnVuZHMuJztcbmNvbnN0IHJlbmRlclRpbWVNZXRhID0gKGl0ZW0pID0+IChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIGNvbG9yOiAnZGVmYXVsdC1zZWNvbmRhcnknLCBjaGlsZHJlbjogYOKJiCAke2l0ZW0ucHJvY2Vzc2luZ1RpbWV9IG1pbnNgIH0pKTtcbi8qKlxuICogVGhlIG9wdGlvbiBsaXN0IGFzIGFuIGFjY2Vzc2libGUgbGlzdGJveC4gYFNlbGVjdC5DdXN0b21gIG1vdW50cyB0aGUgcGFuZWxcbiAqIGZyZXNoIG9uIGV2ZXJ5IG9wZW4sIHNvIHRoZSBtb3VudCBlZmZlY3QgbGFuZHMgZm9jdXMgb24gdGhlIGFjdGl2ZSBvcHRpb24sXG4gKiBhbmQgYXJyb3cga2V5cyByb2FtIGZvY3VzIGJldHdlZW4gb3B0aW9ucyAoRW50ZXIgLyBTcGFjZSBhcmUgaGFuZGxlZFxuICogbmF0aXZlbHkgYnkgdGhlIGA8YnV0dG9uPmAgZWxlbWVudHMpLlxuICovXG5jb25zdCBOZXR3b3JrT3B0aW9uTGlzdCA9ICh7IG9wdGlvbnMsIHNlbGVjdGVkLCBzdHJvbmcsIG9uUGljayB9KSA9PiB7XG4gICAgY29uc3QgaXRlbXNSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGRpZEZvY3VzUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChkaWRGb2N1c1JlZi5jdXJyZW50IHx8IG9wdGlvbnMubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBkaWRGb2N1c1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgaW5pdGlhbEluZGV4ID0gTWF0aC5tYXgoMCwgb3B0aW9ucy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0ubmV0d29yayA9PT0gc2VsZWN0ZWQpKTtcbiAgICAgICAgKF9hID0gaXRlbXNSZWYuY3VycmVudFtpbml0aWFsSW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0sIFtvcHRpb25zLCBzZWxlY3RlZF0pO1xuICAgIGNvbnN0IGZvY3VzSXRlbUF0ID0gKGluZGV4KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgY291bnQgPSBvcHRpb25zLmxlbmd0aDtcbiAgICAgICAgaWYgKGNvdW50ID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZXh0ID0gKChpbmRleCAlIGNvdW50KSArIGNvdW50KSAlIGNvdW50O1xuICAgICAgICAoX2EgPSBpdGVtc1JlZi5jdXJyZW50W25leHRdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiBmYWxzZSB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IGl0ZW1zUmVmLmN1cnJlbnQuZmluZEluZGV4KChlbCkgPT4gZWwgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZm9jdXNJdGVtQXQoY3VycmVudCArIDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZm9jdXNJdGVtQXQoY3VycmVudCAtIDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBmb2N1c0l0ZW1BdCgwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBmb2N1c0l0ZW1BdChvcHRpb25zLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIChfanN4KEZsZXgsIHsgdmVydGljYWw6IHRydWUsIGdhcDogOCwgcm9sZTogJ2xpc3Rib3gnLCBvbktleURvd246IGhhbmRsZUtleURvd24sIGNoaWxkcmVuOiBvcHRpb25zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGl0ZW0ubmV0d29yayA9PT0gc2VsZWN0ZWQ7XG4gICAgICAgICAgICByZXR1cm4gKF9qc3hzKFwiYnV0dG9uXCIsIHsgcmVmOiAoZWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbXNSZWYuY3VycmVudFtpbmRleF0gPSBlbDtcbiAgICAgICAgICAgICAgICB9LCB0eXBlOiAnYnV0dG9uJywgcm9sZTogJ29wdGlvbicsIFwiYXJpYS1zZWxlY3RlZFwiOiBhY3RpdmUsIGNsYXNzTmFtZTogam9pbkNscyhDQVJEX0NMUywgYWN0aXZlICYmIENBUkRfQUNUSVZFX0NMUyksIG9uQ2xpY2s6ICgpID0+IG9uUGljayhpdGVtKSwgY2hpbGRyZW46IFtfanN4KFwiaW1nXCIsIHsgc3JjOiBpdGVtLmljb25VcmwsIGFsdDogaXRlbS5uZXR3b3JrRGVzYywgd2lkdGg6IElDT05fU0laRSwgaGVpZ2h0OiBJQ09OX1NJWkUsIGNsYXNzTmFtZTogSUNPTl9DTFMgfSksIF9qc3hzKEZsZXgsIHsgdmVydGljYWw6IHRydWUsIGdhcDogMCwgYWxpZ246ICdzdGFydCcsIHN0eWxlOiB7IG1pbldpZHRoOiAwLCBmbGV4OiAxIH0sIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnbWQnLCBzdHJvbmc6IHN0cm9uZywgY29sb3I6ICdkZWZhdWx0JywgY2hpbGRyZW46IGl0ZW0ubmV0d29ya1N5bWJvbCB9KSwgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnc20nLCBjb2xvcjogJ2RlZmF1bHQtc2Vjb25kYXJ5JywgY2hpbGRyZW46IGl0ZW0ubmV0d29ya0Rlc2MgfSldIH0pLCByZW5kZXJUaW1lTWV0YShpdGVtKSwgYWN0aXZlID8gX2pzeChJY29ucywgeyBuYW1lOiAnY2hlY2snLCBzaXplOiBDSEVDS19JQ09OX1NJWkUsIGNvbG9yOiBDSEVDS19DT0xPUiB9KSA6IG51bGxdIH0sIGl0ZW0ubmV0d29yaykpO1xuICAgICAgICB9KSB9KSk7XG59O1xuY29uc3QgTmV0d29ya1NlbGVjdEJhc2UgPSAoX2EpID0+IHtcbiAgICB2YXIgeyBvcHRpb25zLCBjbGFzc05hbWUsIGxhYmVsID0gJ05ldHdvcmsnLCBuYW1lID0gJ25ldHdvcmsnLCBwbGFjZWhvbGRlciA9ICdTZWxlY3QgbmV0d29yaycsIHN0cm9uZyA9IHRydWUsIHZhbHVlLCBkZWZhdWx0VmFsdWUsIG9uQ2hhbmdlIH0gPSBfYSwgcmVzdCA9IF9fcmVzdChfYSwgW1wib3B0aW9uc1wiLCBcImNsYXNzTmFtZVwiLCBcImxhYmVsXCIsIFwibmFtZVwiLCBcInBsYWNlaG9sZGVyXCIsIFwic3Ryb25nXCIsIFwidmFsdWVcIiwgXCJkZWZhdWx0VmFsdWVcIiwgXCJvbkNoYW5nZVwiXSk7XG4gICAgY29uc3QgW3NlbGVjdGVkLCBzZXRTZWxlY3RlZF0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlLCB2YWx1ZSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdXNlTWVtbygoKSA9PiBvcHRpb25zLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmV0d29yayA9PT0gc2VsZWN0ZWQpLCBbb3B0aW9ucywgc2VsZWN0ZWRdKTtcbiAgICBjb25zdCBoYW5kbGVQaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoaXRlbSwgY2xvc2UpID0+IHtcbiAgICAgICAgc2V0U2VsZWN0ZWQoaXRlbS5uZXR3b3JrKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGl0ZW0ubmV0d29yaywgaXRlbSk7XG4gICAgICAgIGNsb3NlKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIChfanN4KFNlbGVjdC5DdXN0b20sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgbmFtZTogbmFtZSwgbGFiZWw6IGxhYmVsLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIGNsYXNzTmFtZTogam9pbkNscyhXUkFQX0NMUywgY2xhc3NOYW1lKSwgcGFuZWxDbGFzc05hbWU6IFBBTkVMX0NMUywgc2VsZWN0ZWRUZW1wbGF0ZTogc2VsZWN0ZWRJdGVtXG4gICAgICAgICAgICA/ICh7IGZvbnRTaXplIH0pID0+IChfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywganVzdGlmeTogJ3NwYWNlLWJldHdlZW4nLCBnYXA6IDgsIHN0eWxlOiB7IHdpZHRoOiAnMTAwJScgfSwgY2hpbGRyZW46IFtfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywgZ2FwOiA4LCBjaGlsZHJlbjogW19qc3goXCJpbWdcIiwgeyBzcmM6IHNlbGVjdGVkSXRlbS5pY29uVXJsLCBhbHQ6IHNlbGVjdGVkSXRlbS5uZXR3b3JrRGVzYywgd2lkdGg6IElDT05fU0laRSwgaGVpZ2h0OiBJQ09OX1NJWkUsIGNsYXNzTmFtZTogSUNPTl9DTFMgfSksIF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogZm9udFNpemUsIHN0cm9uZzogc3Ryb25nLCBjaGlsZHJlbjogc2VsZWN0ZWRJdGVtLm5ldHdvcmtTeW1ib2wgfSldIH0pLCByZW5kZXJUaW1lTWV0YShzZWxlY3RlZEl0ZW0pXSB9KSlcbiAgICAgICAgICAgIDogbnVsbCwgY2hpbGRyZW46ICh7IGNsb3NlIH0pID0+IChfanN4cyhGbGV4LCB7IHZlcnRpY2FsOiB0cnVlLCBnYXA6IDgsIGNoaWxkcmVuOiBbX2pzeChBbGVydCwgeyBzdGF0dXM6ICd3YXJuaW5nJywgYm9keTogV0FSTklOR19CT0RZIH0pLCBfanN4KE5ldHdvcmtPcHRpb25MaXN0LCB7IG9wdGlvbnM6IG9wdGlvbnMsIHNlbGVjdGVkOiBzZWxlY3RlZCwgc3Ryb25nOiBzdHJvbmcsIG9uUGljazogKGl0ZW0pID0+IGhhbmRsZVBpY2soaXRlbSwgY2xvc2UpIH0pXSB9KSkgfSkpKTtcbn07XG5leHBvcnQgY29uc3QgTmV0d29ya1NlbGVjdCA9IG1lbW8oTmV0d29ya1NlbGVjdEJhc2UpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
134
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL1NlbGVjdC9OZXR3b3JrL05ldHdvcmtTZWxlY3QuanMiLCJidXNpbmVzcy9TZWxlY3Qvc3JjL2J1c2luZXNzL1NlbGVjdC9OZXR3b3JrL05ldHdvcmtTZWxlY3QudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwibWVtbyIsInVzZU1lbW8iLCJ1c2VFdmVudENhbGxiYWNrIiwiQWxlcnQiLCJGbGV4IiwiU2VsZWN0IiwiVHlwb2dyYXBoeUJvZHkiLCJqb2luQ2xzIiwiV1JBUF9DTFMiLCJJQ09OX0NMUyIsImNvbmNhdCIsIklDT05fU0laRSIsIldBUk5JTkdfQk9EWSIsInJlbmRlclRpbWVNZXRhIiwiaXRlbSIsInNpemUiLCJjb2xvciIsImNoaWxkcmVuIiwicHJvY2Vzc2luZ1RpbWUiLCJOZXR3b3JrU2VsZWN0QmFzZSIsIl9hIiwib3B0aW9ucyIsImNsYXNzTmFtZSIsIl9hJGxhYmVsIiwibGFiZWwiLCJfYSRuYW1lIiwibmFtZSIsIl9hJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfYSRzdHJvbmciLCJzdHJvbmciLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsIm9uQ2hhbmdlIiwicmVzdCIsInNlbGVjdE9wdGlvbnMiLCJtYXAiLCJuZXR3b3JrIiwibmV0d29ya1N5bWJvbCIsImRlc2NyaXB0aW9uIiwibmV0d29ya0Rlc2MiLCJyYXciLCJoYW5kbGVDaGFuZ2UiLCJuZXh0Iiwib3B0aW9uIiwiZmluZCIsInJlbmRlck9wdGlvbkNvbnRlbnQiLCJzcmMiLCJpY29uVXJsIiwiYWx0Iiwid2lkdGgiLCJoZWlnaHQiLCJ2ZXJ0aWNhbCIsImdhcCIsImFsaWduIiwic3R5bGUiLCJtaW5XaWR0aCIsImZsZXgiLCJyZW5kZXJWYWx1ZSIsIm1ldGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb250U2l6ZSIsImFzc2lnbiIsInBhbmVsSGVhZGVyIiwic3RhdHVzIiwiYm9keSIsIk5ldHdvcmtTZWxlY3QiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNDLFNBQVMsQ0FBQ08sb0JBQW9CLENBQUNMLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEVBQzFFUixDQUFDLENBQUNDLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsR0FB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Q0FBQSxDQUNKO0lBQUEsQ0FBQSxDQUNaO0VBRVgsQ0FBQztFQUVELE9BQ0UzQyxJQUFBLENBQUNVLE1BQU0sRUFBQXBCLE1BQUEsQ0FBQThFLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDRDdCLElBQUksRUFBQTtJQUNSUixJQUFJLEVBQUVBLElBQUk7SUFDVkYsS0FBSyxFQUFFQSxLQUFLO0lBQ1pJLFdBQVcsRUFBRUEsV0FBVztJQUN4Qk4sU0FBUyxFQUFFZixPQUFPLENBQUNDLFFBQVEsRUFBRWMsU0FBUyxDQUFDO0lBQ3ZDRCxPQUFPLEVBQUVjLGFBQWE7SUFDdEJKLEtBQUssRUFBRUEsS0FBSztJQUNaQyxZQUFZLEVBQUVBLFlBQVk7SUFDMUJnQyxXQUFXLEVBQUVyRSxJQUFBLENBQUNRLEtBQUssRUFBQTtNQUFDOEQsTUFBTSxFQUFDLFNBQVM7TUFBQ0MsSUFBSSxFQUFFdEQ7SUFBWSxDQUFBLENBQUk7SUFDM0RrQyxtQkFBbUIsRUFBRUEsbUJBQW1CO0lBQ3hDWSxXQUFXLEVBQUVBLFdBQVc7SUFDeEJ6QixRQUFRLEVBQUVTO0VBQVksQ0FBQSxDQUFBLENBQ3RCO0FBRU4sQ0FBQztBQUVELE9BQU8sSUFBTXlCLGFBQWEsZ0JBQUduRSxJQUFJLENBQUNtQixpQkFBaUIsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9TZWxlY3QvTmV0d29yay9OZXR3b3JrU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9BbGVydCc7XG5pbXBvcnQgeyBGbGV4IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9GbGV4JztcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvU2VsZWN0JztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IFdSQVBfQ0xTID0gJ29tLW5ldHdvcmstc2VsZWN0JztcbmNvbnN0IElDT05fQ0xTID0gYCR7V1JBUF9DTFN9LWljb25gO1xuY29uc3QgSUNPTl9TSVpFID0gMjQ7XG5jb25zdCBXQVJOSU5HX0JPRFkgPSAnT25seSBkZXBvc2l0IHlvdXIgYXNzZXQgdXNpbmcgb25lIG9mIHRoZSBzdXBwb3J0ZWQgbmV0d29ya3MgYmVsb3cuIERlcG9zaXRpbmcgdmlhIGFuIHVuc3VwcG9ydGVkIG5ldHdvcmsgd2lsbCByZXN1bHQgaW4gdGhlIHBlcm1hbmVudCBsb3NzIG9mIHlvdXIgZnVuZHMuJztcbmNvbnN0IHJlbmRlclRpbWVNZXRhID0gKGl0ZW0pID0+IChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIGNvbG9yOiAnZGVmYXVsdC1zZWNvbmRhcnknLCBjaGlsZHJlbjogYOKJiCAke2l0ZW0ucHJvY2Vzc2luZ1RpbWV9IG1pbnNgIH0pKTtcbmNvbnN0IE5ldHdvcmtTZWxlY3RCYXNlID0gKF9hKSA9PiB7XG4gICAgdmFyIHsgb3B0aW9ucywgY2xhc3NOYW1lLCBsYWJlbCA9ICdOZXR3b3JrJywgbmFtZSA9ICduZXR3b3JrJywgcGxhY2Vob2xkZXIgPSAnU2VsZWN0IG5ldHdvcmsnLCBzdHJvbmcgPSB0cnVlLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBvbkNoYW5nZSB9ID0gX2EsIHJlc3QgPSBfX3Jlc3QoX2EsIFtcIm9wdGlvbnNcIiwgXCJjbGFzc05hbWVcIiwgXCJsYWJlbFwiLCBcIm5hbWVcIiwgXCJwbGFjZWhvbGRlclwiLCBcInN0cm9uZ1wiLCBcInZhbHVlXCIsIFwiZGVmYXVsdFZhbHVlXCIsIFwib25DaGFuZ2VcIl0pO1xuICAgIC8vIEFkYXB0IHRoZSBiYWNrZW5kIHBheWxvYWQgdG8gdGhlIHNoYXJlZCBgU2VsZWN0YCwgd2hpY2ggb3ducyBzZWxlY3Rpb25cbiAgICAvLyBzdGF0ZSwga2V5Ym9hcmQgbmF2aWdhdGlvbiwgYW5kIHRoZSB0cmFpbGluZyBzZWxlY3RlZCBjaGVjay5cbiAgICBjb25zdCBzZWxlY3RPcHRpb25zID0gdXNlTWVtbygoKSA9PiBvcHRpb25zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgdmFsdWU6IGl0ZW0ubmV0d29yayxcbiAgICAgICAgbGFiZWw6IGl0ZW0ubmV0d29ya1N5bWJvbCxcbiAgICAgICAgZGVzY3JpcHRpb246IGl0ZW0ubmV0d29ya0Rlc2MsXG4gICAgICAgIHJhdzogaXRlbSxcbiAgICB9KSksIFtvcHRpb25zXSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dCwgb3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHR5cGVvZiBuZXh0ICE9PSAnc3RyaW5nJylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgaXRlbSA9IChfYSA9IG9wdGlvbiA9PT0gbnVsbCB8fCBvcHRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbi5yYXcpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG9wdGlvbnMuZmluZCgobmV0d29yaykgPT4gbmV0d29yay5uZXR3b3JrID09PSBuZXh0KTtcbiAgICAgICAgaWYgKGl0ZW0pXG4gICAgICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UobmV4dCwgaXRlbSk7XG4gICAgfSk7XG4gICAgLy8gQ3VzdG9tIG9wdGlvbiBib2R5IOKAlCBpY29uLCB0d28tbGluZSBzeW1ib2wvZGVzY3JpcHRpb24sIGFuZCBwcm9jZXNzaW5nXG4gICAgLy8gdGltZS4gVGhlIHNoYXJlZCBgU2VsZWN0YCBhcHBlbmRzIHRoZSBicmFuZC1jb2xvcmVkIHNlbGVjdGVkIGNoZWNrLlxuICAgIGNvbnN0IHJlbmRlck9wdGlvbkNvbnRlbnQgPSAob3B0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBvcHRpb24ucmF3O1xuICAgICAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW19qc3goXCJpbWdcIiwgeyBzcmM6IGl0ZW0uaWNvblVybCwgYWx0OiBpdGVtLm5ldHdvcmtEZXNjLCB3aWR0aDogSUNPTl9TSVpFLCBoZWlnaHQ6IElDT05fU0laRSwgY2xhc3NOYW1lOiBJQ09OX0NMUyB9KSwgX2pzeHMoRmxleCwgeyB2ZXJ0aWNhbDogdHJ1ZSwgZ2FwOiAwLCBhbGlnbjogJ3N0YXJ0Jywgc3R5bGU6IHsgbWluV2lkdGg6IDAsIGZsZXg6IDEgfSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdtZCcsIHN0cm9uZzogc3Ryb25nLCBjb2xvcjogJ2RlZmF1bHQnLCBjaGlsZHJlbjogaXRlbS5uZXR3b3JrU3ltYm9sIH0pLCBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIGNvbG9yOiAnZGVmYXVsdC1zZWNvbmRhcnknLCBjaGlsZHJlbjogaXRlbS5uZXR3b3JrRGVzYyB9KV0gfSksIHJlbmRlclRpbWVNZXRhKGl0ZW0pXSB9KSk7XG4gICAgfTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZSA9IChvcHRpb24sIG1ldGEpID0+IHtcbiAgICAgICAgLy8gYFNlbGVjdGAgY2FsbHMgYHJlbmRlclZhbHVlKG51bGwpYCB3aGVuIG5vdGhpbmcgaXMgc2VsZWN0ZWQsIHNvIHRoZVxuICAgICAgICAvLyBwbGFjZWhvbGRlciBmYWxsYmFjayBpcyB0aGlzIGZ1bmN0aW9uJ3MgcmVzcG9uc2liaWxpdHkuXG4gICAgICAgIGlmICghb3B0aW9uIHx8IEFycmF5LmlzQXJyYXkob3B0aW9uKSlcbiAgICAgICAgICAgIHJldHVybiBwbGFjZWhvbGRlcjtcbiAgICAgICAgY29uc3QgaXRlbSA9IG9wdGlvbi5yYXc7XG4gICAgICAgIHJldHVybiAoX2pzeHMoRmxleCwgeyBhbGlnbjogJ2NlbnRlcicsIGdhcDogOCwgY2hpbGRyZW46IFtfanN4KFwiaW1nXCIsIHsgc3JjOiBpdGVtLmljb25VcmwsIGFsdDogaXRlbS5uZXR3b3JrRGVzYywgd2lkdGg6IElDT05fU0laRSwgaGVpZ2h0OiBJQ09OX1NJWkUsIGNsYXNzTmFtZTogSUNPTl9DTFMgfSksIF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogbWV0YS5mb250U2l6ZSwgc3Ryb25nOiBzdHJvbmcsIGNoaWxkcmVuOiBpdGVtLm5ldHdvcmtTeW1ib2wgfSldIH0pKTtcbiAgICB9O1xuICAgIHJldHVybiAoX2pzeChTZWxlY3QsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgbmFtZTogbmFtZSwgbGFiZWw6IGxhYmVsLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIGNsYXNzTmFtZTogam9pbkNscyhXUkFQX0NMUywgY2xhc3NOYW1lKSwgb3B0aW9uczogc2VsZWN0T3B0aW9ucywgdmFsdWU6IHZhbHVlLCBkZWZhdWx0VmFsdWU6IGRlZmF1bHRWYWx1ZSwgcGFuZWxIZWFkZXI6IF9qc3goQWxlcnQsIHsgc3RhdHVzOiAnd2FybmluZycsIGJvZHk6IFdBUk5JTkdfQk9EWSB9KSwgcmVuZGVyT3B0aW9uQ29udGVudDogcmVuZGVyT3B0aW9uQ29udGVudCwgcmVuZGVyVmFsdWU6IHJlbmRlclZhbHVlLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlIH0pKSk7XG59O1xuZXhwb3J0IGNvbnN0IE5ldHdvcmtTZWxlY3QgPSBtZW1vKE5ldHdvcmtTZWxlY3RCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,4 +1,4 @@
1
- import type { SelectCustomProps } from "../../../components/Select";
1
+ import type { SelectProps } from "../../../components/Select";
2
2
  /**
3
3
  * Single crypto network entry as returned by 1money's `/private/currencies`
4
4
  * endpoint (`data.crypto[i].networks[j]`). Pass the array through as-is —
@@ -25,7 +25,7 @@ export interface NetworkItem {
25
25
  /** Estimated processing time in minutes, e.g. `4`. */
26
26
  processingTime: number;
27
27
  }
28
- export interface NetworkSelectProps extends Omit<SelectCustomProps, 'selectedTemplate' | 'children' | 'arrow' | 'panelClassName' | 'panelFooter' | 'onChange'> {
28
+ export interface NetworkSelectProps extends Omit<SelectProps, 'options' | 'value' | 'defaultValue' | 'onChange' | 'multiple' | 'renderOption' | 'renderOptionContent' | 'renderValue' | 'panelHeader' | 'panelFooter'> {
29
29
  /**
30
30
  * Crypto networks returned by 1money's `/private/currencies` endpoint
31
31
  * (`data.crypto[i].networks`). Pass through as-is — the component
@@ -27,30 +27,4 @@
27
27
  -o-object-fit: cover;
28
28
  object-fit: cover;
29
29
  border-radius: var(--om-radius-full, 9999px);
30
- }
31
-
32
- .om-network-select-panel {
33
- padding: var(--om-spacing-200, 8px);
34
- }
35
- .om-network-select-panel .om-network-select-card {
36
- display: flex;
37
- gap: var(--om-spacing-200, 8px);
38
- align-items: center;
39
- width: 100%;
40
- padding: var(--om-spacing-200, 8px) var(--om-spacing-300, 12px);
41
- color: var(--om-text-default, #131313);
42
- text-align: left;
43
- background-color: transparent;
44
- border: none;
45
- border-radius: var(--om-radius-200, 8px);
46
- cursor: pointer;
47
- transition: background-color 0.15s ease;
48
- }
49
- .om-network-select-panel .om-network-select-card:hover,
50
- .om-network-select-panel .om-network-select-card-active {
51
- background-color: var(--om-bg-default-secondary, #f8f8f8);
52
- }
53
- .om-network-select-panel .om-network-select-card:focus-visible {
54
- outline: 2px solid var(--om-border-brand, #073387);
55
- outline-offset: 2px;
56
30
  }