@1money/component-ui 0.0.64-alpha.0 → 0.0.64-alpha.10

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 (48) hide show
  1. package/es/business/Select/Asset/AssetSelect.js +37 -6
  2. package/es/business/Select/Asset/style/AssetSelect.css +5 -4
  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 +89 -108
  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/style/PaymentMethodSelect.css +0 -6
  17. package/es/business/Select/index.d.ts +1 -0
  18. package/es/business/Select/index.js +2 -1
  19. package/es/components/Empty/style/Empty.css +1 -0
  20. package/es/components/Select/Select.js +10 -5
  21. package/es/components/Select/interface.d.ts +7 -0
  22. package/es/components/Select/style/Select.css +11 -0
  23. package/es/index.css +1 -1
  24. package/lib/business/Select/Asset/AssetSelect.js +37 -5
  25. package/lib/business/Select/Asset/style/AssetSelect.css +5 -4
  26. package/lib/business/Select/Currency/CurrencySelect.d.ts +2 -0
  27. package/lib/business/Select/Currency/CurrencySelect.js +124 -0
  28. package/lib/business/Select/Currency/index.d.ts +2 -0
  29. package/lib/business/Select/Currency/index.js +28 -0
  30. package/lib/business/Select/Currency/interface.d.ts +50 -0
  31. package/lib/business/Select/Currency/interface.js +6 -0
  32. package/lib/business/Select/Currency/style/CurrencySelect.css +34 -0
  33. package/lib/business/Select/Currency/style/css.js +4 -0
  34. package/lib/business/Select/Currency/style/index.d.ts +1 -0
  35. package/lib/business/Select/Currency/style/index.js +4 -0
  36. package/lib/business/Select/Network/NetworkSelect.js +87 -107
  37. package/lib/business/Select/Network/interface.d.ts +22 -10
  38. package/lib/business/Select/Network/style/NetworkSelect.css +0 -26
  39. package/lib/business/Select/PaymentMethod/style/PaymentMethodSelect.css +0 -6
  40. package/lib/business/Select/index.d.ts +1 -0
  41. package/lib/business/Select/index.js +12 -1
  42. package/lib/components/Empty/style/Empty.css +1 -0
  43. package/lib/components/Select/Select.js +10 -5
  44. package/lib/components/Select/interface.d.ts +7 -0
  45. package/lib/components/Select/style/Select.css +11 -0
  46. package/lib/index.css +1 -1
  47. package/package.json +6 -1
  48. 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,30 +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";
9
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
10
  import { memo, useMemo } from 'react';
12
- import { useControlledState, useEventCallback } from '@1money/hooks';
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")
29
+ children: item.txLatency
34
30
  });
35
31
  };
36
32
  var NetworkSelectBase = function NetworkSelectBase(_a) {
@@ -48,109 +44,94 @@ var NetworkSelectBase = function NetworkSelectBase(_a) {
48
44
  defaultValue = _a.defaultValue,
49
45
  onChange = _a.onChange,
50
46
  rest = __rest(_a, ["options", "className", "label", "name", "placeholder", "strong", "value", "defaultValue", "onChange"]);
51
- var _useControlledState = useControlledState(defaultValue, value),
52
- _useControlledState2 = _slicedToArray(_useControlledState, 2),
53
- selected = _useControlledState2[0],
54
- setSelected = _useControlledState2[1];
55
- var selectedItem = useMemo(function () {
56
- return options.find(function (item) {
57
- 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;
58
63
  });
59
- }, [options, selected]);
60
- var handlePick = useEventCallback(function (item, close) {
61
- setSelected(item.network);
62
- onChange === null || onChange === void 0 ? void 0 : onChange(item.network, item);
63
- close();
64
+ if (item) onChange === null || onChange === void 0 ? void 0 : onChange(next, item);
64
65
  });
65
- return _jsx(Select.Custom, Object.assign({}, rest, {
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',
81
+ style: {
82
+ minWidth: 0,
83
+ flex: 1
84
+ },
85
+ children: [_jsx(TypographyBody, {
86
+ size: 'md',
87
+ strong: strong,
88
+ color: 'default',
89
+ children: formatNetwork(item.network)
90
+ }), _jsx(TypographyBody, {
91
+ size: 'sm',
92
+ color: 'default-secondary',
93
+ children: item.networkDesc
94
+ })]
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, {
66
120
  name: name,
67
121
  label: label,
68
122
  placeholder: placeholder,
69
123
  className: joinCls(WRAP_CLS, className),
70
- panelClassName: PANEL_CLS,
71
- selectedTemplate: selectedItem ? function (_ref) {
72
- var fontSize = _ref.fontSize;
73
- return _jsxs(Flex, {
74
- align: 'center',
75
- justify: 'space-between',
76
- gap: 8,
77
- style: {
78
- width: '100%'
79
- },
80
- children: [_jsxs(Flex, {
81
- align: 'center',
82
- gap: 8,
83
- children: [_jsx("img", {
84
- src: selectedItem.iconUrl,
85
- alt: selectedItem.networkDesc,
86
- width: ICON_SIZE,
87
- height: ICON_SIZE,
88
- className: ICON_CLS
89
- }), _jsx(TypographyBody, {
90
- size: fontSize,
91
- strong: strong,
92
- children: selectedItem.networkSymbol
93
- })]
94
- }), renderTimeMeta(selectedItem)]
95
- });
96
- } : null,
97
- children: function children(_ref2) {
98
- var close = _ref2.close;
99
- return _jsxs(Flex, {
100
- vertical: true,
101
- gap: 8,
102
- children: [_jsx(Alert, {
103
- status: 'warning',
104
- body: WARNING_BODY
105
- }), _jsx(Flex, {
106
- vertical: true,
107
- gap: 8,
108
- role: 'listbox',
109
- children: options.map(function (item) {
110
- var active = item.network === selected;
111
- return _jsxs("button", {
112
- type: 'button',
113
- role: 'option',
114
- "aria-selected": active,
115
- className: joinCls(CARD_CLS, active && CARD_ACTIVE_CLS),
116
- onClick: function onClick() {
117
- return handlePick(item, close);
118
- },
119
- children: [_jsx("img", {
120
- src: item.iconUrl,
121
- alt: item.networkDesc,
122
- width: ICON_SIZE,
123
- height: ICON_SIZE,
124
- className: ICON_CLS
125
- }), _jsxs(Flex, {
126
- vertical: true,
127
- gap: 0,
128
- align: 'start',
129
- style: {
130
- minWidth: 0,
131
- flex: 1
132
- },
133
- children: [_jsx(TypographyBody, {
134
- size: 'md',
135
- strong: strong,
136
- color: 'default',
137
- children: item.networkSymbol
138
- }), _jsx(TypographyBody, {
139
- size: 'sm',
140
- color: 'default-secondary',
141
- children: item.networkDesc
142
- })]
143
- }), renderTimeMeta(item), active ? _jsx(Icons, {
144
- name: 'check',
145
- size: CHECK_ICON_SIZE,
146
- color: CHECK_COLOR
147
- }) : null]
148
- }, item.network);
149
- })
150
- })]
151
- });
152
- }
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
153
134
  }));
154
135
  };
155
136
  export var NetworkSelect = /*#__PURE__*/memo(NetworkSelectBase);
156
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL1NlbGVjdC9OZXR3b3JrL05ldHdvcmtTZWxlY3QuanMiLCJidXNpbmVzcy9TZWxlY3Qvc3JjL2J1c2luZXNzL1NlbGVjdC9OZXR3b3JrL05ldHdvcmtTZWxlY3QudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VNZW1vIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidXNlRXZlbnRDYWxsYmFjayIsIkFsZXJ0IiwiRmxleCIsIkljb25zIiwiU2VsZWN0IiwiVHlwb2dyYXBoeUJvZHkiLCJqb2luQ2xzIiwiV1JBUF9DTFMiLCJQQU5FTF9DTFMiLCJjb25jYXQiLCJJQ09OX0NMUyIsIkNBUkRfQ0xTIiwiQ0FSRF9BQ1RJVkVfQ0xTIiwiSUNPTl9TSVpFIiwiQ0hFQ0tfSUNPTl9TSVpFIiwiQ0hFQ0tfQ09MT1IiLCJXQVJOSU5HX0JPRFkiLCJyZW5kZXJUaW1lTWV0YSIsIml0ZW0iLCJzaXplIiwiY29sb3IiLCJjaGlsZHJlbiIsInByb2Nlc3NpbmdUaW1lIiwiTmV0d29ya1NlbGVjdEJhc2UiLCJfYSIsIm9wdGlvbnMiLCJjbGFzc05hbWUiLCJfYSRsYWJlbCIsImxhYmVsIiwiX2EkbmFtZSIsIm5hbWUiLCJfYSRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX2Ekc3Ryb25nIiwic3Ryb25nIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJvbkNoYW5nZSIsInJlc3QiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNlbGVjdGVkIiwic2V0U2VsZWN0ZWQiLCJzZWxlY3RlZEl0ZW0iLCJmaW5kIiwibmV0d29yayIsImhhbmRsZVBpY2siLCJjbG9zZSIsIkN1c3RvbSIsImFzc2lnbiIsInBhbmVsQ2xhc3NOYW1lIiwic2VsZWN0ZWRUZW1wbGF0ZSIsIl9yZWYiLCJmb250U2l6ZSIsImFsaWduIiwianVzdGlmeSIsImdhcCIsInN0eWxlIiwid2lkdGgiLCJzcmMiLCJpY29uVXJsIiwiYWx0IiwibmV0d29ya0Rlc2MiLCJoZWlnaHQiLCJuZXR3b3JrU3ltYm9sIiwiX3JlZjIiLCJ2ZXJ0aWNhbCIsInN0YXR1cyIsImJvZHkiLCJyb2xlIiwibWFwIiwiYWN0aXZlIiwidHlwZSIsIm9uQ2xpY2siLCJtaW5XaWR0aCIsImZsZXgiLCJOZXR3b3JrU2VsZWN0Il0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FBQyxHQUFHQyxNQUFNLENBQUNLLHFCQUFxQixDQUFDVCxDQUFDLENBQUMsRUFBRVUsQ0FBQyxHQUFHUCxDQUFDLENBQUNRLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7SUFDcEUsSUFBSVQsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FB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YSxDQUFBLENBQ0osRUFDakJ2RSxJQUFBLENBQUNXLGNBQWMsRUFBQTtrQkFBQ2MsSUFBSSxFQUFDLElBQUk7a0JBQUNDLEtBQUssRUFBQyxtQkFBbUI7a0JBQUFDLFFBQUEsRUFDaERILElBQUksQ0FBQzZDO2dCQUFXLENBQUEsQ0FDRjtjQUFBLENBQUEsQ0FDWixFQUNOOUMsY0FBYyxDQUFDQyxJQUFJLENBQUMsRUFDcEJzRCxNQUFNLEdBQ0w5RSxJQUFBLENBQUNTLEtBQUssRUFBQTtnQkFBQzJCLElBQUksRUFBQyxPQUFPO2dCQUFDWCxJQUFJLEVBQUVMLGVBQWU7Z0JBQUVNLEtBQUssRUFBRUw7Y0FBVyxDQUFBLENBQUksR0FDL0QsSUFBSTtZQUFBLENBQUEsRUF6QkhHLElBQUksQ0FBQzRCLE9BQU8sQ0EwQlY7VUFFYixDQUFDO1FBQUMsQ0FBQSxDQUNHO01BQUEsQ0FBQSxDQUNGO0lBQUE7RUFDUixDQUFBLENBQUEsQ0FDYTtBQUVwQixDQUFDO0FBRUQsT0FBTyxJQUFNK0IsYUFBYSxnQkFBR2hGLElBQUksQ0FBQzBCLGlCQUFpQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL1NlbGVjdC9OZXR3b3JrL05ldHdvcmtTZWxlY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgQWxlcnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0FsZXJ0JztcbmltcG9ydCB7IEZsZXggfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0ZsZXgnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0ljb25zJztcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvU2VsZWN0JztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IFdSQVBfQ0xTID0gJ29tLW5ldHdvcmstc2VsZWN0JztcbmNvbnN0IFBBTkVMX0NMUyA9IGAke1dSQVBfQ0xTfS1wYW5lbGA7XG5jb25zdCBJQ09OX0NMUyA9IGAke1dSQVBfQ0xTfS1pY29uYDtcbmNvbnN0IENBUkRfQ0xTID0gYCR7V1JBUF9DTFN9LWNhcmRgO1xuY29uc3QgQ0FSRF9BQ1RJVkVfQ0xTID0gYCR7Q0FSRF9DTFN9LWFjdGl2ZWA7XG5jb25zdCBJQ09OX1NJWkUgPSAyNDtcbmNvbnN0IENIRUNLX0lDT05fU0laRSA9IDE2O1xuLyoqIEJyYW5kIGJsdWUg4oCUIGBwYWxldHRlKGljb24sICdicmFuZCcpYCByZXNvbHZlcyB0byBgJGJsdWUtNzAwYC4gKi9cbmNvbnN0IENIRUNLX0NPTE9SID0gJyMwNzMzODcnO1xuY29uc3QgV0FSTklOR19CT0RZID0gJ09ubHkgZGVwb3NpdCB5b3VyIGFzc2V0IHVzaW5nIG9uZSBvZiB0aGUgc3VwcG9ydGVkIG5ldHdvcmtzIGJlbG93LiBEZXBvc2l0aW5nIHZpYSBhbiB1bnN1cHBvcnRlZCBuZXR3b3JrIHdpbGwgcmVzdWx0IGluIHRoZSBwZXJtYW5lbnQgbG9zcyBvZiB5b3VyIGZ1bmRzLic7XG5jb25zdCByZW5kZXJUaW1lTWV0YSA9IChpdGVtKSA9PiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnc20nLCBjb2xvcjogJ2RlZmF1bHQtc2Vjb25kYXJ5JywgY2hpbGRyZW46IGDiiYggJHtpdGVtLnByb2Nlc3NpbmdUaW1lfSBtaW5zYCB9KSk7XG5jb25zdCBOZXR3b3JrU2VsZWN0QmFzZSA9IChfYSkgPT4ge1xuICAgIHZhciB7IG9wdGlvbnMsIGNsYXNzTmFtZSwgbGFiZWwgPSAnTmV0d29yaycsIG5hbWUgPSAnbmV0d29yaycsIHBsYWNlaG9sZGVyID0gJ1NlbGVjdCBuZXR3b3JrJywgc3Ryb25nID0gdHJ1ZSwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgb25DaGFuZ2UgfSA9IF9hLCByZXN0ID0gX19yZXN0KF9hLCBbXCJvcHRpb25zXCIsIFwiY2xhc3NOYW1lXCIsIFwibGFiZWxcIiwgXCJuYW1lXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJzdHJvbmdcIiwgXCJ2YWx1ZVwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcIm9uQ2hhbmdlXCJdKTtcbiAgICBjb25zdCBbc2VsZWN0ZWQsIHNldFNlbGVjdGVkXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0VmFsdWUsIHZhbHVlKTtcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB1c2VNZW1vKCgpID0+IG9wdGlvbnMuZmluZCgoaXRlbSkgPT4gaXRlbS5uZXR3b3JrID09PSBzZWxlY3RlZCksIFtvcHRpb25zLCBzZWxlY3RlZF0pO1xuICAgIGNvbnN0IGhhbmRsZVBpY2sgPSB1c2VFdmVudENhbGxiYWNrKChpdGVtLCBjbG9zZSkgPT4ge1xuICAgICAgICBzZXRTZWxlY3RlZChpdGVtLm5ldHdvcmspO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoaXRlbS5uZXR3b3JrLCBpdGVtKTtcbiAgICAgICAgY2xvc2UoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gKF9qc3goU2VsZWN0LkN1c3RvbSwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBuYW1lOiBuYW1lLCBsYWJlbDogbGFiZWwsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgY2xhc3NOYW1lOiBqb2luQ2xzKFdSQVBfQ0xTLCBjbGFzc05hbWUpLCBwYW5lbENsYXNzTmFtZTogUEFORUxfQ0xTLCBzZWxlY3RlZFRlbXBsYXRlOiBzZWxlY3RlZEl0ZW1cbiAgICAgICAgICAgID8gKHsgZm9udFNpemUgfSkgPT4gKF9qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBqdXN0aWZ5OiAnc3BhY2UtYmV0d2VlbicsIGdhcDogOCwgc3R5bGU6IHsgd2lkdGg6ICcxMDAlJyB9LCBjaGlsZHJlbjogW19qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBnYXA6IDgsIGNoaWxkcmVuOiBbX2pzeChcImltZ1wiLCB7IHNyYzogc2VsZWN0ZWRJdGVtLmljb25VcmwsIGFsdDogc2VsZWN0ZWRJdGVtLm5ldHdvcmtEZXNjLCB3aWR0aDogSUNPTl9TSVpFLCBoZWlnaHQ6IElDT05fU0laRSwgY2xhc3NOYW1lOiBJQ09OX0NMUyB9KSwgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBmb250U2l6ZSwgc3Ryb25nOiBzdHJvbmcsIGNoaWxkcmVuOiBzZWxlY3RlZEl0ZW0ubmV0d29ya1N5bWJvbCB9KV0gfSksIHJlbmRlclRpbWVNZXRhKHNlbGVjdGVkSXRlbSldIH0pKVxuICAgICAgICAgICAgOiBudWxsLCBjaGlsZHJlbjogKHsgY2xvc2UgfSkgPT4gKF9qc3hzKEZsZXgsIHsgdmVydGljYWw6IHRydWUsIGdhcDogOCwgY2hpbGRyZW46IFtfanN4KEFsZXJ0LCB7IHN0YXR1czogJ3dhcm5pbmcnLCBib2R5OiBXQVJOSU5HX0JPRFkgfSksIF9qc3goRmxleCwgeyB2ZXJ0aWNhbDogdHJ1ZSwgZ2FwOiA4LCByb2xlOiAnbGlzdGJveCcsIGNoaWxkcmVuOiBvcHRpb25zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gaXRlbS5uZXR3b3JrID09PSBzZWxlY3RlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeHMoXCJidXR0b25cIiwgeyB0eXBlOiAnYnV0dG9uJywgcm9sZTogJ29wdGlvbicsIFwiYXJpYS1zZWxlY3RlZFwiOiBhY3RpdmUsIGNsYXNzTmFtZTogam9pbkNscyhDQVJEX0NMUywgYWN0aXZlICYmIENBUkRfQUNUSVZFX0NMUyksIG9uQ2xpY2s6ICgpID0+IGhhbmRsZVBpY2soaXRlbSwgY2xvc2UpLCBjaGlsZHJlbjogW19qc3goXCJpbWdcIiwgeyBzcmM6IGl0ZW0uaWNvblVybCwgYWx0OiBpdGVtLm5ldHdvcmtEZXNjLCB3aWR0aDogSUNPTl9TSVpFLCBoZWlnaHQ6IElDT05fU0laRSwgY2xhc3NOYW1lOiBJQ09OX0NMUyB9KSwgX2pzeHMoRmxleCwgeyB2ZXJ0aWNhbDogdHJ1ZSwgZ2FwOiAwLCBhbGlnbjogJ3N0YXJ0Jywgc3R5bGU6IHsgbWluV2lkdGg6IDAsIGZsZXg6IDEgfSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdtZCcsIHN0cm9uZzogc3Ryb25nLCBjb2xvcjogJ2RlZmF1bHQnLCBjaGlsZHJlbjogaXRlbS5uZXR3b3JrU3ltYm9sIH0pLCBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIGNvbG9yOiAnZGVmYXVsdC1zZWNvbmRhcnknLCBjaGlsZHJlbjogaXRlbS5uZXR3b3JrRGVzYyB9KV0gfSksIHJlbmRlclRpbWVNZXRhKGl0ZW0pLCBhY3RpdmUgPyAoX2pzeChJY29ucywgeyBuYW1lOiAnY2hlY2snLCBzaXplOiBDSEVDS19JQ09OX1NJWkUsIGNvbG9yOiBDSEVDS19DT0xPUiB9KSkgOiBudWxsXSB9LCBpdGVtLm5ldHdvcmspKTtcbiAgICAgICAgICAgICAgICAgICAgfSkgfSldIH0pKSB9KSkpO1xufTtcbmV4cG9ydCBjb25zdCBOZXR3b3JrU2VsZWN0ID0gbWVtbyhOZXR3b3JrU2VsZWN0QmFzZSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
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
  }
@@ -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;
@@ -1,4 +1,5 @@
1
1
  export * from './Asset';
2
2
  export * from './Country';
3
+ export * from './Currency';
3
4
  export * from './Network';
4
5
  export * from './PaymentMethod';
@@ -1,5 +1,6 @@
1
1
  export * from './Asset';
2
2
  export * from './Country';
3
+ export * from './Currency';
3
4
  export * from './Network';
4
5
  export * from './PaymentMethod';
5
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NyYy9idXNpbmVzcy9TZWxlY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTO0FBQ3ZCLGNBQWMsV0FBVztBQUN6QixjQUFjLFdBQVc7QUFDekIsY0FBYyxpQkFBaUIiLCJmaWxlIjoiYnVzaW5lc3MvU2VsZWN0L2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
6
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NyYy9idXNpbmVzcy9TZWxlY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTO0FBQ3ZCLGNBQWMsV0FBVztBQUN6QixjQUFjLFlBQVk7QUFDMUIsY0FBYyxXQUFXO0FBQ3pCLGNBQWMsaUJBQWlCIiwiZmlsZSI6ImJ1c2luZXNzL1NlbGVjdC9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -26,6 +26,7 @@
26
26
  gap: var(--om-spacing-200, 8px);
27
27
  align-items: center;
28
28
  justify-content: center;
29
+ min-height: 156px;
29
30
  padding: var(--om-spacing-800, 32px) var(--om-spacing-600, 24px);
30
31
  overflow: hidden;
31
32
  text-align: center;