@1money/component-ui 0.0.67-alpha.1 → 0.0.67-alpha.2

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 (85) hide show
  1. package/es/business/Filter/Account/Account.d.ts +2 -0
  2. package/es/business/Filter/Account/Account.js +285 -0
  3. package/es/business/Filter/Account/index.d.ts +2 -0
  4. package/es/business/Filter/Account/index.js +3 -0
  5. package/es/business/Filter/Account/interface.d.ts +83 -0
  6. package/es/business/Filter/Account/interface.js +2 -0
  7. package/es/business/Filter/Account/style/Account.css +84 -0
  8. package/es/business/Filter/Account/style/css.js +2 -0
  9. package/es/business/Filter/Account/style/index.d.ts +1 -0
  10. package/es/business/Filter/Account/style/index.js +2 -0
  11. package/es/business/Filter/Asset/Asset.d.ts +2 -0
  12. package/es/business/Filter/Asset/Asset.js +302 -0
  13. package/es/business/Filter/Asset/index.d.ts +2 -0
  14. package/es/business/Filter/Asset/index.js +3 -0
  15. package/es/business/Filter/Asset/interface.d.ts +90 -0
  16. package/es/business/Filter/Asset/interface.js +2 -0
  17. package/es/business/Filter/{Dropdown/style/Dropdown.css → Asset/style/Asset.css} +20 -18
  18. package/es/business/Filter/Asset/style/css.js +2 -0
  19. package/es/business/Filter/Asset/style/index.d.ts +1 -0
  20. package/es/business/Filter/Asset/style/index.js +2 -0
  21. package/es/business/Filter/Option/Option.d.ts +2 -0
  22. package/es/business/Filter/Option/Option.js +260 -0
  23. package/es/business/Filter/Option/index.d.ts +2 -0
  24. package/es/business/Filter/Option/index.js +3 -0
  25. package/es/business/Filter/Option/interface.d.ts +81 -0
  26. package/es/business/Filter/Option/interface.js +2 -0
  27. package/es/business/Filter/Option/style/Option.css +72 -0
  28. package/es/business/Filter/Option/style/css.js +2 -0
  29. package/es/business/Filter/Option/style/index.d.ts +1 -0
  30. package/es/business/Filter/Option/style/index.js +2 -0
  31. package/es/business/Filter/index.d.ts +3 -1
  32. package/es/business/Filter/index.js +4 -2
  33. package/es/index.css +1 -1
  34. package/lib/business/Filter/Account/Account.d.ts +2 -0
  35. package/lib/business/Filter/Account/Account.js +292 -0
  36. package/lib/business/Filter/Account/index.d.ts +2 -0
  37. package/lib/business/Filter/Account/index.js +28 -0
  38. package/lib/business/Filter/Account/interface.d.ts +83 -0
  39. package/lib/business/Filter/Account/interface.js +6 -0
  40. package/lib/business/Filter/Account/style/Account.css +84 -0
  41. package/lib/business/Filter/Account/style/css.js +4 -0
  42. package/lib/business/Filter/Account/style/index.d.ts +1 -0
  43. package/lib/business/Filter/Account/style/index.js +4 -0
  44. package/lib/business/Filter/Asset/Asset.d.ts +2 -0
  45. package/lib/business/Filter/Asset/Asset.js +309 -0
  46. package/lib/business/Filter/Asset/index.d.ts +2 -0
  47. package/lib/business/Filter/Asset/index.js +28 -0
  48. package/lib/business/Filter/Asset/interface.d.ts +90 -0
  49. package/lib/business/Filter/Asset/interface.js +6 -0
  50. package/lib/business/Filter/{Dropdown/style/Dropdown.css → Asset/style/Asset.css} +20 -18
  51. package/lib/business/Filter/Asset/style/css.js +4 -0
  52. package/lib/business/Filter/Asset/style/index.d.ts +1 -0
  53. package/lib/business/Filter/Asset/style/index.js +4 -0
  54. package/lib/business/Filter/Option/Option.d.ts +2 -0
  55. package/lib/business/Filter/Option/Option.js +267 -0
  56. package/lib/business/Filter/Option/index.d.ts +2 -0
  57. package/lib/business/Filter/Option/index.js +28 -0
  58. package/lib/business/Filter/Option/interface.d.ts +81 -0
  59. package/lib/business/Filter/Option/interface.js +6 -0
  60. package/lib/business/Filter/Option/style/Option.css +72 -0
  61. package/lib/business/Filter/Option/style/css.js +4 -0
  62. package/lib/business/Filter/Option/style/index.d.ts +1 -0
  63. package/lib/business/Filter/Option/style/index.js +4 -0
  64. package/lib/business/Filter/index.d.ts +3 -1
  65. package/lib/business/Filter/index.js +27 -5
  66. package/lib/index.css +1 -1
  67. package/package.json +15 -5
  68. package/es/business/Filter/Dropdown/Dropdown.d.ts +0 -2
  69. package/es/business/Filter/Dropdown/Dropdown.js +0 -340
  70. package/es/business/Filter/Dropdown/index.d.ts +0 -2
  71. package/es/business/Filter/Dropdown/index.js +0 -3
  72. package/es/business/Filter/Dropdown/interface.d.ts +0 -136
  73. package/es/business/Filter/Dropdown/interface.js +0 -2
  74. package/es/business/Filter/Dropdown/style/css.js +0 -2
  75. package/es/business/Filter/Dropdown/style/index.d.ts +0 -1
  76. package/es/business/Filter/Dropdown/style/index.js +0 -2
  77. package/lib/business/Filter/Dropdown/Dropdown.d.ts +0 -2
  78. package/lib/business/Filter/Dropdown/Dropdown.js +0 -347
  79. package/lib/business/Filter/Dropdown/index.d.ts +0 -2
  80. package/lib/business/Filter/Dropdown/index.js +0 -28
  81. package/lib/business/Filter/Dropdown/interface.d.ts +0 -136
  82. package/lib/business/Filter/Dropdown/interface.js +0 -6
  83. package/lib/business/Filter/Dropdown/style/css.js +0 -4
  84. package/lib/business/Filter/Dropdown/style/index.d.ts +0 -1
  85. package/lib/business/Filter/Dropdown/style/index.js +0 -4
@@ -0,0 +1,309 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.AssetFilter = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ var _react = require("react");
11
+ var _Button = require("../../../components/Button");
12
+ var _Checkbox = require("../../../components/Checkbox");
13
+ var _Empty = require("../../../components/Empty");
14
+ var _Flex = require("../../../components/Flex");
15
+ var _Icons = require("../../../components/Icons");
16
+ var _Select = require("../../../components/Select");
17
+ var _Typography = require("../../../components/Typography");
18
+ var _classnames = require("../../../utils/classnames");
19
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
20
+ var t = {};
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
22
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
23
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
24
+ }
25
+ return t;
26
+ };
27
+ var WRAP_CLS = 'om-asset-filter';
28
+ // The panel is portaled to <body>, so panel-scoped overrides are keyed off this
29
+ // class (passed as `panelClassName`) rather than the trigger root.
30
+ var PANEL_CLS = "".concat(WRAP_CLS, "-panel");
31
+ var GROUP_LABEL_CLS = "".concat(WRAP_CLS, "__group-label");
32
+ var ICON_CLS = "".concat(WRAP_CLS, "-icon");
33
+ var ICON_SIZE = 24;
34
+ var FIAT_GROUP = 'Cash';
35
+ var CRYPTO_GROUP = 'Stablecoins';
36
+ var RESET_LABEL = 'Reset';
37
+ var APPLY_LABEL = 'Apply';
38
+ var DEFAULT_ALL_LABEL = 'All assets';
39
+ var DEFAULT_PLACEHOLDER = 'Asset';
40
+ var DEFAULT_SEARCH_PLACEHOLDER = 'Search';
41
+ var DEFAULT_EMPTY = (0, _jsxRuntime.jsx)(_Empty.Empty, {
42
+ variant: 'fill',
43
+ icon: (0, _jsxRuntime.jsx)(_Icons.Icons, {
44
+ name: 'search',
45
+ size: 16,
46
+ color: 'currentColor'
47
+ }),
48
+ title: 'No results',
49
+ description: 'Try a different name or adjust your search filters.',
50
+ style: {
51
+ padding: 0
52
+ }
53
+ });
54
+ var MORE_SUFFIX = function MORE_SUFFIX(count) {
55
+ return "+ ".concat(count, " more");
56
+ };
57
+ var FULL_WIDTH_STYLE = {
58
+ flex: 1
59
+ };
60
+ var toOption = function toOption(item) {
61
+ return {
62
+ label: item.assetName,
63
+ value: item.assetName,
64
+ iconUrl: item.assetIconUrl,
65
+ // Match the symbol and the full name regardless of what the row renders.
66
+ searchText: [item.assetName, item.assetDesc].filter(Boolean).join(' ')
67
+ };
68
+ };
69
+ // Fiat assets bucket under "Cash", the rest under "Stablecoins". Empty groups
70
+ // are dropped so a fiat-only (or crypto-only) list shows a single heading.
71
+ var toGroupedData = function toGroupedData(items) {
72
+ var fiat = items.filter(function (item) {
73
+ return item.isFiat;
74
+ }).map(toOption);
75
+ var crypto = items.filter(function (item) {
76
+ return !item.isFiat;
77
+ }).map(toOption);
78
+ var data = [];
79
+ if (fiat.length) data.push({
80
+ key: FIAT_GROUP,
81
+ label: FIAT_GROUP,
82
+ options: fiat
83
+ });
84
+ if (crypto.length) data.push({
85
+ key: CRYPTO_GROUP,
86
+ label: CRYPTO_GROUP,
87
+ options: crypto
88
+ });
89
+ return data;
90
+ };
91
+ var AssetFilterBase = function AssetFilterBase(_a) {
92
+ var ref = _a.ref,
93
+ className = _a.className,
94
+ _a$size = _a.size,
95
+ size = _a$size === void 0 ? 'small' : _a$size,
96
+ label = _a.label,
97
+ _a$placeholder = _a.placeholder,
98
+ placeholder = _a$placeholder === void 0 ? DEFAULT_PLACEHOLDER : _a$placeholder,
99
+ data = _a.data,
100
+ _a$allLabel = _a.allLabel,
101
+ allLabel = _a$allLabel === void 0 ? DEFAULT_ALL_LABEL : _a$allLabel,
102
+ _a$search = _a.search,
103
+ search = _a$search === void 0 ? true : _a$search,
104
+ _a$searchPlaceholder = _a.searchPlaceholder,
105
+ searchPlaceholder = _a$searchPlaceholder === void 0 ? DEFAULT_SEARCH_PLACEHOLDER : _a$searchPlaceholder,
106
+ _a$searchEmpty = _a.searchEmpty,
107
+ searchEmpty = _a$searchEmpty === void 0 ? DEFAULT_EMPTY : _a$searchEmpty,
108
+ onApply = _a.onApply,
109
+ onReset = _a.onReset,
110
+ rest = __rest(_a, ["ref", "className", "size", "label", "placeholder", "data", "allLabel", "search", "searchPlaceholder", "searchEmpty", "onApply", "onReset"]);
111
+ var groupedData = (0, _react.useMemo)(function () {
112
+ return toGroupedData(data);
113
+ }, [data]);
114
+ var allValues = (0, _react.useMemo)(function () {
115
+ return data.map(function (item) {
116
+ return item.assetName;
117
+ });
118
+ }, [data]);
119
+ var optionByValue = (0, _react.useMemo)(function () {
120
+ var map = new Map();
121
+ data.forEach(function (item) {
122
+ return map.set(item.assetName, toOption(item));
123
+ });
124
+ return map;
125
+ }, [data]);
126
+ var _useState = (0, _react.useState)(false),
127
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
128
+ open = _useState2[0],
129
+ setOpen = _useState2[1];
130
+ var _useState3 = (0, _react.useState)(''),
131
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
132
+ keyword = _useState4[0],
133
+ setKeyword = _useState4[1];
134
+ // `temp` is the in-panel draft; `committed` is the last Applied selection.
135
+ // Only Apply promotes `temp` → `committed` and notifies the parent. With an
136
+ // "All assets" row, "all selected" is represented by an empty array.
137
+ var _useState5 = (0, _react.useState)([]),
138
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
139
+ temp = _useState6[0],
140
+ setTemp = _useState6[1];
141
+ var _useState7 = (0, _react.useState)([]),
142
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
143
+ committed = _useState8[0],
144
+ setCommitted = _useState8[1];
145
+ // The "All assets" row is checked exactly when nothing specific is selected.
146
+ var allChecked = temp.length === 0;
147
+ // While searching, the "All assets" row is meaningless — hide it so a
148
+ // no-match search shows the empty state instead of a lone "All assets".
149
+ var searching = search && keyword.trim().length > 0;
150
+ var filterOption = (0, _react.useCallback)(function (searchValue, option) {
151
+ var term = searchValue.trim().toLowerCase();
152
+ if (!term) return true;
153
+ var mapped = option;
154
+ return typeof mapped.searchText === 'string' ? mapped.searchText.toLowerCase().includes(term) : false;
155
+ }, []);
156
+ (0, _react.useImperativeHandle)(ref, function () {
157
+ return {
158
+ clear: function clear() {
159
+ setTemp([]);
160
+ setCommitted([]);
161
+ },
162
+ reset: function reset() {
163
+ setTemp([]);
164
+ setCommitted([]);
165
+ onReset === null || onReset === void 0 ? void 0 : onReset([]);
166
+ }
167
+ };
168
+ }, [onReset]);
169
+ var handleSelectChange = (0, _react.useCallback)(function (next) {
170
+ var nextValues = (Array.isArray(next) ? next : []).map(String);
171
+ // Selecting every concrete asset collapses to "all" ([]), matching the
172
+ // backend convention that empty == no filter.
173
+ var collapse = nextValues.length === allValues.length;
174
+ setTemp(collapse ? [] : nextValues);
175
+ }, [allValues]);
176
+ var handleAllClick = (0, _react.useCallback)(function () {
177
+ // The "All assets" row is exclusive: turning it on clears specific picks.
178
+ setTemp([]);
179
+ }, []);
180
+ var handleApply = (0, _react.useCallback)(function () {
181
+ setCommitted(temp);
182
+ onApply(temp);
183
+ setOpen(false);
184
+ }, [temp, onApply]);
185
+ var handleReset = (0, _react.useCallback)(function () {
186
+ setTemp([]);
187
+ setCommitted([]);
188
+ onReset === null || onReset === void 0 ? void 0 : onReset([]);
189
+ }, [onReset]);
190
+ var handleOpenChange = (0, _react.useCallback)(function (nextOpen) {
191
+ setOpen(nextOpen);
192
+ if (nextOpen) return;
193
+ // Closing without Apply discards the draft.
194
+ setTemp(committed);
195
+ setKeyword('');
196
+ }, [committed]);
197
+ var renderRow = (0, _react.useCallback)(function (option, checked) {
198
+ var text = typeof option.label === 'string' ? option.label : '';
199
+ return (0, _jsxRuntime.jsxs)(_Flex.Flex, {
200
+ align: 'center',
201
+ justify: 'space-between',
202
+ gap: 8,
203
+ className: "".concat(WRAP_CLS, "__row"),
204
+ children: [(0, _jsxRuntime.jsxs)(_Flex.Flex, {
205
+ align: 'center',
206
+ gap: 8,
207
+ className: "".concat(WRAP_CLS, "__row-main"),
208
+ children: [option.iconUrl && (0, _jsxRuntime.jsx)("img", {
209
+ src: option.iconUrl,
210
+ alt: text,
211
+ width: ICON_SIZE,
212
+ height: ICON_SIZE,
213
+ className: ICON_CLS
214
+ }), (0, _jsxRuntime.jsx)(_Typography.TypographyLabel, {
215
+ size: 'md',
216
+ className: "".concat(WRAP_CLS, "__row-name"),
217
+ children: option.label
218
+ })]
219
+ }), (0, _jsxRuntime.jsx)(_Checkbox.Checkbox, {
220
+ checked: checked,
221
+ readOnly: true,
222
+ className: "".concat(WRAP_CLS, "__row-check")
223
+ })]
224
+ });
225
+ }, []);
226
+ // The trigger reflects the COMMITTED selection only — `temp` is the in-panel
227
+ // draft and must not leak into the trigger before Apply. An empty `committed`
228
+ // means "All assets". `renderValue` short-circuits Select's own placeholder
229
+ // handling, so the empty state must return the "All assets" text explicitly.
230
+ var renderValue = (0, _react.useCallback)(function () {
231
+ if (committed.length === 0) {
232
+ return (0, _jsxRuntime.jsx)(_Typography.TypographyBody, {
233
+ size: 'md',
234
+ className: "".concat(WRAP_CLS, "__value"),
235
+ children: allLabel
236
+ });
237
+ }
238
+ var first = optionByValue.get(committed[0]);
239
+ var firstLabel = first ? first.label : committed[0];
240
+ var extra = committed.length - 1;
241
+ return (0, _jsxRuntime.jsxs)(_Typography.TypographyBody, {
242
+ size: 'md',
243
+ className: "".concat(WRAP_CLS, "__value"),
244
+ children: [(0, _jsxRuntime.jsx)("span", {
245
+ className: "".concat(WRAP_CLS, "__value-label"),
246
+ children: firstLabel
247
+ }), extra > 0 && (0, _jsxRuntime.jsx)("span", {
248
+ className: "".concat(WRAP_CLS, "__value-more"),
249
+ children: MORE_SUFFIX(extra)
250
+ })]
251
+ });
252
+ }, [allLabel, committed, optionByValue]);
253
+ return (0, _jsxRuntime.jsx)(_Select.Select, Object.assign({}, rest, {
254
+ multiple: true,
255
+ size: size,
256
+ label: label,
257
+ placeholder: placeholder,
258
+ className: (0, _classnames.joinCls)(WRAP_CLS, className),
259
+ panelClassName: PANEL_CLS,
260
+ groupLabelClassName: GROUP_LABEL_CLS,
261
+ value: temp,
262
+ open: open,
263
+ onOpenChange: handleOpenChange,
264
+ onChange: handleSelectChange,
265
+ searchable: search,
266
+ searchPlaceholder: searchPlaceholder,
267
+ searchValue: keyword,
268
+ onSearchChange: setKeyword,
269
+ filterOption: filterOption,
270
+ options: groupedData,
271
+ panelHeader: searching ? undefined : (0, _jsxRuntime.jsxs)("button", {
272
+ type: 'button',
273
+ className: (0, _classnames.joinCls)("".concat(WRAP_CLS, "__all"), allChecked && "".concat(WRAP_CLS, "__all--checked")),
274
+ onClick: handleAllClick,
275
+ children: [(0, _jsxRuntime.jsx)(_Typography.TypographyLabel, {
276
+ size: 'md',
277
+ children: allLabel
278
+ }), (0, _jsxRuntime.jsx)(_Checkbox.Checkbox, {
279
+ checked: allChecked,
280
+ readOnly: true,
281
+ className: "".concat(WRAP_CLS, "__row-check")
282
+ })]
283
+ }),
284
+ emptyContent: searchEmpty,
285
+ renderValue: renderValue,
286
+ renderOption: function renderOption(option, meta) {
287
+ return renderRow(option, meta.selected);
288
+ },
289
+ panelFooter: (0, _jsxRuntime.jsxs)(_Flex.Flex, {
290
+ gap: 8,
291
+ className: "".concat(WRAP_CLS, "__footer"),
292
+ children: [(0, _jsxRuntime.jsx)(_Button.Button, {
293
+ color: 'grey',
294
+ size: 'small',
295
+ style: FULL_WIDTH_STYLE,
296
+ onClick: handleReset,
297
+ children: RESET_LABEL
298
+ }), (0, _jsxRuntime.jsx)(_Button.Button, {
299
+ color: 'primary',
300
+ size: 'small',
301
+ style: FULL_WIDTH_STYLE,
302
+ onClick: handleApply,
303
+ children: APPLY_LABEL
304
+ })]
305
+ })
306
+ }));
307
+ };
308
+ var AssetFilter = exports.AssetFilter = /*#__PURE__*/(0, _react.memo)(AssetFilterBase);
309
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbHRlci9Bc3NldC9Bc3NldC5qcyIsImJ1c2luZXNzL0ZpbHRlci9zcmMvYnVzaW5lc3MvRmlsdGVyL0Fzc2V0L0Fzc2V0LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfQnV0dG9uIiwiX0NoZWNrYm94IiwiX0VtcHR5IiwiX0ZsZXgiLCJfSWNvbnMiLCJfU2VsZWN0IiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiV1JBUF9DTFMiLCJQQU5FTF9DTFMiLCJjb25jYXQiLCJHUk9VUF9MQUJFTF9DTFMiLCJJQ09OX0NMUyIsIklDT05fU0laRSIsIkZJQVRfR1JPVVAiLCJDUllQVE9fR1JPVVAiLCJSRVNFVF9MQUJFTCIsIkFQUExZX0xBQkVMIiwiREVGQVVMVF9BTExfTEFCRUwiLCJERUZBVUxUX1BMQUNFSE9MREVSIiwiREVGQVVMVF9TRUFSQ0hfUExBQ0VIT0xERVIiLCJERUZBVUxUX0VNUFRZIiwiX2pzeCIsIkVtcHR5IiwidmFyaWFudCIsImljb24iLCJJY29ucyIsIm5hbWUiLCJzaXplIiwiY29sb3IiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwic3R5bGUiLCJwYWRkaW5nIiwiTU9SRV9TVUZGSVgiLCJjb3VudCIsIkZVTExfV0lEVEhfU1RZTEUiLCJmbGV4IiwidG9PcHRpb24iLCJpdGVtIiwibGFiZWwiLCJhc3NldE5hbWUiLCJ2YWx1ZSIsImljb25VcmwiLCJhc3NldEljb25VcmwiLCJzZWFyY2hUZXh0IiwiYXNzZXREZXNjIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJ0b0dyb3VwZWREYXRhIiwiaXRlbXMiLCJmaWF0IiwiaXNGaWF0IiwibWFwIiwiY3J5cHRvIiwiZGF0YSIsInB1c2giLCJrZXkiLCJvcHRpb25zIiwiQXNzZXRGaWx0ZXJCYXNlIiwiX2EiLCJyZWYiLCJjbGFzc05hbWUiLCJfYSRzaXplIiwiX2EkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsIl9hJGFsbExhYmVsIiwiYWxsTGFiZWwiLCJfYSRzZWFyY2giLCJzZWFyY2giLCJfYSRzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFBsYWNlaG9sZGVyIiwiX2Ekc2VhcmNoRW1wdHkiLCJzZWFyY2hFbXB0eSIsIm9uQXBwbHkiLCJvblJlc2V0IiwicmVzdCIsImdyb3VwZWREYXRhIiwidXNlTWVtbyIsImFsbFZhbHVlcyIsIm9wdGlvbkJ5VmFsdWUiLCJNYXAiLCJmb3JFYWNoIiwic2V0IiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwib3BlbiIsInNldE9wZW4iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImtleXdvcmQiLCJzZXRLZXl3b3JkIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJ0ZW1wIiwic2V0VGVtcCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiY29tbWl0dGVkIiwic2V0Q29tbWl0dGVkIiwiYWxsQ2hlY2tlZCIsInNlYXJjaGluZyIsInRyaW0iLCJmaWx0ZXJPcHRpb24iLCJ1c2VDYWxsYmFjayIsInNlYXJjaFZhbHVlIiwib3B0aW9uIiwidGVybSIsInRvTG93ZXJDYXNlIiwibWFwcGVkIiwiaW5jbHVkZXMiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwiY2xlYXIiLCJyZXNldCIsImhhbmRsZVNlbGVjdENoYW5nZSIsIm5leHQiLCJuZXh0VmFsdWVzIiwiQXJyYXkiLCJpc0FycmF5IiwiU3RyaW5nIiwiY29sbGFwc2UiLCJoYW5kbGVBbGxDbGljayIsImhhbmRsZUFwcGx5IiwiaGFuZGxlUmVzZXQiLCJoYW5kbGVPcGVuQ2hhbmdlIiwibmV4dE9wZW4iLCJyZW5kZXJSb3ciLCJjaGVja2VkIiwidGV4dCIsIl9qc3hzIiwiRmxleCIsImFsaWduIiwianVzdGlmeSIsImdhcCIsImNoaWxkcmVuIiwic3JjIiwiYWx0Iiwid2lkdGgiLCJoZWlnaHQiLCJUeXBvZ3JhcGh5TGFiZWwiLCJDaGVja2JveCIsInJlYWRPbmx5IiwicmVuZGVyVmFsdWUiLCJUeXBvZ3JhcGh5Qm9keSIsImZpcnN0IiwiZ2V0IiwiZmlyc3RMYWJlbCIsImV4dHJhIiwiU2VsZWN0IiwiYXNzaWduIiwibXVsdGlwbGUiLCJqb2luQ2xzIiwicGFuZWxDbGFzc05hbWUiLCJncm91cExhYmVsQ2xhc3NOYW1lIiwib25PcGVuQ2hhbmdlIiwib25DaGFuZ2UiLCJzZWFyY2hhYmxlIiwib25TZWFyY2hDaGFuZ2UiLCJwYW5lbEhlYWRlciIsInVuZGVmaW5lZCIsInR5cGUiLCJvbkNsaWNrIiwiZW1wdHlDb250ZW50IiwicmVuZGVyT3B0aW9uIiwibWV0YSIsInNlbGVjdGVkIiwicGFuZWxGb290ZXIiLCJCdXR0b24iLCJBc3NldEZpbHRlciIsImV4cG9ydHMiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFdBQUEsR0FBQVQsT0FBQTtBRFJBLElBQUlVLE1BQU0sR0FBSSxVQUFRLFNBQUtBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlI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QUFDLE9BQUEsQ0FBQUQsV0FBQSxnQkFBRyxJQUFBRSxXQUFJLEVBQUNqSCxlQUFlLENBQUMiLCJmaWxlIjoiYnVzaW5lc3MvRmlsdGVyL0Fzc2V0L0Fzc2V0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUNhbGxiYWNrLCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvQnV0dG9uJztcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9DaGVja2JveCc7XG5pbXBvcnQgeyBFbXB0eSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRW1wdHknO1xuaW1wb3J0IHsgRmxleCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRmxleCc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvSWNvbnMnO1xuaW1wb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9TZWxlY3QnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5jb25zdCBXUkFQX0NMUyA9ICdvbS1hc3NldC1maWx0ZXInO1xuLy8gVGhlIHBhbmVsIGlzIHBvcnRhbGVkIHRvIDxib2R5Piwgc28gcGFuZWwtc2NvcGVkIG92ZXJyaWRlcyBhcmUga2V5ZWQgb2ZmIHRoaXNcbi8vIGNsYXNzIChwYXNzZWQgYXMgYHBhbmVsQ2xhc3NOYW1lYCkgcmF0aGVyIHRoYW4gdGhlIHRyaWdnZXIgcm9vdC5cbmNvbnN0IFBBTkVMX0NMUyA9IGAke1dSQVBfQ0xTfS1wYW5lbGA7XG5jb25zdCBHUk9VUF9MQUJFTF9DTFMgPSBgJHtXUkFQX0NMU31fX2dyb3VwLWxhYmVsYDtcbmNvbnN0IElDT05fQ0xTID0gYCR7V1JBUF9DTFN9LWljb25gO1xuY29uc3QgSUNPTl9TSVpFID0gMjQ7XG5jb25zdCBGSUFUX0dST1VQID0gJ0Nhc2gnO1xuY29uc3QgQ1JZUFRPX0dST1VQID0gJ1N0YWJsZWNvaW5zJztcbmNvbnN0IFJFU0VUX0xBQkVMID0gJ1Jlc2V0JztcbmNvbnN0IEFQUExZX0xBQkVMID0gJ0FwcGx5JztcbmNvbnN0IERFRkFVTFRfQUxMX0xBQkVMID0gJ0FsbCBhc3NldHMnO1xuY29uc3QgREVGQVVMVF9QTEFDRUhPTERFUiA9ICdBc3NldCc7XG5jb25zdCBERUZBVUxUX1NFQVJDSF9QTEFDRUhPTERFUiA9ICdTZWFyY2gnO1xuY29uc3QgREVGQVVMVF9FTVBUWSA9IChfanN4KEVtcHR5LCB7IHZhcmlhbnQ6ICdmaWxsJywgaWNvbjogX2pzeChJY29ucywgeyBuYW1lOiAnc2VhcmNoJywgc2l6ZTogMTYsIGNvbG9yOiAnY3VycmVudENvbG9yJyB9KSwgdGl0bGU6ICdObyByZXN1bHRzJywgZGVzY3JpcHRpb246ICdUcnkgYSBkaWZmZXJlbnQgbmFtZSBvciBhZGp1c3QgeW91ciBzZWFyY2ggZmlsdGVycy4nLCBzdHlsZTogeyBwYWRkaW5nOiAwIH0gfSkpO1xuY29uc3QgTU9SRV9TVUZGSVggPSAoY291bnQpID0+IGArICR7Y291bnR9IG1vcmVgO1xuY29uc3QgRlVMTF9XSURUSF9TVFlMRSA9IHsgZmxleDogMSB9O1xuY29uc3QgdG9PcHRpb24gPSAoaXRlbSkgPT4gKHtcbiAgICBsYWJlbDogaXRlbS5hc3NldE5hbWUsXG4gICAgdmFsdWU6IGl0ZW0uYXNzZXROYW1lLFxuICAgIGljb25Vcmw6IGl0ZW0uYXNzZXRJY29uVXJsLFxuICAgIC8vIE1hdGNoIHRoZSBzeW1ib2wgYW5kIHRoZSBmdWxsIG5hbWUgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSByb3cgcmVuZGVycy5cbiAgICBzZWFyY2hUZXh0OiBbaXRlbS5hc3NldE5hbWUsIGl0ZW0uYXNzZXREZXNjXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpLFxufSk7XG4vLyBGaWF0IGFzc2V0cyBidWNrZXQgdW5kZXIgXCJDYXNoXCIsIHRoZSByZXN0IHVuZGVyIFwiU3RhYmxlY29pbnNcIi4gRW1wdHkgZ3JvdXBzXG4vLyBhcmUgZHJvcHBlZCBzbyBhIGZpYXQtb25seSAob3IgY3J5cHRvLW9ubHkpIGxpc3Qgc2hvd3MgYSBzaW5nbGUgaGVhZGluZy5cbmNvbnN0IHRvR3JvdXBlZERhdGEgPSAoaXRlbXMpID0+IHtcbiAgICBjb25zdCBmaWF0ID0gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmlzRmlhdCkubWFwKHRvT3B0aW9uKTtcbiAgICBjb25zdCBjcnlwdG8gPSBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlzRmlhdCkubWFwKHRvT3B0aW9uKTtcbiAgICBjb25zdCBkYXRhID0gW107XG4gICAgaWYgKGZpYXQubGVuZ3RoKVxuICAgICAgICBkYXRhLnB1c2goeyBrZXk6IEZJQVRfR1JPVVAsIGxhYmVsOiBGSUFUX0dST1VQLCBvcHRpb25zOiBmaWF0IH0pO1xuICAgIGlmIChjcnlwdG8ubGVuZ3RoKVxuICAgICAgICBkYXRhLnB1c2goeyBrZXk6IENSWVBUT19HUk9VUCwgbGFiZWw6IENSWVBUT19HUk9VUCwgb3B0aW9uczogY3J5cHRvIH0pO1xuICAgIHJldHVybiBkYXRhO1xufTtcbmNvbnN0IEFzc2V0RmlsdGVyQmFzZSA9IChfYSkgPT4ge1xuICAgIHZhciB7IHJlZiwgY2xhc3NOYW1lLCBzaXplID0gJ3NtYWxsJywgbGFiZWwsIHBsYWNlaG9sZGVyID0gREVGQVVMVF9QTEFDRUhPTERFUiwgZGF0YSwgYWxsTGFiZWwgPSBERUZBVUxUX0FMTF9MQUJFTCwgc2VhcmNoID0gdHJ1ZSwgc2VhcmNoUGxhY2Vob2xkZXIgPSBERUZBVUxUX1NFQVJDSF9QTEFDRUhPTERFUiwgc2VhcmNoRW1wdHkgPSBERUZBVUxUX0VNUFRZLCBvbkFwcGx5LCBvblJlc2V0IH0gPSBfYSwgcmVzdCA9IF9fcmVzdChfYSwgW1wicmVmXCIsIFwiY2xhc3NOYW1lXCIsIFwic2l6ZVwiLCBcImxhYmVsXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJkYXRhXCIsIFwiYWxsTGFiZWxcIiwgXCJzZWFyY2hcIiwgXCJzZWFyY2hQbGFjZWhvbGRlclwiLCBcInNlYXJjaEVtcHR5XCIsIFwib25BcHBseVwiLCBcIm9uUmVzZXRcIl0pO1xuICAgIGNvbnN0IGdyb3VwZWREYXRhID0gdXNlTWVtbygoKSA9PiB0b0dyb3VwZWREYXRhKGRhdGEpLCBbZGF0YV0pO1xuICAgIGNvbnN0IGFsbFZhbHVlcyA9IHVzZU1lbW8oKCkgPT4gZGF0YS5tYXAoKGl0ZW0pID0+IGl0ZW0uYXNzZXROYW1lKSwgW2RhdGFdKTtcbiAgICBjb25zdCBvcHRpb25CeVZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgZGF0YS5mb3JFYWNoKChpdGVtKSA9PiBtYXAuc2V0KGl0ZW0uYXNzZXROYW1lLCB0b09wdGlvbihpdGVtKSkpO1xuICAgICAgICByZXR1cm4gbWFwO1xuICAgIH0sIFtkYXRhXSk7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtrZXl3b3JkLCBzZXRLZXl3b3JkXSA9IHVzZVN0YXRlKCcnKTtcbiAgICAvLyBgdGVtcGAgaXMgdGhlIGluLXBhbmVsIGRyYWZ0OyBgY29tbWl0dGVkYCBpcyB0aGUgbGFzdCBBcHBsaWVkIHNlbGVjdGlvbi5cbiAgICAvLyBPbmx5IEFwcGx5IHByb21vdGVzIGB0ZW1wYCDihpIgYGNvbW1pdHRlZGAgYW5kIG5vdGlmaWVzIHRoZSBwYXJlbnQuIFdpdGggYW5cbiAgICAvLyBcIkFsbCBhc3NldHNcIiByb3csIFwiYWxsIHNlbGVjdGVkXCIgaXMgcmVwcmVzZW50ZWQgYnkgYW4gZW1wdHkgYXJyYXkuXG4gICAgY29uc3QgW3RlbXAsIHNldFRlbXBdID0gdXNlU3RhdGUoW10pO1xuICAgIGNvbnN0IFtjb21taXR0ZWQsIHNldENvbW1pdHRlZF0gPSB1c2VTdGF0ZShbXSk7XG4gICAgLy8gVGhlIFwiQWxsIGFzc2V0c1wiIHJvdyBpcyBjaGVja2VkIGV4YWN0bHkgd2hlbiBub3RoaW5nIHNwZWNpZmljIGlzIHNlbGVjdGVkLlxuICAgIGNvbnN0IGFsbENoZWNrZWQgPSB0ZW1wLmxlbmd0aCA9PT0gMDtcbiAgICAvLyBXaGlsZSBzZWFyY2hpbmcsIHRoZSBcIkFsbCBhc3NldHNcIiByb3cgaXMgbWVhbmluZ2xlc3Mg4oCUIGhpZGUgaXQgc28gYVxuICAgIC8vIG5vLW1hdGNoIHNlYXJjaCBzaG93cyB0aGUgZW1wdHkgc3RhdGUgaW5zdGVhZCBvZiBhIGxvbmUgXCJBbGwgYXNzZXRzXCIuXG4gICAgY29uc3Qgc2VhcmNoaW5nID0gc2VhcmNoICYmIGtleXdvcmQudHJpbSgpLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgZmlsdGVyT3B0aW9uID0gdXNlQ2FsbGJhY2soKHNlYXJjaFZhbHVlLCBvcHRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdGVybSA9IHNlYXJjaFZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoIXRlcm0pXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY29uc3QgbWFwcGVkID0gb3B0aW9uO1xuICAgICAgICByZXR1cm4gdHlwZW9mIG1hcHBlZC5zZWFyY2hUZXh0ID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyBtYXBwZWQuc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRlcm0pXG4gICAgICAgICAgICA6IGZhbHNlO1xuICAgIH0sIFtdKTtcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gKHtcbiAgICAgICAgY2xlYXI6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFRlbXAoW10pO1xuICAgICAgICAgICAgc2V0Q29tbWl0dGVkKFtdKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFRlbXAoW10pO1xuICAgICAgICAgICAgc2V0Q29tbWl0dGVkKFtdKTtcbiAgICAgICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldChbXSk7XG4gICAgICAgIH0sXG4gICAgfSksIFtvblJlc2V0XSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0Q2hhbmdlID0gdXNlQ2FsbGJhY2soKG5leHQpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dFZhbHVlcyA9IChBcnJheS5pc0FycmF5KG5leHQpID8gbmV4dCA6IFtdKS5tYXAoU3RyaW5nKTtcbiAgICAgICAgLy8gU2VsZWN0aW5nIGV2ZXJ5IGNvbmNyZXRlIGFzc2V0IGNvbGxhcHNlcyB0byBcImFsbFwiIChbXSksIG1hdGNoaW5nIHRoZVxuICAgICAgICAvLyBiYWNrZW5kIGNvbnZlbnRpb24gdGhhdCBlbXB0eSA9PSBubyBmaWx0ZXIuXG4gICAgICAgIGNvbnN0IGNvbGxhcHNlID0gbmV4dFZhbHVlcy5sZW5ndGggPT09IGFsbFZhbHVlcy5sZW5ndGg7XG4gICAgICAgIHNldFRlbXAoY29sbGFwc2UgPyBbXSA6IG5leHRWYWx1ZXMpO1xuICAgIH0sIFthbGxWYWx1ZXNdKTtcbiAgICBjb25zdCBoYW5kbGVBbGxDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgLy8gVGhlIFwiQWxsIGFzc2V0c1wiIHJvdyBpcyBleGNsdXNpdmU6IHR1cm5pbmcgaXQgb24gY2xlYXJzIHNwZWNpZmljIHBpY2tzLlxuICAgICAgICBzZXRUZW1wKFtdKTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlQXBwbHkgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHNldENvbW1pdHRlZCh0ZW1wKTtcbiAgICAgICAgb25BcHBseSh0ZW1wKTtcbiAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgfSwgW3RlbXAsIG9uQXBwbHldKTtcbiAgICBjb25zdCBoYW5kbGVSZXNldCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2V0VGVtcChbXSk7XG4gICAgICAgIHNldENvbW1pdHRlZChbXSk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldChbXSk7XG4gICAgfSwgW29uUmVzZXRdKTtcbiAgICBjb25zdCBoYW5kbGVPcGVuQ2hhbmdlID0gdXNlQ2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIHNldE9wZW4obmV4dE9wZW4pO1xuICAgICAgICBpZiAobmV4dE9wZW4pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vIENsb3Npbmcgd2l0aG91dCBBcHBseSBkaXNjYXJkcyB0aGUgZHJhZnQuXG4gICAgICAgIHNldFRlbXAoY29tbWl0dGVkKTtcbiAgICAgICAgc2V0S2V5d29yZCgnJyk7XG4gICAgfSwgW2NvbW1pdHRlZF0pO1xuICAgIGNvbnN0IHJlbmRlclJvdyA9IHVzZUNhbGxiYWNrKChvcHRpb24sIGNoZWNrZWQpID0+IHtcbiAgICAgICAgY29uc3QgdGV4dCA9IHR5cGVvZiBvcHRpb24ubGFiZWwgPT09ICdzdHJpbmcnID8gb3B0aW9uLmxhYmVsIDogJyc7XG4gICAgICAgIHJldHVybiAoX2pzeHMoRmxleCwgeyBhbGlnbjogJ2NlbnRlcicsIGp1c3RpZnk6ICdzcGFjZS1iZXR3ZWVuJywgZ2FwOiA4LCBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fcm93YCwgY2hpbGRyZW46IFtfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywgZ2FwOiA4LCBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fcm93LW1haW5gLCBjaGlsZHJlbjogW29wdGlvbi5pY29uVXJsICYmIChfanN4KFwiaW1nXCIsIHsgc3JjOiBvcHRpb24uaWNvblVybCwgYWx0OiB0ZXh0LCB3aWR0aDogSUNPTl9TSVpFLCBoZWlnaHQ6IElDT05fU0laRSwgY2xhc3NOYW1lOiBJQ09OX0NMUyB9KSksIF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IHNpemU6ICdtZCcsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19yb3ctbmFtZWAsIGNoaWxkcmVuOiBvcHRpb24ubGFiZWwgfSldIH0pLCBfanN4KENoZWNrYm94LCB7IGNoZWNrZWQ6IGNoZWNrZWQsIHJlYWRPbmx5OiB0cnVlLCBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fcm93LWNoZWNrYCB9KV0gfSkpO1xuICAgIH0sIFtdKTtcbiAgICAvLyBUaGUgdHJpZ2dlciByZWZsZWN0cyB0aGUgQ09NTUlUVEVEIHNlbGVjdGlvbiBvbmx5IOKAlCBgdGVtcGAgaXMgdGhlIGluLXBhbmVsXG4gICAgLy8gZHJhZnQgYW5kIG11c3Qgbm90IGxlYWsgaW50byB0aGUgdHJpZ2dlciBiZWZvcmUgQXBwbHkuIEFuIGVtcHR5IGBjb21taXR0ZWRgXG4gICAgLy8gbWVhbnMgXCJBbGwgYXNzZXRzXCIuIGByZW5kZXJWYWx1ZWAgc2hvcnQtY2lyY3VpdHMgU2VsZWN0J3Mgb3duIHBsYWNlaG9sZGVyXG4gICAgLy8gaGFuZGxpbmcsIHNvIHRoZSBlbXB0eSBzdGF0ZSBtdXN0IHJldHVybiB0aGUgXCJBbGwgYXNzZXRzXCIgdGV4dCBleHBsaWNpdGx5LlxuICAgIGNvbnN0IHJlbmRlclZhbHVlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBpZiAoY29tbWl0dGVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdtZCcsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X192YWx1ZWAsIGNoaWxkcmVuOiBhbGxMYWJlbCB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlyc3QgPSBvcHRpb25CeVZhbHVlLmdldChjb21taXR0ZWRbMF0pO1xuICAgICAgICBjb25zdCBmaXJzdExhYmVsID0gZmlyc3QgPyBmaXJzdC5sYWJlbCA6IGNvbW1pdHRlZFswXTtcbiAgICAgICAgY29uc3QgZXh0cmEgPSBjb21taXR0ZWQubGVuZ3RoIC0gMTtcbiAgICAgICAgcmV0dXJuIChfanN4cyhUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnbWQnLCBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fdmFsdWVgLCBjaGlsZHJlbjogW19qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX3ZhbHVlLWxhYmVsYCwgY2hpbGRyZW46IGZpcnN0TGFiZWwgfSksIGV4dHJhID4gMCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X192YWx1ZS1tb3JlYCwgY2hpbGRyZW46IE1PUkVfU1VGRklYKGV4dHJhKSB9KV0gfSkpO1xuICAgIH0sIFthbGxMYWJlbCwgY29tbWl0dGVkLCBvcHRpb25CeVZhbHVlXSk7XG4gICAgcmV0dXJuIChfanN4KFNlbGVjdCwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBtdWx0aXBsZTogdHJ1ZSwgc2l6ZTogc2l6ZSwgbGFiZWw6IGxhYmVsLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIGNsYXNzTmFtZTogam9pbkNscyhXUkFQX0NMUywgY2xhc3NOYW1lKSwgcGFuZWxDbGFzc05hbWU6IFBBTkVMX0NMUywgZ3JvdXBMYWJlbENsYXNzTmFtZTogR1JPVVBfTEFCRUxfQ0xTLCB2YWx1ZTogdGVtcCwgb3Blbjogb3Blbiwgb25PcGVuQ2hhbmdlOiBoYW5kbGVPcGVuQ2hhbmdlLCBvbkNoYW5nZTogaGFuZGxlU2VsZWN0Q2hhbmdlLCBzZWFyY2hhYmxlOiBzZWFyY2gsIHNlYXJjaFBsYWNlaG9sZGVyOiBzZWFyY2hQbGFjZWhvbGRlciwgc2VhcmNoVmFsdWU6IGtleXdvcmQsIG9uU2VhcmNoQ2hhbmdlOiBzZXRLZXl3b3JkLCBmaWx0ZXJPcHRpb246IGZpbHRlck9wdGlvbiwgb3B0aW9uczogZ3JvdXBlZERhdGEsIHBhbmVsSGVhZGVyOiBzZWFyY2hpbmcgPyB1bmRlZmluZWQgOiAoX2pzeHMoXCJidXR0b25cIiwgeyB0eXBlOiAnYnV0dG9uJywgY2xhc3NOYW1lOiBqb2luQ2xzKGAke1dSQVBfQ0xTfV9fYWxsYCwgYWxsQ2hlY2tlZCAmJiBgJHtXUkFQX0NMU31fX2FsbC0tY2hlY2tlZGApLCBvbkNsaWNrOiBoYW5kbGVBbGxDbGljaywgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBzaXplOiAnbWQnLCBjaGlsZHJlbjogYWxsTGFiZWwgfSksIF9qc3goQ2hlY2tib3gsIHsgY2hlY2tlZDogYWxsQ2hlY2tlZCwgcmVhZE9ubHk6IHRydWUsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19yb3ctY2hlY2tgIH0pXSB9KSksIGVtcHR5Q29udGVudDogc2VhcmNoRW1wdHksIHJlbmRlclZhbHVlOiByZW5kZXJWYWx1ZSwgcmVuZGVyT3B0aW9uOiAob3B0aW9uLCBtZXRhKSA9PiByZW5kZXJSb3cob3B0aW9uLCBtZXRhLnNlbGVjdGVkKSwgcGFuZWxGb290ZXI6IF9qc3hzKEZsZXgsIHsgZ2FwOiA4LCBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fZm9vdGVyYCwgY2hpbGRyZW46IFtfanN4KEJ1dHRvbiwgeyBjb2xvcjogJ2dyZXknLCBzaXplOiAnc21hbGwnLCBzdHlsZTogRlVMTF9XSURUSF9TVFlMRSwgb25DbGljazogaGFuZGxlUmVzZXQsIGNoaWxkcmVuOiBSRVNFVF9MQUJFTCB9KSwgX2pzeChCdXR0b24sIHsgY29sb3I6ICdwcmltYXJ5Jywgc2l6ZTogJ3NtYWxsJywgc3R5bGU6IEZVTExfV0lEVEhfU1RZTEUsIG9uQ2xpY2s6IGhhbmRsZUFwcGx5LCBjaGlsZHJlbjogQVBQTFlfTEFCRUwgfSldIH0pIH0pKSk7XG59O1xuZXhwb3J0IGNvbnN0IEFzc2V0RmlsdGVyID0gbWVtbyhBc3NldEZpbHRlckJhc2UpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -0,0 +1,2 @@
1
+ export { AssetFilter } from './Asset';
2
+ export * from './interface';
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ AssetFilter: true
8
+ };
9
+ Object.defineProperty(exports, "AssetFilter", {
10
+ enumerable: true,
11
+ get: function get() {
12
+ return _Asset.AssetFilter;
13
+ }
14
+ });
15
+ var _Asset = require("./Asset");
16
+ var _interface = require("./interface");
17
+ Object.keys(_interface).forEach(function (key) {
18
+ if (key === "default" || key === "__esModule") return;
19
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
+ if (key in exports && exports[key] === _interface[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return _interface[key];
25
+ }
26
+ });
27
+ });
28
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbHRlci9zcmMvYnVzaW5lc3MvRmlsdGVyL0Fzc2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbIl9Bc3NldCIsInJlcXVpcmUiLCJfaW50ZXJmYWNlIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfZXhwb3J0TmFtZXMiLCJleHBvcnRzIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUFBRSxNQUFBLENBQUFDLElBQUEsQ0FBQUYsVUFBQSxFQUFBRyxPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBQyxZQUFBLEVBQUFKLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFLLE9BQUEsSUFBQUEsT0FBQSxDQUFBTCxHQUFBLE1BQUFKLFVBQUEsQ0FBQUksR0FBQTtFQUFBSCxNQUFBLENBQUFTLGNBQUEsQ0FBQUQsT0FBQSxFQUFBTCxHQUFBO0lBQUFPLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQVosVUFBQSxDQUFBSSxHQUFBO0lBQUE7RUFBQTtBQUFBIiwiZmlsZSI6ImJ1c2luZXNzL0ZpbHRlci9Bc3NldC9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -0,0 +1,90 @@
1
+ import type { ReactNode, RefObject } from 'react';
2
+ import type { SelectProps, SelectSize } from "../../../components/Select";
3
+ /**
4
+ * A single asset as returned by 1money's asset list endpoint
5
+ * (`/assets` → `data[i]`). The filter reads only the display fields below;
6
+ * other payload fields (`networkName`, `sortOrder`, …) are ignored.
7
+ */
8
+ export interface AssetFilterItem {
9
+ /** Asset symbol — bound to the filter value, e.g. `"USDC"` / `"USD"`. */
10
+ assetName: string;
11
+ /**
12
+ * Full asset name, e.g. `"Circle USD Coin"`. Not rendered, but matched by the
13
+ * search box alongside `assetName`.
14
+ */
15
+ assetDesc?: string;
16
+ /** Public URL of the round asset icon (rendered with `<img>`). */
17
+ assetIconUrl?: string;
18
+ /**
19
+ * Whether the asset is a fiat currency. Drives the group heading: fiat rows
20
+ * bucket under "Cash", the rest under "Stablecoins".
21
+ */
22
+ isFiat?: boolean;
23
+ }
24
+ /** Imperative handle exposed via `ref` for parent-driven reset/clear. */
25
+ export interface AssetFilterHandler {
26
+ /** Wipe the selection to empty (no rows checked) without firing callbacks. */
27
+ clear: () => void;
28
+ /** Restore the initial "All assets" state and fire `onReset`. */
29
+ reset: () => void;
30
+ }
31
+ export interface AssetFilterProps extends Omit<SelectProps, 'ref' | 'options' | 'multiple' | 'value' | 'defaultValue' | 'onChange' | 'searchable' | 'searchValue' | 'defaultSearchValue' | 'onSearchChange' | 'filterOption' | 'renderOption' | 'renderOptionContent' | 'renderValue' | 'panelHeader' | 'panelFooter' | 'emptyContent' | 'open' | 'defaultOpen' | 'onOpenChange' | 'allowDeselect' | 'maxVisibleValues' | 'size' | 'onReset'> {
32
+ ref?: RefObject<AssetFilterHandler | null>;
33
+ /**
34
+ * Trigger size. Mirrors the host filter row sizing.
35
+ * @default 'small'
36
+ */
37
+ size?: SelectSize;
38
+ /** Optional field label rendered above the trigger. */
39
+ label?: ReactNode;
40
+ /**
41
+ * Trigger placeholder shown before any selection.
42
+ * @default 'Asset'
43
+ */
44
+ placeholder?: string;
45
+ /**
46
+ * The raw asset list (`data`). The component groups it into "Cash" (fiat) and
47
+ * "Stablecoins" (the rest), each row showing the asset icon + symbol.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * const assets: AssetFilterItem[] = [
52
+ * { assetName: 'USD', assetDesc: 'United States Dollar', assetIconUrl: '…', isFiat: true },
53
+ * { assetName: 'USDC', assetDesc: 'Circle USD Coin', assetIconUrl: '…', isFiat: false },
54
+ * ];
55
+ * <AssetFilter data={assets} onApply={setAssetNames} />
56
+ * ```
57
+ */
58
+ data: AssetFilterItem[];
59
+ /**
60
+ * Text for the leading "select all" row. Selecting it clears every specific
61
+ * pick; `onApply` then receives `[]` (translate to "no asset filter").
62
+ * @default 'All assets'
63
+ */
64
+ allLabel?: string;
65
+ /**
66
+ * Show a search box above the list (matches the asset symbol and full name).
67
+ * Pass `search={false}` to hide it.
68
+ * @default true
69
+ */
70
+ search?: boolean;
71
+ /**
72
+ * Search-box placeholder. The box matches the asset symbol and full name.
73
+ * @default 'Search'
74
+ */
75
+ searchPlaceholder?: string;
76
+ /**
77
+ * Content shown when the search yields no matching asset. Defaults to an
78
+ * `<Empty icon='search' title='No results' />`.
79
+ */
80
+ searchEmpty?: ReactNode;
81
+ /**
82
+ * Fired when the user commits the selection via the panel's Apply button.
83
+ * Receives the selected asset symbols, or `[]` for "All assets" — the
84
+ * component never injects an `'all'` sentinel, so translate `[]` to whatever
85
+ * your API expects at the call site.
86
+ */
87
+ onApply: (values: string[]) => void;
88
+ /** Fired when the user clears the selection via the panel's Reset button. */
89
+ onReset?: (values: string[]) => void;
90
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3MvRmlsdGVyL0Fzc2V0L2ludGVyZmFjZS5qcyIsIm5hbWVzIjpbXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyIsInNvdXJjZXMiOlsiYnVzaW5lc3MvRmlsdGVyL0Fzc2V0L2ludGVyZmFjZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge307Il0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
@@ -20,32 +20,34 @@
20
20
  * gap: om-spacing-value(2); // Returns 8px if $om-sys-spacing-unit is 4px
21
21
  * }
22
22
  */
23
- .om-dropdown-filter__value {
23
+ .om-asset-filter__value {
24
24
  display: inline-flex;
25
25
  align-items: center;
26
26
  width: 100%;
27
27
  overflow: hidden;
28
28
  line-height: 18px;
29
+ }
30
+ .om-asset-filter__value-label {
31
+ flex: 0 1 auto;
32
+ min-width: 0;
33
+ overflow: hidden;
29
34
  white-space: nowrap;
30
35
  text-overflow: ellipsis;
31
36
  }
32
- .om-dropdown-filter__value-more {
37
+ .om-asset-filter__value-more {
33
38
  flex: 0 0 auto;
34
39
  margin-left: var(--om-spacing-100, 4px);
35
40
  color: var(--om-text-default-tertiary, #646465);
36
41
  }
37
42
 
38
- .om-dropdown-filter-panel {
39
- min-width: 224px;
40
- }
41
- .om-dropdown-filter-panel .om-component-ui-select-panel-header {
43
+ .om-asset-filter-panel .om-component-ui-select-panel-header {
42
44
  margin-bottom: var(--om-spacing-050, 2px);
43
45
  }
44
- .om-dropdown-filter-panel .om-dropdown-filter__group-label {
46
+ .om-asset-filter-panel .om-asset-filter__group-label {
45
47
  padding-top: var(--om-spacing-200, 8px);
46
48
  padding-bottom: var(--om-spacing-050, 2px);
47
49
  }
48
- .om-dropdown-filter-panel .om-dropdown-filter__group-label [class*=om-component-ui-typography] {
50
+ .om-asset-filter-panel .om-asset-filter__group-label [class*=om-component-ui-typography] {
49
51
  font-size: var(--om-body-sm-font-size);
50
52
  font-family: var(--om-body-sm-font-family);
51
53
  line-height: var(--om-body-sm-line-height);
@@ -53,23 +55,23 @@
53
55
  font-weight: var(--om-body-sm-strong-font-weight);
54
56
  color: var(--om-text-default-tertiary, #646465);
55
57
  }
56
- .om-dropdown-filter-panel .om-dropdown-filter__row {
58
+ .om-asset-filter-panel .om-asset-filter__row {
57
59
  width: 100%;
58
60
  }
59
- .om-dropdown-filter-panel .om-dropdown-filter__row-main {
61
+ .om-asset-filter-panel .om-asset-filter__row-main {
60
62
  min-width: 0;
61
63
  }
62
- .om-dropdown-filter-panel .om-dropdown-filter__row-text {
63
- min-width: 0;
64
- }
65
- .om-dropdown-filter-panel .om-dropdown-filter__row-label {
64
+ .om-asset-filter-panel .om-asset-filter__row-name {
66
65
  min-width: 0;
66
+ overflow: hidden;
67
+ white-space: nowrap;
68
+ text-overflow: ellipsis;
67
69
  }
68
- .om-dropdown-filter-panel .om-dropdown-filter__row-check {
70
+ .om-asset-filter-panel .om-asset-filter__row-check {
69
71
  flex: 0 0 auto;
70
72
  pointer-events: none;
71
73
  }
72
- .om-dropdown-filter-panel .om-dropdown-filter__all {
74
+ .om-asset-filter-panel .om-asset-filter__all {
73
75
  display: flex;
74
76
  align-items: center;
75
77
  justify-content: space-between;
@@ -80,11 +82,11 @@
80
82
  border-radius: var(--om-radius-200, 8px);
81
83
  cursor: pointer;
82
84
  }
83
- .om-dropdown-filter-panel .om-dropdown-filter__all:hover, .om-dropdown-filter-panel .om-dropdown-filter__all--checked {
85
+ .om-asset-filter-panel .om-asset-filter__all:hover, .om-asset-filter-panel .om-asset-filter__all--checked {
84
86
  background: var(--om-bg-default-secondary, #f8f8f8);
85
87
  }
86
88
 
87
- .om-dropdown-filter-icon {
89
+ .om-asset-filter-icon {
88
90
  flex: 0 0 auto;
89
91
  width: 24px;
90
92
  height: 24px;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ require("./Asset.css");
4
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbHRlci9Bc3NldC9zcmMvYnVzaW5lc3MvRmlsdGVyL0Fzc2V0L3N0eWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbInJlcXVpcmUiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQUEiLCJmaWxlIjoiYnVzaW5lc3MvRmlsdGVyL0Fzc2V0L3N0eWxlL2Nzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -0,0 +1 @@
1
+ import './Asset.css';
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ require("./Asset.css");
4
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbHRlci9Bc3NldC9zcmMvYnVzaW5lc3MvRmlsdGVyL0Fzc2V0L3N0eWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbInJlcXVpcmUiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQUEiLCJmaWxlIjoiYnVzaW5lc3MvRmlsdGVyL0Fzc2V0L3N0eWxlL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,2 @@
1
+ import type { OptionFilterProps } from './interface';
2
+ export declare const OptionFilter: import("react").NamedExoticComponent<OptionFilterProps>;