@1money/component-ui 0.0.64-alpha.1 → 0.0.64-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/es/business/Select/Asset/AssetSelect.js +22 -3
  2. package/es/business/Select/Asset/style/AssetSelect.css +5 -7
  3. package/es/business/Select/Currency/CurrencySelect.d.ts +2 -0
  4. package/es/business/Select/Currency/CurrencySelect.js +117 -0
  5. package/es/business/Select/Currency/index.d.ts +2 -0
  6. package/es/business/Select/Currency/index.js +3 -0
  7. package/es/business/Select/Currency/interface.d.ts +50 -0
  8. package/es/business/Select/Currency/interface.js +2 -0
  9. package/es/business/Select/Currency/style/CurrencySelect.css +34 -0
  10. package/es/business/Select/Currency/style/css.js +2 -0
  11. package/es/business/Select/Currency/style/index.d.ts +1 -0
  12. package/es/business/Select/Currency/style/index.js +2 -0
  13. package/es/business/Select/Network/NetworkSelect.js +90 -182
  14. package/es/business/Select/Network/interface.d.ts +22 -10
  15. package/es/business/Select/Network/style/NetworkSelect.css +0 -26
  16. package/es/business/Select/PaymentMethod/PaymentMethodSelect.js +14 -8
  17. package/es/business/Select/PaymentMethod/interface.d.ts +11 -0
  18. package/es/business/Select/PaymentMethod/style/PaymentMethodSelect.css +0 -6
  19. package/es/business/Select/index.d.ts +1 -0
  20. package/es/business/Select/index.js +2 -1
  21. package/es/components/Empty/style/Empty.css +1 -0
  22. package/es/components/Select/Select.js +10 -5
  23. package/es/components/Select/interface.d.ts +7 -0
  24. package/es/components/Select/style/Select.css +11 -0
  25. package/es/index.css +1 -1
  26. package/lib/business/Select/Asset/AssetSelect.js +21 -2
  27. package/lib/business/Select/Asset/style/AssetSelect.css +5 -7
  28. package/lib/business/Select/Currency/CurrencySelect.d.ts +2 -0
  29. package/lib/business/Select/Currency/CurrencySelect.js +124 -0
  30. package/lib/business/Select/Currency/index.d.ts +2 -0
  31. package/lib/business/Select/Currency/index.js +28 -0
  32. package/lib/business/Select/Currency/interface.d.ts +50 -0
  33. package/lib/business/Select/Currency/interface.js +6 -0
  34. package/lib/business/Select/Currency/style/CurrencySelect.css +34 -0
  35. package/lib/business/Select/Currency/style/css.js +4 -0
  36. package/lib/business/Select/Currency/style/index.d.ts +1 -0
  37. package/lib/business/Select/Currency/style/index.js +4 -0
  38. package/lib/business/Select/Network/NetworkSelect.js +87 -180
  39. package/lib/business/Select/Network/interface.d.ts +22 -10
  40. package/lib/business/Select/Network/style/NetworkSelect.css +0 -26
  41. package/lib/business/Select/PaymentMethod/PaymentMethodSelect.js +14 -8
  42. package/lib/business/Select/PaymentMethod/interface.d.ts +11 -0
  43. package/lib/business/Select/PaymentMethod/style/PaymentMethodSelect.css +0 -6
  44. package/lib/business/Select/index.d.ts +1 -0
  45. package/lib/business/Select/index.js +12 -1
  46. package/lib/components/Empty/style/Empty.css +1 -0
  47. package/lib/components/Select/Select.js +10 -5
  48. package/lib/components/Select/interface.d.ts +7 -0
  49. package/lib/components/Select/style/Select.css +11 -0
  50. package/lib/index.css +1 -1
  51. package/package.json +6 -1
  52. package/scripts/mcp-server/index.generated.json +8 -0
@@ -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,141 +6,27 @@ 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.';
21
+ /** Display-only: the all-caps `network` id with just its first letter capitalized, e.g. `"ETHEREUM"` → `"Ethereum"`. The bound value stays the raw id. */
22
+ var formatNetwork = function formatNetwork(network) {
23
+ return network ? network.charAt(0).toUpperCase() + network.slice(1).toLowerCase() : network;
24
+ };
29
25
  var renderTimeMeta = function renderTimeMeta(item) {
30
26
  return _jsx(TypographyBody, {
31
27
  size: 'sm',
32
28
  color: 'default-secondary',
33
- children: "\u2248 ".concat(item.processingTime, " mins")
34
- });
35
- };
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
- })
29
+ children: item.txLatency
145
30
  });
146
31
  };
147
32
  var NetworkSelectBase = function NetworkSelectBase(_a) {
@@ -159,71 +44,94 @@ var NetworkSelectBase = function NetworkSelectBase(_a) {
159
44
  defaultValue = _a.defaultValue,
160
45
  onChange = _a.onChange,
161
46
  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;
47
+ // Adapt the backend payload to the shared `Select`, which owns selection
48
+ // state, keyboard navigation, and the trailing selected check.
49
+ var selectOptions = useMemo(function () {
50
+ return options.map(function (item) {
51
+ return {
52
+ value: item.network,
53
+ label: item.networkDesc,
54
+ raw: item
55
+ };
56
+ });
57
+ }, [options]);
58
+ var handleChange = useEventCallback(function (next, option) {
59
+ var _a;
60
+ if (typeof next !== 'string') return;
61
+ var item = (_a = option === null || option === void 0 ? void 0 : option.raw) !== null && _a !== void 0 ? _a : options.find(function (network) {
62
+ return network.network === next;
169
63
  });
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();
64
+ if (item) onChange === null || onChange === void 0 ? void 0 : onChange(next, item);
175
65
  });
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,
66
+ // Custom option body — icon, two lines (network id + display name), and
67
+ // latency. The shared `Select` appends the brand-colored selected check.
68
+ var renderOptionContent = function renderOptionContent(option) {
69
+ var item = option.raw;
70
+ return _jsxs(_Fragment, {
71
+ children: [_jsx("img", {
72
+ src: item.iconUrl,
73
+ alt: item.networkDesc,
74
+ width: ICON_SIZE,
75
+ height: ICON_SIZE,
76
+ className: ICON_CLS
77
+ }), _jsxs(Flex, {
78
+ vertical: true,
79
+ gap: 0,
80
+ align: 'start',
188
81
  style: {
189
- width: '100%'
82
+ minWidth: 0,
83
+ flex: 1
190
84
  },
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,
85
+ children: [_jsx(TypographyBody, {
86
+ size: 'md',
219
87
  strong: strong,
220
- onPick: function onPick(item) {
221
- return handlePick(item, close);
222
- }
88
+ color: 'default',
89
+ children: formatNetwork(item.network)
90
+ }), _jsx(TypographyBody, {
91
+ size: 'sm',
92
+ color: 'default-secondary',
93
+ children: item.networkDesc
223
94
  })]
224
- });
225
- }
95
+ }), renderTimeMeta(item)]
96
+ });
97
+ };
98
+ var renderValue = function renderValue(option, meta) {
99
+ // `Select` calls `renderValue(null)` when nothing is selected, so the
100
+ // placeholder fallback is this function's responsibility.
101
+ if (!option || Array.isArray(option)) return placeholder;
102
+ var item = option.raw;
103
+ return _jsxs(Flex, {
104
+ align: 'center',
105
+ gap: 8,
106
+ children: [_jsx("img", {
107
+ src: item.iconUrl,
108
+ alt: item.networkDesc,
109
+ width: ICON_SIZE,
110
+ height: ICON_SIZE,
111
+ className: ICON_CLS
112
+ }), _jsx(TypographyBody, {
113
+ size: meta.fontSize,
114
+ strong: strong,
115
+ children: formatNetwork(item.network)
116
+ })]
117
+ });
118
+ };
119
+ return _jsx(Select, Object.assign({}, rest, {
120
+ name: name,
121
+ label: label,
122
+ placeholder: placeholder,
123
+ className: joinCls(WRAP_CLS, className),
124
+ options: selectOptions,
125
+ value: value,
126
+ defaultValue: defaultValue,
127
+ panelHeader: _jsx(Alert, {
128
+ status: 'warning',
129
+ body: WARNING_BODY
130
+ }),
131
+ renderOptionContent: renderOptionContent,
132
+ renderValue: renderValue,
133
+ onChange: handleChange
226
134
  }));
227
135
  };
228
136
  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==
137
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL1NlbGVjdC9OZXR3b3JrL05ldHdvcmtTZWxlY3QuanMiLCJidXNpbmVzcy9TZWxlY3Qvc3JjL2J1c2luZXNzL1NlbGVjdC9OZXR3b3JrL05ldHdvcmtTZWxlY3QudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwibWVtbyIsInVzZU1lbW8iLCJ1c2VFdmVudENhbGxiYWNrIiwiQWxlcnQiLCJGbGV4IiwiU2VsZWN0IiwiVHlwb2dyYXBoeUJvZHkiLCJqb2luQ2xzIiwiV1JBUF9DTFMiLCJJQ09OX0NMUyIsImNvbmNhdCIsIklDT05fU0laRSIsIldBUk5JTkdfQk9EWSIsImZvcm1hdE5ldHdvcmsiLCJuZXR3b3JrIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsInRvTG93ZXJDYXNlIiwicmVuZGVyVGltZU1ldGEiLCJpdGVtIiwic2l6ZSIsImNvbG9yIiwiY2hpbGRyZW4iLCJ0eExhdGVuY3kiLCJOZXR3b3JrU2VsZWN0QmFzZSIsIl9hIiwib3B0aW9ucyIsImNsYXNzTmFtZSIsIl9hJGxhYmVsIiwibGFiZWwiLCJfYSRuYW1lIiwibmFtZSIsIl9hJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfYSRzdHJvbmciLCJzdHJvbmciLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsIm9uQ2hhbmdlIiwicmVzdCIsInNlbGVjdE9wdGlvbnMiLCJtYXAiLCJuZXR3b3JrRGVzYyIsInJhdyIsImhhbmRsZUNoYW5nZSIsIm5leHQiLCJvcHRpb24iLCJmaW5kIiwicmVuZGVyT3B0aW9uQ29udGVudCIsInNyYyIsImljb25VcmwiLCJhbHQiLCJ3aWR0aCIsImhlaWdodCIsInZlcnRpY2FsIiwiZ2FwIiwiYWxpZ24iLCJzdHlsZSIsIm1pbldpZHRoIiwiZmxleCIsInJlbmRlclZhbHVlIiwibWV0YSIsIkFycmF5IiwiaXNBcnJheSIsImZvbnRTaXplIiwiYXNzaWduIiwicGFuZWxIZWFkZXIiLCJzdGF0dXMiLCJib2R5IiwiTmV0d29ya1NlbGVjdCJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FBQyxHQUFHQyxNQUFNLENBQUNLLHFCQUFxQixDQUFDVCxDQUFDLENBQUMsRUFBRVUsQ0FBQyxHQUFHUCxDQUFDLENBQUNRLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7SUFDcEUsSUFBSVQsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUlOLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDTyxvQkFBb0IsQ0FBQ0wsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsRUFDMUVSLENBQUMsQ0FBQ0MsQ0FB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LEVBQUUxQyxTQUFTO1FBQ2hCMkMsTUFBTSxFQUFFM0MsU0FBUztRQUNqQmlCLFNBQVMsRUFBRW5CO01BQVEsQ0FBQSxDQUNuQixFQUNGZCxJQUFBLENBQUNXLGNBQWMsRUFBQTtRQUFDZSxJQUFJLEVBQUV5QyxJQUFJLENBQUNHLFFBQVE7UUFBRTdCLE1BQU0sRUFBRUEsTUFBTTtRQUFBYixRQUFBLEVBQ2hEVixhQUFhLENBQUNPLElBQUksQ0FBQ04sT0FBTztNQUFDLENBQUEsQ0FDYjtJQUFBLENBQUEsQ0FDWjtFQUVYLENBQUM7RUFFRCxPQUNFbkIsSUFBQSxDQUFDVSxNQUFNLEVBQUFwQixNQUFBLENBQUFpRixNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ0QxQixJQUFJLEVBQUE7SUFDUlIsSUFBSSxFQUFFQSxJQUFJO0lBQ1ZGLEtBQUssRUFBRUEsS0FBSztJQUNaSSxXQUFXLEVBQUVBLFdBQVc7SUFDeEJOLFNBQVMsRUFBRXJCLE9BQU8sQ0FBQ0MsUUFBUSxFQUFFb0IsU0FBUyxDQUFDO0lBQ3ZDRCxPQUFPLEVBQUVjLGFBQWE7SUFDdEJKLEtBQUssRUFBRUEsS0FBSztJQUNaQyxZQUFZLEVBQUVBLFlBQVk7SUFDMUI2QixXQUFXLEVBQUV4RSxJQUFBLENBQUNRLEtBQUssRUFBQTtNQUFDaUUsTUFBTSxFQUFDLFNBQVM7TUFBQ0MsSUFBSSxFQUFFekQ7SUFBWSxDQUFBLENBQUk7SUFDM0RxQyxtQkFBbUIsRUFBRUEsbUJBQW1CO0lBQ3hDWSxXQUFXLEVBQUVBLFdBQVc7SUFDeEJ0QixRQUFRLEVBQUVNO0VBQVksQ0FBQSxDQUFBLENBQ3RCO0FBRU4sQ0FBQztBQUVELE9BQU8sSUFBTXlCLGFBQWEsZ0JBQUd0RSxJQUFJLENBQUN5QixpQkFBaUIsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9TZWxlY3QvTmV0d29yay9OZXR3b3JrU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9BbGVydCc7XG5pbXBvcnQgeyBGbGV4IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9GbGV4JztcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvU2VsZWN0JztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IFdSQVBfQ0xTID0gJ29tLW5ldHdvcmstc2VsZWN0JztcbmNvbnN0IElDT05fQ0xTID0gYCR7V1JBUF9DTFN9LWljb25gO1xuY29uc3QgSUNPTl9TSVpFID0gMjQ7XG5jb25zdCBXQVJOSU5HX0JPRFkgPSAnT25seSBkZXBvc2l0IHlvdXIgYXNzZXQgdXNpbmcgb25lIG9mIHRoZSBzdXBwb3J0ZWQgbmV0d29ya3MgYmVsb3cuIERlcG9zaXRpbmcgdmlhIGFuIHVuc3VwcG9ydGVkIG5ldHdvcmsgd2lsbCByZXN1bHQgaW4gdGhlIHBlcm1hbmVudCBsb3NzIG9mIHlvdXIgZnVuZHMuJztcbi8qKiBEaXNwbGF5LW9ubHk6IHRoZSBhbGwtY2FwcyBgbmV0d29ya2AgaWQgd2l0aCBqdXN0IGl0cyBmaXJzdCBsZXR0ZXIgY2FwaXRhbGl6ZWQsIGUuZy4gYFwiRVRIRVJFVU1cImAg4oaSIGBcIkV0aGVyZXVtXCJgLiBUaGUgYm91bmQgdmFsdWUgc3RheXMgdGhlIHJhdyBpZC4gKi9cbmNvbnN0IGZvcm1hdE5ldHdvcmsgPSAobmV0d29yaykgPT4gbmV0d29yayA/IG5ldHdvcmsuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBuZXR3b3JrLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCkgOiBuZXR3b3JrO1xuY29uc3QgcmVuZGVyVGltZU1ldGEgPSAoaXRlbSkgPT4gKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogJ3NtJywgY29sb3I6ICdkZWZhdWx0LXNlY29uZGFyeScsIGNoaWxkcmVuOiBpdGVtLnR4TGF0ZW5jeSB9KSk7XG5jb25zdCBOZXR3b3JrU2VsZWN0QmFzZSA9IChfYSkgPT4ge1xuICAgIHZhciB7IG9wdGlvbnMsIGNsYXNzTmFtZSwgbGFiZWwgPSAnTmV0d29yaycsIG5hbWUgPSAnbmV0d29yaycsIHBsYWNlaG9sZGVyID0gJ1NlbGVjdCBuZXR3b3JrJywgc3Ryb25nID0gdHJ1ZSwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgb25DaGFuZ2UgfSA9IF9hLCByZXN0ID0gX19yZXN0KF9hLCBbXCJvcHRpb25zXCIsIFwiY2xhc3NOYW1lXCIsIFwibGFiZWxcIiwgXCJuYW1lXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJzdHJvbmdcIiwgXCJ2YWx1ZVwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcIm9uQ2hhbmdlXCJdKTtcbiAgICAvLyBBZGFwdCB0aGUgYmFja2VuZCBwYXlsb2FkIHRvIHRoZSBzaGFyZWQgYFNlbGVjdGAsIHdoaWNoIG93bnMgc2VsZWN0aW9uXG4gICAgLy8gc3RhdGUsIGtleWJvYXJkIG5hdmlnYXRpb24sIGFuZCB0aGUgdHJhaWxpbmcgc2VsZWN0ZWQgY2hlY2suXG4gICAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gb3B0aW9ucy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgIHZhbHVlOiBpdGVtLm5ldHdvcmssXG4gICAgICAgIGxhYmVsOiBpdGVtLm5ldHdvcmtEZXNjLFxuICAgICAgICByYXc6IGl0ZW0sXG4gICAgfSkpLCBbb3B0aW9uc10pO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHQsIG9wdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICh0eXBlb2YgbmV4dCAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGl0ZW0gPSAoX2EgPSBvcHRpb24gPT09IG51bGwgfHwgb3B0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb24ucmF3KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBvcHRpb25zLmZpbmQoKG5ldHdvcmspID0+IG5ldHdvcmsubmV0d29yayA9PT0gbmV4dCk7XG4gICAgICAgIGlmIChpdGVtKVxuICAgICAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHQsIGl0ZW0pO1xuICAgIH0pO1xuICAgIC8vIEN1c3RvbSBvcHRpb24gYm9keSDigJQgaWNvbiwgdHdvIGxpbmVzIChuZXR3b3JrIGlkICsgZGlzcGxheSBuYW1lKSwgYW5kXG4gICAgLy8gbGF0ZW5jeS4gVGhlIHNoYXJlZCBgU2VsZWN0YCBhcHBlbmRzIHRoZSBicmFuZC1jb2xvcmVkIHNlbGVjdGVkIGNoZWNrLlxuICAgIGNvbnN0IHJlbmRlck9wdGlvbkNvbnRlbnQgPSAob3B0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBvcHRpb24ucmF3O1xuICAgICAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW19qc3goXCJpbWdcIiwgeyBzcmM6IGl0ZW0uaWNvblVybCwgYWx0OiBpdGVtLm5ldHdvcmtEZXNjLCB3aWR0aDogSUNPTl9TSVpFLCBoZWlnaHQ6IElDT05fU0laRSwgY2xhc3NOYW1lOiBJQ09OX0NMUyB9KSwgX2pzeHMoRmxleCwgeyB2ZXJ0aWNhbDogdHJ1ZSwgZ2FwOiAwLCBhbGlnbjogJ3N0YXJ0Jywgc3R5bGU6IHsgbWluV2lkdGg6IDAsIGZsZXg6IDEgfSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdtZCcsIHN0cm9uZzogc3Ryb25nLCBjb2xvcjogJ2RlZmF1bHQnLCBjaGlsZHJlbjogZm9ybWF0TmV0d29yayhpdGVtLm5ldHdvcmspIH0pLCBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIGNvbG9yOiAnZGVmYXVsdC1zZWNvbmRhcnknLCBjaGlsZHJlbjogaXRlbS5uZXR3b3JrRGVzYyB9KV0gfSksIHJlbmRlclRpbWVNZXRhKGl0ZW0pXSB9KSk7XG4gICAgfTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZSA9IChvcHRpb24sIG1ldGEpID0+IHtcbiAgICAgICAgLy8gYFNlbGVjdGAgY2FsbHMgYHJlbmRlclZhbHVlKG51bGwpYCB3aGVuIG5vdGhpbmcgaXMgc2VsZWN0ZWQsIHNvIHRoZVxuICAgICAgICAvLyBwbGFjZWhvbGRlciBmYWxsYmFjayBpcyB0aGlzIGZ1bmN0aW9uJ3MgcmVzcG9uc2liaWxpdHkuXG4gICAgICAgIGlmICghb3B0aW9uIHx8IEFycmF5LmlzQXJyYXkob3B0aW9uKSlcbiAgICAgICAgICAgIHJldHVybiBwbGFjZWhvbGRlcjtcbiAgICAgICAgY29uc3QgaXRlbSA9IG9wdGlvbi5yYXc7XG4gICAgICAgIHJldHVybiAoX2pzeHMoRmxleCwgeyBhbGlnbjogJ2NlbnRlcicsIGdhcDogOCwgY2hpbGRyZW46IFtfanN4KFwiaW1nXCIsIHsgc3JjOiBpdGVtLmljb25VcmwsIGFsdDogaXRlbS5uZXR3b3JrRGVzYywgd2lkdGg6IElDT05fU0laRSwgaGVpZ2h0OiBJQ09OX1NJWkUsIGNsYXNzTmFtZTogSUNPTl9DTFMgfSksIF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogbWV0YS5mb250U2l6ZSwgc3Ryb25nOiBzdHJvbmcsIGNoaWxkcmVuOiBmb3JtYXROZXR3b3JrKGl0ZW0ubmV0d29yaykgfSldIH0pKTtcbiAgICB9O1xuICAgIHJldHVybiAoX2pzeChTZWxlY3QsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgbmFtZTogbmFtZSwgbGFiZWw6IGxhYmVsLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIGNsYXNzTmFtZTogam9pbkNscyhXUkFQX0NMUywgY2xhc3NOYW1lKSwgb3B0aW9uczogc2VsZWN0T3B0aW9ucywgdmFsdWU6IHZhbHVlLCBkZWZhdWx0VmFsdWU6IGRlZmF1bHRWYWx1ZSwgcGFuZWxIZWFkZXI6IF9qc3goQWxlcnQsIHsgc3RhdHVzOiAnd2FybmluZycsIGJvZHk6IFdBUk5JTkdfQk9EWSB9KSwgcmVuZGVyT3B0aW9uQ29udGVudDogcmVuZGVyT3B0aW9uQ29udGVudCwgcmVuZGVyVmFsdWU6IHJlbmRlclZhbHVlLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlIH0pKSk7XG59O1xuZXhwb3J0IGNvbnN0IE5ldHdvcmtTZWxlY3QgPSBtZW1vKE5ldHdvcmtTZWxlY3RCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -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 —
@@ -6,11 +6,9 @@ import type { SelectCustomProps } from "../../../components/Select";
6
6
  * internally.
7
7
  */
8
8
  export interface NetworkItem {
9
- /** Stable identifier — bound to the select value, e.g. `"ETHEREUM"` / `"POLYGON"`. */
9
+ /** Network identifier — bound to the select value (not displayed), e.g. `"ETHEREUM"` / `"POLYGON"`. */
10
10
  network: string;
11
- /** Short ticker shown as the card's bold title line, e.g. `"ETH"` / `"MATIC"`. */
12
- networkSymbol: string;
13
- /** Display name shown as the card's secondary line, e.g. `"Ethereum"` / `"BNB Smart Chain"`. */
11
+ /** Display name shown in the trigger and option rows, e.g. `"Ethereum"` / `"BNB Smart Chain"`. */
14
12
  networkDesc: string;
15
13
  /** Public URL of the network icon. */
16
14
  iconUrl: string;
@@ -24,8 +22,18 @@ export interface NetworkItem {
24
22
  minConfirm: number;
25
23
  /** Estimated processing time in minutes, e.g. `4`. */
26
24
  processingTime: number;
25
+ /** Human-readable latency shown on the right of each option, e.g. `"3 mins"` / `"Hours"`. */
26
+ txLatency: string;
27
+ /** Badge label, e.g. `"Recommended"` / `"Delayed"`; `""` when none. Not rendered yet. */
28
+ tag: string;
29
+ /** Badge status code: `0` none, `1` recommended, `2` delayed. Not rendered yet. */
30
+ tagStatus: number;
31
+ /** Deposit address for this network. */
32
+ address: string;
33
+ /** Display order within the list, e.g. `0`. */
34
+ order: number;
27
35
  }
28
- export interface NetworkSelectProps extends Omit<SelectCustomProps, 'selectedTemplate' | 'children' | 'arrow' | 'panelClassName' | 'panelFooter' | 'onChange'> {
36
+ export interface NetworkSelectProps extends Omit<SelectProps, 'options' | 'value' | 'defaultValue' | 'onChange' | 'multiple' | 'renderOption' | 'renderOptionContent' | 'renderValue' | 'panelHeader' | 'panelFooter'> {
29
37
  /**
30
38
  * Crypto networks returned by 1money's `/private/currencies` endpoint
31
39
  * (`data.crypto[i].networks`). Pass through as-is — the component
@@ -36,15 +44,19 @@ export interface NetworkSelectProps extends Omit<SelectCustomProps, 'selectedTem
36
44
  * const networks: NetworkItem[] = [
37
45
  * {
38
46
  * network: 'ETHEREUM',
39
- * networkSymbol: 'ETH',
40
47
  * networkDesc: 'Ethereum',
41
48
  * iconUrl: 'https://static.1money.com/images/ethereum-eth-logo.png',
42
- * contractAddress: '0x9348fd2b3789261ba8327a33fd758e993a1ba786',
49
+ * contractAddress: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',
43
50
  * contractAddressUrl:
44
- * 'https://etherscan.io/address/0x9348fd2b3789261ba8327a33fd758e993a1ba786',
51
+ * 'https://sepolia.etherscan.io/address/0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',
45
52
  * depositMin: '0.1',
46
53
  * minConfirm: 12,
47
- * processingTime: 4,
54
+ * processingTime: 2,
55
+ * txLatency: '3 mins',
56
+ * tag: '',
57
+ * tagStatus: 0,
58
+ * address: '0xAcDC59B579A3ee6970952775642c5dc3F2816525',
59
+ * order: 0,
48
60
  * },
49
61
  * ];
50
62
  *
@@ -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
  }
@@ -44,7 +44,9 @@ var formatAmount = function formatAmount(value) {
44
44
  var renderFeeLine = function renderFeeLine(item) {
45
45
  return "Deposit fee: ".concat(formatAmount(item.fee), " | Minimum deposit amount: ").concat(formatAmount(item.depositAmtMin));
46
46
  };
47
- var renderMetaColumn = function renderMetaColumn(item) {
47
+ var renderMetaColumn = function renderMetaColumn(item, showFee) {
48
+ var hasFee = showFee && (item.fee != null || item.depositAmtMin != null);
49
+ if (!item.description && !hasFee) return null;
48
50
  return _jsxs(Flex, {
49
51
  vertical: true,
50
52
  align: 'end',
@@ -54,7 +56,7 @@ var renderMetaColumn = function renderMetaColumn(item) {
54
56
  strong: true,
55
57
  color: 'default-secondary',
56
58
  children: item.description
57
- }), _jsx(TypographyBody, {
59
+ }), hasFee && _jsx(TypographyBody, {
58
60
  size: 'sm',
59
61
  color: 'default-secondary',
60
62
  children: renderFeeLine(item)
@@ -72,7 +74,11 @@ var PaymentMethodSelectBase = function PaymentMethodSelectBase(_a) {
72
74
  placeholder = _a$placeholder === void 0 ? 'Select payment method' : _a$placeholder,
73
75
  _a$strong = _a.strong,
74
76
  strong = _a$strong === void 0 ? true : _a$strong,
75
- rest = __rest(_a, ["options", "className", "label", "name", "placeholder", "strong"]);
77
+ _a$showFee = _a.showFee,
78
+ showFee = _a$showFee === void 0 ? true : _a$showFee,
79
+ _a$showTags = _a.showTags,
80
+ showTags = _a$showTags === void 0 ? true : _a$showTags,
81
+ rest = __rest(_a, ["options", "className", "label", "name", "placeholder", "strong", "showFee", "showTags"]);
76
82
  var mapped = useMemo(function () {
77
83
  return options.map(toOption);
78
84
  }, [options]);
@@ -109,7 +115,7 @@ var PaymentMethodSelectBase = function PaymentMethodSelectBase(_a) {
109
115
  strong: strong,
110
116
  children: item.label
111
117
  })]
112
- }), renderMetaColumn(item)]
118
+ }), renderMetaColumn(item, showFee)]
113
119
  });
114
120
  },
115
121
  renderOptionContent: function renderOptionContent(option, _ref2) {
@@ -135,16 +141,16 @@ var PaymentMethodSelectBase = function PaymentMethodSelectBase(_a) {
135
141
  size: fontSize,
136
142
  strong: strong,
137
143
  children: item.label
138
- }), (_b = item.tags) === null || _b === void 0 ? void 0 : _b.map(function (tag, index) {
144
+ }), showTags && ((_b = item.tags) === null || _b === void 0 ? void 0 : _b.map(function (tag, index) {
139
145
  return _jsx(Tag, {
140
146
  color: 'success',
141
147
  label: tag
142
148
  }, "".concat(tag, "-").concat(index));
143
- })]
144
- }), renderMetaColumn(item)]
149
+ }))]
150
+ }), renderMetaColumn(item, showFee)]
145
151
  });
146
152
  }
147
153
  }));
148
154
  };
149
155
  export var PaymentMethodSelect = /*#__PURE__*/memo(PaymentMethodSelectBase);
150
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL1NlbGVjdC9QYXltZW50TWV0aG9kL1BheW1lbnRNZXRob2RTZWxlY3QuanMiLCJidXNpbmVzcy9TZWxlY3Qvc3JjL2J1c2luZXNzL1NlbGVjdC9QYXltZW50TWV0aG9kL1BheW1lbnRNZXRob2RTZWxlY3QudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VNZW1vIiwibnVtZXJpY0Zvcm1hdHRlciIsIkZsZXgiLCJTZWxlY3QiLCJUYWciLCJUeXBvZ3JhcGh5Qm9keSIsImpvaW5DbHMiLCJXUkFQX0NMUyIsIklDT05fU0laRSIsIkRFU0NfU0VQQVJBVE9SIiwidG9PcHRpb24iLCJtZXRob2QiLCJfYSIsIl9iIiwiX2MiLCJfbWV0aG9kJHBheW1lbnRNZXRob2QiLCJwYXltZW50TWV0aG9kVHlwZURlc2MiLCJzcGxpdCIsIl9tZXRob2QkcGF5bWVudE1ldGhvZDIiLCJfc2xpY2VkVG9BcnJheSIsIm5hbWUiLCJzbGEiLCJkZXNjcmlwdGlvbiIsImZlZSIsInRyYW5zYWN0aW9uVGltZSIsImNvbmNhdCIsInRyYW5zYWN0aW9uVW5pdCIsInRyaW0iLCJsYWJlbCIsInZhbHVlIiwicGF5bWVudE1ldGhvZFR5cGUiLCJpY29uIiwicGF5bWVudE1ldGhvZEljb25VcmwiLCJ0cmFuc2FjdGlvbkZlZSIsImRlcG9zaXRBbXRNaW4iLCJ0YWdzIiwiZm9ybWF0QW1vdW50IiwidGhvdXNhbmRTZXBhcmF0b3IiLCJwcmVmaXgiLCJyZW5kZXJGZWVMaW5lIiwiaXRlbSIsInJlbmRlck1ldGFDb2x1bW4iLCJ2ZXJ0aWNhbCIsImFsaWduIiwiZ2FwIiwiY2hpbGRyZW4iLCJzaXplIiwic3Ryb25nIiwiY29sb3IiLCJQYXltZW50TWV0aG9kU2VsZWN0QmFzZSIsIm9wdGlvbnMiLCJjbGFzc05hbWUiLCJfYSRsYWJlbCIsIl9hJG5hbWUiLCJfYSRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX2Ekc3Ryb25nIiwicmVzdCIsIm1hcHBlZCIsIm1hcCIsImFzc2lnbiIsInJlbmRlclZhbHVlIiwib3B0aW9uIiwiX3JlZiIsImZvbnRTaXplIiwiQXJyYXkiLCJpc0FycmF5IiwianVzdGlmeSIsInN0eWxlIiwid2lkdGgiLCJzcmMiLCJhbHQiLCJTdHJpbmciLCJoZWlnaHQiLCJyZW5kZXJPcHRpb25Db250ZW50IiwiX3JlZjIiLCJ0YWciLCJpbmRleCIsIlBheW1lbnRNZXRob2RTZWxlY3QiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJ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QUFBLENBQUEsQ0FDRDtBQUVOLENBQUM7QUFFRCxPQUFPLElBQU1zQyxtQkFBbUIsZ0JBQUcvRSxJQUFJLENBQUNrRCx1QkFBdUIsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9TZWxlY3QvUGF5bWVudE1ldGhvZC9QYXltZW50TWV0aG9kU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBudW1lcmljRm9ybWF0dGVyIH0gZnJvbSAncmVhY3QtbnVtYmVyLWZvcm1hdCc7XG5pbXBvcnQgeyBGbGV4IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9GbGV4JztcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvU2VsZWN0JztcbmltcG9ydCB7IFRhZyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVGFnJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IFdSQVBfQ0xTID0gJ29tLXBheW1lbnQtbWV0aG9kLXNlbGVjdCc7XG5jb25zdCBJQ09OX1NJWkUgPSAyMDtcbmNvbnN0IERFU0NfU0VQQVJBVE9SID0gJyAtICc7XG5jb25zdCB0b09wdGlvbiA9IChtZXRob2QpID0+IHtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICBjb25zdCBbbmFtZSwgc2xhXSA9IG1ldGhvZC5wYXltZW50TWV0aG9kVHlwZURlc2Muc3BsaXQoREVTQ19TRVBBUkFUT1IpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gKChfYSA9IG1ldGhvZC5mZWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50cmFuc2FjdGlvblRpbWUpXG4gICAgICAgID8gYCR7bWV0aG9kLmZlZS50cmFuc2FjdGlvblRpbWV9ICR7KF9iID0gbWV0aG9kLmZlZS50cmFuc2FjdGlvblVuaXQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcnfWAudHJpbSgpXG4gICAgICAgIDogc2xhO1xuICAgIHJldHVybiB7XG4gICAgICAgIGxhYmVsOiBuYW1lLFxuICAgICAgICB2YWx1ZTogbWV0aG9kLnBheW1lbnRNZXRob2RUeXBlLFxuICAgICAgICBpY29uOiBtZXRob2QucGF5bWVudE1ldGhvZEljb25VcmwsXG4gICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICBmZWU6IChfYyA9IG1ldGhvZC5mZWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy50cmFuc2FjdGlvbkZlZSxcbiAgICAgICAgZGVwb3NpdEFtdE1pbjogbWV0aG9kLmRlcG9zaXRBbXRNaW4sXG4gICAgICAgIHRhZ3M6IG1ldGhvZC50YWdzLFxuICAgIH07XG59O1xuY29uc3QgZm9ybWF0QW1vdW50ID0gKHZhbHVlKSA9PiBudW1lcmljRm9ybWF0dGVyKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDAgPyB2YWx1ZSA6ICcnLCB7IHRob3VzYW5kU2VwYXJhdG9yOiAnLCcsIHByZWZpeDogJyQnIH0pO1xuY29uc3QgcmVuZGVyRmVlTGluZSA9IChpdGVtKSA9PiBgRGVwb3NpdCBmZWU6ICR7Zm9ybWF0QW1vdW50KGl0ZW0uZmVlKX0gfCBNaW5pbXVtIGRlcG9zaXQgYW1vdW50OiAke2Zvcm1hdEFtb3VudChpdGVtLmRlcG9zaXRBbXRNaW4pfWA7XG5jb25zdCByZW5kZXJNZXRhQ29sdW1uID0gKGl0ZW0pID0+IChfanN4cyhGbGV4LCB7IHZlcnRpY2FsOiB0cnVlLCBhbGlnbjogJ2VuZCcsIGdhcDogMCwgY2hpbGRyZW46IFtpdGVtLmRlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIHN0cm9uZzogdHJ1ZSwgY29sb3I6ICdkZWZhdWx0LXNlY29uZGFyeScsIGNoaWxkcmVuOiBpdGVtLmRlc2NyaXB0aW9uIH0pKSwgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnc20nLCBjb2xvcjogJ2RlZmF1bHQtc2Vjb25kYXJ5JywgY2hpbGRyZW46IHJlbmRlckZlZUxpbmUoaXRlbSkgfSldIH0pKTtcbmNvbnN0IFBheW1lbnRNZXRob2RTZWxlY3RCYXNlID0gKF9hKSA9PiB7XG4gICAgdmFyIHsgb3B0aW9ucywgY2xhc3NOYW1lLCBsYWJlbCA9ICdQYXltZW50IG1ldGhvZCcsIG5hbWUgPSAncGF5bWVudE1ldGhvZCcsIHBsYWNlaG9sZGVyID0gJ1NlbGVjdCBwYXltZW50IG1ldGhvZCcsIHN0cm9uZyA9IHRydWUgfSA9IF9hLCByZXN0ID0gX19yZXN0KF9hLCBbXCJvcHRpb25zXCIsIFwiY2xhc3NOYW1lXCIsIFwibGFiZWxcIiwgXCJuYW1lXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJzdHJvbmdcIl0pO1xuICAgIGNvbnN0IG1hcHBlZCA9IHVzZU1lbW8oKCkgPT4gb3B0aW9ucy5tYXAodG9PcHRpb24pLCBbb3B0aW9uc10pO1xuICAgIHJldHVybiAoX2pzeChTZWxlY3QsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgbGFiZWw6IGxhYmVsLCBuYW1lOiBuYW1lLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIGNsYXNzTmFtZTogam9pbkNscyhXUkFQX0NMUywgY2xhc3NOYW1lKSwgb3B0aW9uczogbWFwcGVkLCByZW5kZXJWYWx1ZTogKG9wdGlvbiwgeyBmb250U2l6ZSB9KSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbiB8fCBBcnJheS5pc0FycmF5KG9wdGlvbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gb3B0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywganVzdGlmeTogJ3NwYWNlLWJldHdlZW4nLCBnYXA6IDgsIHN0eWxlOiB7IHdpZHRoOiAnMTAwJScgfSwgY2hpbGRyZW46IFtfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywgZ2FwOiA4LCBjaGlsZHJlbjogW2l0ZW0uaWNvbiAmJiAoX2pzeChcImltZ1wiLCB7IHNyYzogaXRlbS5pY29uLCBhbHQ6IFN0cmluZygoX2EgPSBpdGVtLnZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJyksIHdpZHRoOiBJQ09OX1NJWkUsIGhlaWdodDogSUNPTl9TSVpFIH0pKSwgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBmb250U2l6ZSwgc3Ryb25nOiBzdHJvbmcsIGNoaWxkcmVuOiBpdGVtLmxhYmVsIH0pXSB9KSwgcmVuZGVyTWV0YUNvbHVtbihpdGVtKV0gfSkpO1xuICAgICAgICB9LCByZW5kZXJPcHRpb25Db250ZW50OiAob3B0aW9uLCB7IGZvbnRTaXplIH0pID0+IHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gb3B0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywganVzdGlmeTogJ3NwYWNlLWJldHdlZW4nLCBnYXA6IDgsIHN0eWxlOiB7IHdpZHRoOiAnMTAwJScgfSwgY2hpbGRyZW46IFtfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywgZ2FwOiA4LCBjaGlsZHJlbjogW2l0ZW0uaWNvbiAmJiAoX2pzeChcImltZ1wiLCB7IHNyYzogaXRlbS5pY29uLCBhbHQ6IFN0cmluZygoX2EgPSBpdGVtLnZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJyksIHdpZHRoOiBJQ09OX1NJWkUsIGhlaWdodDogSUNPTl9TSVpFIH0pKSwgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBmb250U2l6ZSwgc3Ryb25nOiBzdHJvbmcsIGNoaWxkcmVuOiBpdGVtLmxhYmVsIH0pLCAoX2IgPSBpdGVtLnRhZ3MpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5tYXAoKHRhZywgaW5kZXgpID0+IChfanN4KFRhZywgeyBjb2xvcjogJ3N1Y2Nlc3MnLCBsYWJlbDogdGFnIH0sIGAke3RhZ30tJHtpbmRleH1gKSkpXSB9KSwgcmVuZGVyTWV0YUNvbHVtbihpdGVtKV0gfSkpO1xuICAgICAgICB9IH0pKSk7XG59O1xuZXhwb3J0IGNvbnN0IFBheW1lbnRNZXRob2RTZWxlY3QgPSBtZW1vKFBheW1lbnRNZXRob2RTZWxlY3RCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
156
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL1NlbGVjdC9QYXltZW50TWV0aG9kL1BheW1lbnRNZXRob2RTZWxlY3QuanMiLCJidXNpbmVzcy9TZWxlY3Qvc3JjL2J1c2luZXNzL1NlbGVjdC9QYXltZW50TWV0aG9kL1BheW1lbnRNZXRob2RTZWxlY3QudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VNZW1vIiwibnVtZXJpY0Zvcm1hdHRlciIsIkZsZXgiLCJTZWxlY3QiLCJUYWciLCJUeXBvZ3JhcGh5Qm9keSIsImpvaW5DbHMiLCJXUkFQX0NMUyIsIklDT05fU0laRSIsIkRFU0NfU0VQQVJBVE9SIiwidG9PcHRpb24iLCJtZXRob2QiLCJfYSIsIl9iIiwiX2MiLCJfbWV0aG9kJHBheW1lbnRNZXRob2QiLCJwYXltZW50TWV0aG9kVHlwZURlc2MiLCJzcGxpdCIsIl9tZXRob2QkcGF5bWVudE1ldGhvZDIiLCJfc2xpY2VkVG9BcnJheSIsIm5hbWUiLCJzbGEiLCJkZXNjcmlwdGlvbiIsImZlZSIsInRyYW5zYWN0aW9uVGltZSIsImNvbmNhdCIsInRyYW5zYWN0aW9uVW5pdCIsInRyaW0iLCJsYWJlbCIsInZhbHVlIiwicGF5bWVudE1ldGhvZFR5cGUiLCJpY29uIiwicGF5bWVudE1ldGhvZEljb25VcmwiLCJ0cmFuc2FjdGlvbkZlZSIsImRlcG9zaXRBbXRNaW4iLCJ0YWdzIiwiZm9ybWF0QW1vdW50IiwidGhvdXNhbmRTZXBhcmF0b3IiLCJwcmVmaXgiLCJyZW5kZXJGZWVMaW5lIiwiaXRlbSIsInJlbmRlck1ldGFDb2x1bW4iLCJzaG93RmVlIiwiaGFzRmVlIiwidmVydGljYWwiLCJhbGlnbiIsImdhcCIsImNoaWxkcmVuIiwic2l6ZSIsInN0cm9uZyIsImNvbG9yIiwiUGF5bWVudE1ldGhvZFNlbGVjdEJhc2UiLCJvcHRpb25zIiwiY2xhc3NOYW1lIiwiX2EkbGFiZWwiLCJfYSRuYW1lIiwiX2EkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsIl9hJHN0cm9uZyIsIl9hJHNob3dGZWUiLCJfYSRzaG93VGFncyIsInNob3dUYWdzIiwicmVzdCIsIm1hcHBlZCIsIm1hcCIsImFzc2lnbiIsInJlbmRlclZhbHVlIiwib3B0aW9uIiwiX3JlZiIsImZvbnRTaXplIiwiQXJyYXkiLCJpc0FycmF5IiwianVzdGlmeSIsInN0eWxlIiwid2lkdGgiLCJzcmMiLCJhbHQiLCJTdHJpbmciLCJoZWlnaHQiLCJyZW5kZXJPcHRpb25Db250ZW50IiwiX3JlZjIiLCJ0YWciLCJpbmRleCIsIlBheW1lbnRNZXRob2RTZWxlY3QiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxD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UUFBUTtZQUFFcEIsTUFBTSxFQUFFQSxNQUFNO1lBQUFGLFFBQUEsRUFDM0NQLElBQUksQ0FBQ1o7VUFBSyxDQUFBLENBQ0ksRUFDaEJpQyxRQUFRLEtBQ1AsQ0FBQWhELEVBQUEsR0FBQTJCLElBQUksQ0FBQ0wsSUFBSSxNQUFBLElBQUEsSUFBQXRCLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFbUQsR0FBRyxDQUFDLFVBQUNpQixHQUFHLEVBQUVDLEtBQUs7WUFBQSxPQUN4QnRGLElBQUEsQ0FBQ1EsR0FBRyxFQUFBO2NBQXlCOEMsS0FBSyxFQUFDLFNBQVM7Y0FBQ3RCLEtBQUssRUFBRXFEO1lBQUcsQ0FBQSxLQUFBeEQsTUFBQSxDQUExQ3dELEdBQUcsT0FBQXhELE1BQUEsQ0FBSXlELEtBQUssQ0FBRSxDQUFnQztVQUFBLENBQzVELENBQUMsQ0FBQTtRQUFBLENBQUEsQ0FDQyxFQUNOekMsZ0JBQWdCLENBQUNELElBQUksRUFBRUUsT0FBTyxDQUFDO01BQUEsQ0FBQSxDQUMzQjtJQUVYO0VBQUMsQ0FBQSxDQUFBLENBQ0Q7QUFFTixDQUFDO0FBRUQsT0FBTyxJQUFNeUMsbUJBQW1CLGdCQUFHcEYsSUFBSSxDQUFDb0QsdUJBQXVCLENBQUMiLCJmaWxlIjoiYnVzaW5lc3MvU2VsZWN0L1BheW1lbnRNZXRob2QvUGF5bWVudE1ldGhvZFNlbGVjdC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgbnVtZXJpY0Zvcm1hdHRlciB9IGZyb20gJ3JlYWN0LW51bWJlci1mb3JtYXQnO1xuaW1wb3J0IHsgRmxleCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRmxleCc7XG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1NlbGVjdCc7XG5pbXBvcnQgeyBUYWcgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1RhZyc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5jb25zdCBXUkFQX0NMUyA9ICdvbS1wYXltZW50LW1ldGhvZC1zZWxlY3QnO1xuY29uc3QgSUNPTl9TSVpFID0gMjA7XG5jb25zdCBERVNDX1NFUEFSQVRPUiA9ICcgLSAnO1xuY29uc3QgdG9PcHRpb24gPSAobWV0aG9kKSA9PiB7XG4gICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgY29uc3QgW25hbWUsIHNsYV0gPSBtZXRob2QucGF5bWVudE1ldGhvZFR5cGVEZXNjLnNwbGl0KERFU0NfU0VQQVJBVE9SKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9ICgoX2EgPSBtZXRob2QuZmVlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudHJhbnNhY3Rpb25UaW1lKVxuICAgICAgICA/IGAke21ldGhvZC5mZWUudHJhbnNhY3Rpb25UaW1lfSAkeyhfYiA9IG1ldGhvZC5mZWUudHJhbnNhY3Rpb25Vbml0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAnJ31gLnRyaW0oKVxuICAgICAgICA6IHNsYTtcbiAgICByZXR1cm4ge1xuICAgICAgICBsYWJlbDogbmFtZSxcbiAgICAgICAgdmFsdWU6IG1ldGhvZC5wYXltZW50TWV0aG9kVHlwZSxcbiAgICAgICAgaWNvbjogbWV0aG9kLnBheW1lbnRNZXRob2RJY29uVXJsLFxuICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgZmVlOiAoX2MgPSBtZXRob2QuZmVlKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudHJhbnNhY3Rpb25GZWUsXG4gICAgICAgIGRlcG9zaXRBbXRNaW46IG1ldGhvZC5kZXBvc2l0QW10TWluLFxuICAgICAgICB0YWdzOiBtZXRob2QudGFncyxcbiAgICB9O1xufTtcbmNvbnN0IGZvcm1hdEFtb3VudCA9ICh2YWx1ZSkgPT4gbnVtZXJpY0Zvcm1hdHRlcih2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdm9pZCAwID8gdmFsdWUgOiAnJywgeyB0aG91c2FuZFNlcGFyYXRvcjogJywnLCBwcmVmaXg6ICckJyB9KTtcbmNvbnN0IHJlbmRlckZlZUxpbmUgPSAoaXRlbSkgPT4gYERlcG9zaXQgZmVlOiAke2Zvcm1hdEFtb3VudChpdGVtLmZlZSl9IHwgTWluaW11bSBkZXBvc2l0IGFtb3VudDogJHtmb3JtYXRBbW91bnQoaXRlbS5kZXBvc2l0QW10TWluKX1gO1xuY29uc3QgcmVuZGVyTWV0YUNvbHVtbiA9IChpdGVtLCBzaG93RmVlKSA9PiB7XG4gICAgY29uc3QgaGFzRmVlID0gc2hvd0ZlZSAmJiAoaXRlbS5mZWUgIT0gbnVsbCB8fCBpdGVtLmRlcG9zaXRBbXRNaW4gIT0gbnVsbCk7XG4gICAgaWYgKCFpdGVtLmRlc2NyaXB0aW9uICYmICFoYXNGZWUpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeHMoRmxleCwgeyB2ZXJ0aWNhbDogdHJ1ZSwgYWxpZ246ICdlbmQnLCBnYXA6IDAsIGNoaWxkcmVuOiBbaXRlbS5kZXNjcmlwdGlvbiAmJiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnc20nLCBzdHJvbmc6IHRydWUsIGNvbG9yOiAnZGVmYXVsdC1zZWNvbmRhcnknLCBjaGlsZHJlbjogaXRlbS5kZXNjcmlwdGlvbiB9KSksIGhhc0ZlZSAmJiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnc20nLCBjb2xvcjogJ2RlZmF1bHQtc2Vjb25kYXJ5JywgY2hpbGRyZW46IHJlbmRlckZlZUxpbmUoaXRlbSkgfSkpXSB9KSk7XG59O1xuY29uc3QgUGF5bWVudE1ldGhvZFNlbGVjdEJhc2UgPSAoX2EpID0+IHtcbiAgICB2YXIgeyBvcHRpb25zLCBjbGFzc05hbWUsIGxhYmVsID0gJ1BheW1lbnQgbWV0aG9kJywgbmFtZSA9ICdwYXltZW50TWV0aG9kJywgcGxhY2Vob2xkZXIgPSAnU2VsZWN0IHBheW1lbnQgbWV0aG9kJywgc3Ryb25nID0gdHJ1ZSwgc2hvd0ZlZSA9IHRydWUsIHNob3dUYWdzID0gdHJ1ZSB9ID0gX2EsIHJlc3QgPSBfX3Jlc3QoX2EsIFtcIm9wdGlvbnNcIiwgXCJjbGFzc05hbWVcIiwgXCJsYWJlbFwiLCBcIm5hbWVcIiwgXCJwbGFjZWhvbGRlclwiLCBcInN0cm9uZ1wiLCBcInNob3dGZWVcIiwgXCJzaG93VGFnc1wiXSk7XG4gICAgY29uc3QgbWFwcGVkID0gdXNlTWVtbygoKSA9PiBvcHRpb25zLm1hcCh0b09wdGlvbiksIFtvcHRpb25zXSk7XG4gICAgcmV0dXJuIChfanN4KFNlbGVjdCwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBsYWJlbDogbGFiZWwsIG5hbWU6IG5hbWUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgY2xhc3NOYW1lOiBqb2luQ2xzKFdSQVBfQ0xTLCBjbGFzc05hbWUpLCBvcHRpb25zOiBtYXBwZWQsIHJlbmRlclZhbHVlOiAob3B0aW9uLCB7IGZvbnRTaXplIH0pID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGlmICghb3B0aW9uIHx8IEFycmF5LmlzQXJyYXkob3B0aW9uKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBvcHRpb247XG4gICAgICAgICAgICByZXR1cm4gKF9qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBqdXN0aWZ5OiAnc3BhY2UtYmV0d2VlbicsIGdhcDogOCwgc3R5bGU6IHsgd2lkdGg6ICcxMDAlJyB9LCBjaGlsZHJlbjogW19qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBnYXA6IDgsIGNoaWxkcmVuOiBbaXRlbS5pY29uICYmIChfanN4KFwiaW1nXCIsIHsgc3JjOiBpdGVtLmljb24sIGFsdDogU3RyaW5nKChfYSA9IGl0ZW0udmFsdWUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnKSwgd2lkdGg6IElDT05fU0laRSwgaGVpZ2h0OiBJQ09OX1NJWkUgfSkpLCBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IGZvbnRTaXplLCBzdHJvbmc6IHN0cm9uZywgY2hpbGRyZW46IGl0ZW0ubGFiZWwgfSldIH0pLCByZW5kZXJNZXRhQ29sdW1uKGl0ZW0sIHNob3dGZWUpXSB9KSk7XG4gICAgICAgIH0sIHJlbmRlck9wdGlvbkNvbnRlbnQ6IChvcHRpb24sIHsgZm9udFNpemUgfSkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBvcHRpb247XG4gICAgICAgICAgICByZXR1cm4gKF9qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBqdXN0aWZ5OiAnc3BhY2UtYmV0d2VlbicsIGdhcDogOCwgc3R5bGU6IHsgd2lkdGg6ICcxMDAlJyB9LCBjaGlsZHJlbjogW19qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBnYXA6IDgsIGNoaWxkcmVuOiBbaXRlbS5pY29uICYmIChfanN4KFwiaW1nXCIsIHsgc3JjOiBpdGVtLmljb24sIGFsdDogU3RyaW5nKChfYSA9IGl0ZW0udmFsdWUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnKSwgd2lkdGg6IElDT05fU0laRSwgaGVpZ2h0OiBJQ09OX1NJWkUgfSkpLCBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IGZvbnRTaXplLCBzdHJvbmc6IHN0cm9uZywgY2hpbGRyZW46IGl0ZW0ubGFiZWwgfSksIHNob3dUYWdzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoX2IgPSBpdGVtLnRhZ3MpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5tYXAoKHRhZywgaW5kZXgpID0+IChfanN4KFRhZywgeyBjb2xvcjogJ3N1Y2Nlc3MnLCBsYWJlbDogdGFnIH0sIGAke3RhZ30tJHtpbmRleH1gKSkpKV0gfSksIHJlbmRlck1ldGFDb2x1bW4oaXRlbSwgc2hvd0ZlZSldIH0pKTtcbiAgICAgICAgfSB9KSkpO1xufTtcbmV4cG9ydCBjb25zdCBQYXltZW50TWV0aG9kU2VsZWN0ID0gbWVtbyhQYXltZW50TWV0aG9kU2VsZWN0QmFzZSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -67,4 +67,15 @@ export interface PaymentMethodSelectProps extends Omit<SelectProps, 'options' |
67
67
  * @default true
68
68
  */
69
69
  strong?: boolean;
70
+ /**
71
+ * Show the per-option fee / minimum-deposit line in the trigger and dropdown.
72
+ * Set to false for data sources without fee info (e.g. recipient bank dict).
73
+ * @default true
74
+ */
75
+ showFee?: boolean;
76
+ /**
77
+ * Show tag badges next to the option label in the dropdown options.
78
+ * @default true
79
+ */
80
+ showTags?: boolean;
70
81
  }
@@ -20,12 +20,6 @@
20
20
  * gap: om-spacing-value(2); // Returns 8px if $om-sys-spacing-unit is 4px
21
21
  * }
22
22
  */
23
- .om-payment-method-select .om-component-ui-select-trigger-large {
24
- height: 56px;
25
- }
26
- .om-payment-method-select .om-component-ui-select-trigger-small {
27
- height: 44px;
28
- }
29
23
  .om-payment-method-select .om-component-ui-select-value {
30
24
  overflow: visible;
31
25
  white-space: normal;