@activecollab/components 2.0.208 → 2.0.209
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Autocomplete/Autocomplete.js +79 -211
- package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/cjs/components/ComboBox/ComboBox.js +2 -4
- package/dist/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/cjs/components/Input/InputTime.js +2 -4
- package/dist/cjs/components/Input/InputTime.js.map +1 -1
- package/dist/cjs/components/Select/OptionGroup/OptionGroup.js +16 -6
- package/dist/cjs/components/Select/OptionGroup/OptionGroup.js.map +1 -1
- package/dist/cjs/components/Select/OptionGroup/Styles.js +1 -1
- package/dist/cjs/components/Select/OptionGroup/Styles.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +2 -4
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/hooks/useHighlightText.js +0 -1
- package/dist/cjs/hooks/useHighlightText.js.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.d.ts +3 -6
- package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.js +58 -185
- package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/esm/components/ComboBox/ComboBox.d.ts.map +1 -1
- package/dist/esm/components/ComboBox/ComboBox.js +1 -3
- package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/esm/components/Input/InputTime.d.ts +0 -1
- package/dist/esm/components/Input/InputTime.d.ts.map +1 -1
- package/dist/esm/components/Input/InputTime.js +1 -3
- package/dist/esm/components/Input/InputTime.js.map +1 -1
- package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionGroup/OptionGroup.js +10 -6
- package/dist/esm/components/Select/OptionGroup/OptionGroup.js.map +1 -1
- package/dist/esm/components/Select/OptionGroup/Styles.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionGroup/Styles.js +1 -1
- package/dist/esm/components/Select/OptionGroup/Styles.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts +0 -1
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +1 -3
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/hooks/useHighlightText.d.ts.map +1 -1
- package/dist/esm/hooks/useHighlightText.js +0 -1
- package/dist/esm/hooks/useHighlightText.js.map +1 -1
- package/dist/index.js +104 -234
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -2
|
@@ -7,7 +7,7 @@ exports.Autocomplete = void 0;
|
|
|
7
7
|
exports.isOptionGroup = isOptionGroup;
|
|
8
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var
|
|
10
|
+
var _reactCustomScrollbars = require("react-custom-scrollbars-2");
|
|
11
11
|
var _HandleKeyboard = require("./HandleKeyboard");
|
|
12
12
|
var _Styles = require("./Styles");
|
|
13
13
|
var _useHighlightText = _interopRequireDefault(require("../../hooks/useHighlightText"));
|
|
@@ -60,11 +60,9 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
|
|
|
60
60
|
autoHeightMax = _ref$autoHeightMax === void 0 ? 340 : _ref$autoHeightMax,
|
|
61
61
|
clearInputOnSelect = _ref.clearInputOnSelect,
|
|
62
62
|
_ref$mixedOptions = _ref.mixedOptions,
|
|
63
|
-
mixedOptions = _ref$mixedOptions === void 0 ? [] : _ref$mixedOptions
|
|
64
|
-
filterCriteria = _ref.filterCriteria,
|
|
65
|
-
disableVirtualization = _ref.disableVirtualization;
|
|
66
|
-
var listContainerRef = (0, _react.useRef)(null);
|
|
63
|
+
mixedOptions = _ref$mixedOptions === void 0 ? [] : _ref$mixedOptions;
|
|
67
64
|
var itemRef = (0, _react.useRef)(null);
|
|
65
|
+
var listRef = (0, _react.useRef)(null);
|
|
68
66
|
var selectedOptions = (0, _react.useMemo)(function () {
|
|
69
67
|
if (Array.isArray(selected)) {
|
|
70
68
|
return selected;
|
|
@@ -106,9 +104,9 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
|
|
|
106
104
|
} else {
|
|
107
105
|
return opts.sort(sortOptions);
|
|
108
106
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
107
|
+
|
|
108
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
109
|
+
}, []);
|
|
112
110
|
var sortList = (0, _react.useCallback)(function (options) {
|
|
113
111
|
var _options$;
|
|
114
112
|
if (disabledInternalSort) {
|
|
@@ -132,22 +130,20 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
|
|
|
132
130
|
return handleSort(_sortedOptions);
|
|
133
131
|
}
|
|
134
132
|
}, [sortDirection, disabledInternalSort, handleSort]);
|
|
135
|
-
var
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
sortedList = _useState2[0];
|
|
140
|
-
var _useState3 = (0, _react.useState)({
|
|
133
|
+
var sortedList = (0, _react.useMemo)(function () {
|
|
134
|
+
return sortList(options);
|
|
135
|
+
}, [options, sortList]);
|
|
136
|
+
var _useState = (0, _react.useState)({
|
|
141
137
|
item: undefined,
|
|
142
138
|
by: undefined
|
|
143
139
|
}),
|
|
140
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
141
|
+
hover = _useState2[0],
|
|
142
|
+
setHover = _useState2[1];
|
|
143
|
+
var _useState3 = (0, _react.useState)(""),
|
|
144
144
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
var _useState5 = (0, _react.useState)(""),
|
|
148
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
149
|
-
filter = _useState6[0],
|
|
150
|
-
setFilter = _useState6[1];
|
|
145
|
+
filter = _useState4[0],
|
|
146
|
+
setFilter = _useState4[1];
|
|
151
147
|
var handleEmpty = (0, _react.useCallback)(function (e) {
|
|
152
148
|
if (e && e.button !== 0) {
|
|
153
149
|
return;
|
|
@@ -175,20 +171,24 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
|
|
|
175
171
|
return option.name.toLowerCase() !== filter.trim().toLowerCase();
|
|
176
172
|
}));
|
|
177
173
|
}, [emptyValue, filter, options]);
|
|
174
|
+
var renderAddNew = (0, _react.useMemo)(function () {
|
|
175
|
+
return /*#__PURE__*/_react.default.createElement(_Styles.StyledAutocompleteNewItem, {
|
|
176
|
+
ref: hover.item === "addNew" ? itemRef : null,
|
|
177
|
+
key: "emptyValue",
|
|
178
|
+
hover: hover.item === "addNew",
|
|
179
|
+
onMouseDown: handleEmpty,
|
|
180
|
+
onMouseEnter: onAddNewMouseEnter
|
|
181
|
+
}, emptyValue);
|
|
182
|
+
}, [emptyValue, handleEmpty, hover, onAddNewMouseEnter]);
|
|
178
183
|
var filterOptions = (0, _react.useCallback)(function (options, filter) {
|
|
179
184
|
var trimmedFilter = filter.trim();
|
|
180
185
|
var isGrouped = options[0] && isOptionGroup(options[0]);
|
|
181
|
-
var matchesFilter = function matchesFilter(option) {
|
|
182
|
-
var nameMatch = option.name.toLowerCase().includes(trimmedFilter.toLowerCase());
|
|
183
|
-
if (filterCriteria && trimmedFilter) {
|
|
184
|
-
return nameMatch || filterCriteria(option, trimmedFilter);
|
|
185
|
-
}
|
|
186
|
-
return nameMatch;
|
|
187
|
-
};
|
|
188
186
|
if (isGrouped) {
|
|
189
187
|
var hovered = false;
|
|
190
188
|
return options.reduce(function (acc, groupedOption) {
|
|
191
|
-
var filteredOptions = groupedOption.options.filter(
|
|
189
|
+
var filteredOptions = groupedOption.options.filter(function (v) {
|
|
190
|
+
return v.name.toLowerCase().includes(trimmedFilter.toLowerCase());
|
|
191
|
+
});
|
|
192
192
|
if (filteredOptions.length > 0) {
|
|
193
193
|
if (!hovered && filter) {
|
|
194
194
|
setHover({
|
|
@@ -204,7 +204,9 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
|
|
|
204
204
|
return [...acc];
|
|
205
205
|
}, []);
|
|
206
206
|
} else {
|
|
207
|
-
var filteredOptions = options.filter(
|
|
207
|
+
var filteredOptions = options.filter(function (v) {
|
|
208
|
+
return v.name.toLowerCase().includes(trimmedFilter.toLowerCase());
|
|
209
|
+
});
|
|
208
210
|
if (filter && filteredOptions.length > 0) {
|
|
209
211
|
setHover({
|
|
210
212
|
item: filteredOptions[0].id,
|
|
@@ -219,7 +221,7 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
|
|
|
219
221
|
}
|
|
220
222
|
return filteredOptions;
|
|
221
223
|
}
|
|
222
|
-
}, [emptyValue
|
|
224
|
+
}, [emptyValue]);
|
|
223
225
|
var list = (0, _react.useMemo)(function () {
|
|
224
226
|
return filterOptions(sortedList, filter);
|
|
225
227
|
}, [filter, filterOptions, sortedList]);
|
|
@@ -235,67 +237,6 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
|
|
|
235
237
|
}, []);
|
|
236
238
|
return filterOptions(options, filter);
|
|
237
239
|
}, [filter, filterOptions, list]);
|
|
238
|
-
var showNoResultCondition = (0, _react.useMemo)(function () {
|
|
239
|
-
return noResultText && !showAddNew && list.length < 1 && (defaultValue && filter || !defaultValue);
|
|
240
|
-
}, [noResultText, showAddNew, list.length, defaultValue, filter]);
|
|
241
|
-
var virtualItems = (0, _react.useMemo)(function () {
|
|
242
|
-
var items = [];
|
|
243
|
-
if (showDefaultOption) {
|
|
244
|
-
items.push({
|
|
245
|
-
type: "default",
|
|
246
|
-
id: "default"
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
list.forEach(function (item, index) {
|
|
250
|
-
if (isOptionGroup(item)) {
|
|
251
|
-
items.push({
|
|
252
|
-
type: "group",
|
|
253
|
-
id: item.id,
|
|
254
|
-
item
|
|
255
|
-
});
|
|
256
|
-
item.options.forEach(function (option) {
|
|
257
|
-
items.push({
|
|
258
|
-
type: "option",
|
|
259
|
-
id: option.id,
|
|
260
|
-
item: option,
|
|
261
|
-
index
|
|
262
|
-
});
|
|
263
|
-
});
|
|
264
|
-
} else {
|
|
265
|
-
items.push({
|
|
266
|
-
type: "option",
|
|
267
|
-
id: item.id,
|
|
268
|
-
item,
|
|
269
|
-
index
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
});
|
|
273
|
-
if (showNoResultCondition) {
|
|
274
|
-
items.push({
|
|
275
|
-
type: "noResult",
|
|
276
|
-
id: "noResult"
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
if (showAddNew) {
|
|
280
|
-
items.push({
|
|
281
|
-
type: "addNew",
|
|
282
|
-
id: "addNew"
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
return items;
|
|
286
|
-
}, [list, showDefaultOption, showNoResultCondition, showAddNew]);
|
|
287
|
-
var shouldUseVirtualization = !disableVirtualization && virtualItems.length > 40;
|
|
288
|
-
var rowVirtualizer = (0, _reactVirtual.useVirtualizer)({
|
|
289
|
-
count: virtualItems.length,
|
|
290
|
-
getScrollElement: function getScrollElement() {
|
|
291
|
-
return listContainerRef.current;
|
|
292
|
-
},
|
|
293
|
-
estimateSize: function estimateSize() {
|
|
294
|
-
return 28;
|
|
295
|
-
},
|
|
296
|
-
overscan: 5,
|
|
297
|
-
gap: 4
|
|
298
|
-
});
|
|
299
240
|
var handleInputChange = (0, _react.useCallback)(function (e) {
|
|
300
241
|
if (e.target && !(e.key === "ArrowDown") && !(e.key === "ArrowUp") && !(e.key === "Enter")) {
|
|
301
242
|
setFilter(e.target.value);
|
|
@@ -374,7 +315,7 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
|
|
|
374
315
|
}
|
|
375
316
|
return /*#__PURE__*/_react.default.createElement(_Option.Option, {
|
|
376
317
|
name: item.name,
|
|
377
|
-
ref:
|
|
318
|
+
ref: itemRef,
|
|
378
319
|
key: index,
|
|
379
320
|
tooltip: item.tooltip,
|
|
380
321
|
onMouseEnter: handleMouseEnter,
|
|
@@ -400,18 +341,23 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
|
|
|
400
341
|
by: "mouse"
|
|
401
342
|
});
|
|
402
343
|
}, []);
|
|
344
|
+
var handleScroll = (0, _react.useCallback)(function (list, itemOffset) {
|
|
345
|
+
if (list.getClientHeight() + list.getScrollTop() < itemOffset + 40) {
|
|
346
|
+
return list.scrollTop(itemOffset - list.getClientHeight() + 30);
|
|
347
|
+
}
|
|
348
|
+
if (list.getScrollTop() > itemOffset) {
|
|
349
|
+
return list.scrollTop(itemOffset);
|
|
350
|
+
}
|
|
351
|
+
}, []);
|
|
403
352
|
(0, _react.useEffect)(function () {
|
|
404
353
|
if (hover.by === "keyboard" && hover.item !== undefined) {
|
|
405
|
-
var
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
rowVirtualizer.scrollToIndex(index, {
|
|
410
|
-
align: "center"
|
|
411
|
-
});
|
|
354
|
+
var item = itemRef.current;
|
|
355
|
+
var _list = listRef.current;
|
|
356
|
+
if (itemRef && item && _list) {
|
|
357
|
+
handleScroll(_list, item.offsetTop);
|
|
412
358
|
}
|
|
413
359
|
}
|
|
414
|
-
}, [
|
|
360
|
+
}, [handleScroll, hover]);
|
|
415
361
|
var handleOnKeyDown = (0, _react.useCallback)(function (e) {
|
|
416
362
|
if (e.key === "Enter") {
|
|
417
363
|
e.preventDefault();
|
|
@@ -454,126 +400,48 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
|
|
|
454
400
|
return selectedOptions[0] === null || selectedOptions.length === flatOptions.length;
|
|
455
401
|
}
|
|
456
402
|
}, [flatOptions.length, preselectDefaultValue, selectedOptions]);
|
|
457
|
-
var
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
hover: hover.item === null,
|
|
464
|
-
onMouseEnter: handleMouseEnter,
|
|
465
|
-
onClick: function onClick(e) {
|
|
466
|
-
e.preventDefault();
|
|
467
|
-
toggleSelected(null);
|
|
468
|
-
},
|
|
469
|
-
renderOption: renderOption({
|
|
470
|
-
name: defaultValue,
|
|
471
|
-
id: null
|
|
472
|
-
}, {
|
|
473
|
-
checked: isDefaultOptionSelected(),
|
|
474
|
-
hover: hover.item === null,
|
|
475
|
-
onChange: function onChange() {
|
|
476
|
-
return null;
|
|
477
|
-
}
|
|
478
|
-
})
|
|
479
|
-
});
|
|
480
|
-
case "group":
|
|
481
|
-
if (!virtualItem.item || !isOptionGroup(virtualItem.item)) return null;
|
|
482
|
-
return /*#__PURE__*/_react.default.createElement(_OptionGroup.OptionGroup, {
|
|
483
|
-
checked: selectedOptions,
|
|
484
|
-
name: virtualItem.item.name,
|
|
485
|
-
tooltip: virtualItem.item.tooltip,
|
|
486
|
-
key: virtualItem.item.id,
|
|
487
|
-
setHover: handleHoverCallback,
|
|
488
|
-
id: virtualItem.item.id,
|
|
489
|
-
hover: hover.item,
|
|
490
|
-
options: virtualItem.item.options,
|
|
491
|
-
renderOptions: handleRenderOption,
|
|
492
|
-
type: type,
|
|
493
|
-
onChange: handleChange,
|
|
494
|
-
filter: filter,
|
|
495
|
-
mixedOptions: mixedOptions
|
|
496
|
-
});
|
|
497
|
-
case "option":
|
|
498
|
-
if (!virtualItem.item || isOptionGroup(virtualItem.item)) return null;
|
|
499
|
-
return /*#__PURE__*/_react.default.createElement(_Option.Option, {
|
|
500
|
-
name: virtualItem.item.name,
|
|
501
|
-
ref: hover.item === virtualItem.id ? itemRef : null,
|
|
502
|
-
key: index,
|
|
503
|
-
tooltip: virtualItem.item.tooltip,
|
|
504
|
-
onMouseEnter: function onMouseEnter() {
|
|
505
|
-
return handleMouseEnter(virtualItem.id);
|
|
506
|
-
},
|
|
507
|
-
onClick: handleClick,
|
|
508
|
-
id: virtualItem.id,
|
|
509
|
-
hover: virtualItem.id === hover.item,
|
|
510
|
-
className: optionClassName,
|
|
511
|
-
renderOption: renderOption(_objectSpread(_objectSpread({}, virtualItem.item), {}, {
|
|
512
|
-
name: (0, _useHighlightText.default)(virtualItem.item.name, filter)
|
|
513
|
-
}), {
|
|
514
|
-
id: "option_".concat(virtualItem.id),
|
|
515
|
-
checked: selectedOptions && selectedOptions.includes(virtualItem.id),
|
|
516
|
-
hover: hover.item === virtualItem.id,
|
|
517
|
-
onChange: function onChange() {
|
|
518
|
-
return null;
|
|
519
|
-
}
|
|
520
|
-
})
|
|
521
|
-
});
|
|
522
|
-
case "noResult":
|
|
523
|
-
return /*#__PURE__*/_react.default.createElement(_StyledStyledOption, null, noResultText);
|
|
524
|
-
case "addNew":
|
|
525
|
-
return /*#__PURE__*/_react.default.createElement(_Styles.StyledAutocompleteNewItem, {
|
|
526
|
-
ref: hover.item === "addNew" ? itemRef : null,
|
|
527
|
-
key: "emptyValue",
|
|
528
|
-
hover: hover.item === "addNew",
|
|
529
|
-
onMouseDown: handleEmpty,
|
|
530
|
-
onMouseEnter: onAddNewMouseEnter
|
|
531
|
-
}, emptyValue);
|
|
532
|
-
default:
|
|
533
|
-
return null;
|
|
534
|
-
}
|
|
535
|
-
}, [defaultValue, hover.item, handleMouseEnter, renderOption, isDefaultOptionSelected, selectedOptions, handleHoverCallback, handleRenderOption, type, handleChange, filter, mixedOptions, handleClick, optionClassName, noResultText, handleEmpty, onAddNewMouseEnter, emptyValue, toggleSelected]);
|
|
403
|
+
var showNoResult = (0, _react.useMemo)(function () {
|
|
404
|
+
return noResultText && !showAddNew && list.length < 1 && (defaultValue && filter || !defaultValue);
|
|
405
|
+
}, [noResultText, showAddNew, list.length, defaultValue, filter]);
|
|
406
|
+
var renderNoResult = (0, _react.useMemo)(function () {
|
|
407
|
+
return /*#__PURE__*/_react.default.createElement(_StyledStyledOption, null, noResultText);
|
|
408
|
+
}, [noResultText]);
|
|
536
409
|
return /*#__PURE__*/_react.default.createElement(_Styles.StyledAutocompleteScrollShadow, {
|
|
537
410
|
className: AutocompleteClassName,
|
|
538
411
|
$isHidden: !defaultValue && !emptyValue && !noResultText && list.length < 1
|
|
539
412
|
}, function (_ref2) {
|
|
540
|
-
var
|
|
413
|
+
var onScroll = _ref2.onScroll;
|
|
541
414
|
return /*#__PURE__*/_react.default.createElement(_Styles.StyledAutocompleteBody, {
|
|
542
415
|
key: "body",
|
|
543
416
|
onMouseLeave: handleOnMouseLeave
|
|
544
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
545
|
-
ref:
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
417
|
+
}, /*#__PURE__*/_react.default.createElement(_reactCustomScrollbars.Scrollbars, {
|
|
418
|
+
ref: listRef,
|
|
419
|
+
key: "scrollBar",
|
|
420
|
+
autoHeight: true,
|
|
421
|
+
autoHeightMax: autoHeightMax,
|
|
422
|
+
onScroll: onScroll
|
|
423
|
+
}, defaultValue && !filter && /*#__PURE__*/_react.default.createElement(_Option.Option, {
|
|
424
|
+
name: defaultValue,
|
|
425
|
+
ref: itemRef,
|
|
426
|
+
hover: hover.item === null,
|
|
427
|
+
onMouseEnter: handleMouseEnter,
|
|
428
|
+
onClick: function onClick(e) {
|
|
429
|
+
e.preventDefault();
|
|
430
|
+
toggleSelected(null);
|
|
549
431
|
},
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
}
|
|
559
|
-
}, shouldUseVirtualization ? rowVirtualizer.getVirtualItems().map(function (virtualRow) {
|
|
560
|
-
var item = virtualItems[virtualRow.index];
|
|
561
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
562
|
-
key: virtualRow.index,
|
|
563
|
-
"data-index": virtualRow.index,
|
|
564
|
-
style: {
|
|
565
|
-
position: "absolute",
|
|
566
|
-
top: 0,
|
|
567
|
-
left: 0,
|
|
568
|
-
width: "100%",
|
|
569
|
-
transform: "translateY(".concat(virtualRow.start, "px)")
|
|
432
|
+
renderOption: renderOption({
|
|
433
|
+
name: defaultValue,
|
|
434
|
+
id: null
|
|
435
|
+
}, {
|
|
436
|
+
checked: isDefaultOptionSelected(),
|
|
437
|
+
hover: hover.item === null,
|
|
438
|
+
onChange: function onChange() {
|
|
439
|
+
return null;
|
|
570
440
|
}
|
|
571
|
-
}
|
|
572
|
-
})
|
|
573
|
-
return
|
|
574
|
-
|
|
575
|
-
}, renderVirtualItem(item, index));
|
|
576
|
-
}))));
|
|
441
|
+
})
|
|
442
|
+
}), list.map(function (item, index) {
|
|
443
|
+
return handleRenderOption(item, index);
|
|
444
|
+
}), showNoResult && renderNoResult, showAddNew && renderAddNew));
|
|
577
445
|
});
|
|
578
446
|
};
|
|
579
447
|
Autocomplete.displayName = "Autocomplete";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.js","names":["_react","_interopRequireWildcard","require","_reactVirtual","_HandleKeyboard","_Styles","_useHighlightText","_interopRequireDefault","_Option","_Styles2","_OptionGroup","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","len","length","arr2","l","Symbol","iterator","f","next","done","push","value","return","isArray","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","_toPropertyKey","configurable","writable","_toPrimitive","String","toPrimitive","Number","isOptionGroup","item","options","undefined","Autocomplete","exports","_ref","type","_ref$options","inputEl","_ref$selected","selected","emptyValue","noResultText","_ref$renderOption","renderOption","option","defaultValue","_ref$sortDirection","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","_ref$keepSameOptionsO","keepSameOptionsOrder","_ref$autoHeightMax","autoHeightMax","clearInputOnSelect","_ref$mixedOptions","mixedOptions","filterCriteria","disableVirtualization","listContainerRef","useRef","itemRef","selectedOptions","useMemo","handleSort","useCallback","opts","_opts$","isGrouped","sortOptions","b","aSelected","includes","id","bSelected","aMixed","bMixed","map","group","sortedGroupOptions","sort","sortList","_options$","sortedOptions","localeCompare","_useState","useState","_useState2","sortedList","_useState3","by","_useState4","hover","setHover","_useState5","_useState6","setFilter","handleEmpty","button","_inputEl$current","current","focus","onAddNewMouseEnter","showAddNew","trim","every","v","toLowerCase","filterOptions","trimmedFilter","matchesFilter","nameMatch","hovered","reduce","acc","groupedOption","filteredOptions","list","showDefaultOption","flatOptions","showNoResultCondition","virtualItems","items","index","shouldUseVirtualization","rowVirtualizer","useVirtualizer","count","getScrollElement","estimateSize","overscan","gap","handleInputChange","target","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","createElement","OptionGroup","checked","tooltip","renderOptions","onChange","Option","ref","onMouseEnter","onClick","className","highlightText","concat","handleOnMouseLeave","useEffect","findIndex","scrollToIndex","align","handleOnKeyDown","handleKeyboardMovement","_inputEl$current2","listenerTarget","document","addEventListener","removeEventListener","isDefaultOptionSelected","renderVirtualItem","virtualItem","_StyledStyledOption","StyledAutocompleteNewItem","onMouseDown","StyledAutocompleteScrollShadow","$isHidden","_ref2","onScroll","StyledAutocompleteBody","onMouseLeave","style","height","Math","min","getTotalSize","overflow","width","position","getVirtualItems","virtualRow","top","left","transform","start","Fragment","displayName","_styledComponents","StyledOption","withConfig","componentId"],"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, {\n type FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n type ReactNode,\n type ReactElement,\n type MutableRefObject,\n} from \"react\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { type IOptionItemProps, Option } from \"../Select/Option\";\nimport { StyledOption } from \"../Select/Option/Styles\";\nimport { type IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Mixed options values */\n mixedOptions?: (string | number)[];\n /** Input Element. */\n inputEl?: MutableRefObject<HTMLInputElement | null | undefined>;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n /** Clear input on select - works in single mode */\n clearInputOnSelect?: boolean;\n /** Custom filter function for additional filtering criteria */\n filterCriteria?: (option: IOptionItemProps, filter: string) => boolean;\n disableVirtualization?: boolean;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\ninterface VirtualItem {\n type: \"default\" | \"option\" | \"group\" | \"addNew\" | \"noResult\";\n id: string | number;\n item?: IOptionItemProps | IOptionGroupProps;\n index?: number;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n clearInputOnSelect,\n mixedOptions = [],\n filterCriteria,\n disableVirtualization,\n}) => {\n const listContainerRef = useRef<HTMLDivElement>(null);\n const itemRef = useRef<HTMLLIElement>(null);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n const handleSort = useCallback(\n (opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n\n const isGrouped = Array.isArray(opts[0]?.options);\n\n const sortOptions = (a, b) => {\n const aSelected = selectedOptions.includes(a.id);\n const bSelected = selectedOptions.includes(b.id);\n const aMixed = mixedOptions.includes(a.id);\n const bMixed = mixedOptions.includes(b.id);\n\n if (aSelected && !bSelected) {\n return -1;\n }\n if (!aSelected && bSelected) {\n return 1;\n }\n if (aMixed && !bMixed) {\n return -1;\n }\n if (!aMixed && bMixed) {\n return 1;\n }\n return 0;\n };\n\n if (isGrouped) {\n return opts.map((group) => {\n const sortedGroupOptions = group.options.sort(sortOptions);\n\n return {\n ...group,\n options: sortedGroupOptions,\n };\n });\n } else {\n return opts.sort(sortOptions);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [mixedOptions, selectedOptions]\n );\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n\n const isGrouped = Array.isArray(options[0]?.options);\n\n if (isGrouped) {\n const sortedOptions = options.map((group) => {\n const sortedGroupOptions = group.options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return {\n ...group,\n options: handleSort(sortedGroupOptions),\n };\n });\n\n return handleSort(sortedOptions);\n } else {\n const sortedOptions = options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return handleSort(sortedOptions);\n }\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const [sortedList] = useState(() => sortList(options));\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.current?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isOptionGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isOptionGroup(options[0]);\n\n const matchesFilter = (option: IOptionItemProps) => {\n const nameMatch = option.name\n .toLowerCase()\n .includes(trimmedFilter.toLowerCase());\n\n if (filterCriteria && trimmedFilter) {\n return nameMatch || filterCriteria(option, trimmedFilter);\n }\n\n return nameMatch;\n };\n\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter(matchesFilter);\n\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter(matchesFilter);\n\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue, filterCriteria]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const showNoResultCondition = useMemo(\n () =>\n noResultText &&\n !showAddNew &&\n list.length < 1 &&\n ((defaultValue && filter) || !defaultValue),\n [noResultText, showAddNew, list.length, defaultValue, filter]\n );\n\n const virtualItems = useMemo(() => {\n const items: VirtualItem[] = [];\n\n if (showDefaultOption) {\n items.push({\n type: \"default\",\n id: \"default\",\n });\n }\n\n list.forEach((item, index) => {\n if (isOptionGroup(item)) {\n items.push({\n type: \"group\",\n id: item.id,\n item,\n });\n\n item.options.forEach((option) => {\n items.push({\n type: \"option\",\n id: option.id,\n item: option,\n index,\n });\n });\n } else {\n items.push({\n type: \"option\",\n id: item.id,\n item,\n index,\n });\n }\n });\n\n if (showNoResultCondition) {\n items.push({\n type: \"noResult\",\n id: \"noResult\",\n });\n }\n\n if (showAddNew) {\n items.push({\n type: \"addNew\",\n id: \"addNew\",\n });\n }\n\n return items;\n }, [list, showDefaultOption, showNoResultCondition, showAddNew]);\n\n const shouldUseVirtualization =\n !disableVirtualization && virtualItems.length > 40;\n\n const rowVirtualizer = useVirtualizer({\n count: virtualItems.length,\n getScrollElement: () => listContainerRef.current,\n estimateSize: () => 28,\n overscan: 5,\n gap: 4,\n });\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const toggleSelected = useCallback(\n (id) => {\n let result;\n\n if (id !== null) {\n if (type === \"multiple\") {\n if (selectedOptions.includes(id)) {\n result = selectedOptions.filter((_id) => _id !== id);\n } else {\n result = [...selectedOptions, id];\n }\n } else {\n result = id;\n }\n if (clearInputOnSelect && inputEl?.current) {\n inputEl.current.value = \"\";\n inputEl.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n setFilter(\"\");\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n return;\n }\n }\n\n if (typeof handleChange === \"function\") {\n handleChange(result);\n }\n },\n [\n clearInputOnSelect,\n handleChange,\n handleDefaultOptionChange,\n inputEl,\n selectedOptions,\n type,\n ]\n );\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleClick = useCallback(\n (e) => {\n e.preventDefault();\n toggleSelected(hover.item);\n },\n [toggleSelected, hover]\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps, index) => {\n if (isOptionGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n tooltip={item.tooltip}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={hover.item === item.id ? itemRef : null}\n key={index}\n tooltip={item.tooltip}\n onMouseEnter={handleMouseEnter}\n onClick={handleClick}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleClick,\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n mixedOptions,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const index = virtualItems.findIndex((item) => item.id === hover.item);\n if (index !== -1) {\n rowVirtualizer.scrollToIndex(index, { align: \"center\" });\n }\n }\n }, [hover, rowVirtualizer, virtualItems]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n\n if (typeof hover.item !== \"undefined\" || hover.item !== null) {\n toggleSelected(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n toggleSelected,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n useEffect(() => {\n const listenerTarget = inputEl?.current ?? document;\n listenerTarget.addEventListener(\"input\", handleInputChange);\n listenerTarget.addEventListener(\"keydown\", handleOnKeyDown);\n return () => {\n listenerTarget.removeEventListener(\"input\", handleInputChange);\n listenerTarget.removeEventListener(\"keydown\", handleOnKeyDown);\n };\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const renderVirtualItem = useCallback(\n (virtualItem: VirtualItem, index: number) => {\n switch (virtualItem.type) {\n case \"default\":\n return (\n <Option\n name={String(defaultValue)}\n ref={hover.item === null ? itemRef : null}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n onClick={(e) => {\n e.preventDefault();\n toggleSelected(null);\n }}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"group\":\n if (!virtualItem.item || !isOptionGroup(virtualItem.item))\n return null;\n return (\n <OptionGroup\n checked={selectedOptions}\n name={virtualItem.item.name}\n tooltip={virtualItem.item.tooltip}\n key={virtualItem.item.id}\n setHover={handleHoverCallback}\n id={virtualItem.item.id}\n hover={hover.item}\n options={virtualItem.item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n\n case \"option\":\n if (!virtualItem.item || isOptionGroup(virtualItem.item)) return null;\n return (\n <Option\n name={(virtualItem.item as IOptionItemProps).name}\n ref={hover.item === virtualItem.id ? itemRef : null}\n key={index}\n tooltip={(virtualItem.item as IOptionItemProps).tooltip}\n onMouseEnter={() => handleMouseEnter(virtualItem.id)}\n onClick={handleClick}\n id={virtualItem.id}\n hover={virtualItem.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n {\n ...(virtualItem.item as IOptionItemProps),\n name: highlightText(\n (virtualItem.item as IOptionItemProps).name,\n filter\n ),\n },\n {\n id: `option_${virtualItem.id}`,\n checked:\n selectedOptions && selectedOptions.includes(virtualItem.id),\n hover: hover.item === virtualItem.id,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"noResult\":\n return <StyledOption css=\"cursor: auto\">{noResultText}</StyledOption>;\n\n case \"addNew\":\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n\n default:\n return null;\n }\n },\n [\n defaultValue,\n hover.item,\n handleMouseEnter,\n renderOption,\n isDefaultOptionSelected,\n selectedOptions,\n handleHoverCallback,\n handleRenderOption,\n type,\n handleChange,\n filter,\n mixedOptions,\n handleClick,\n optionClassName,\n noResultText,\n handleEmpty,\n onAddNewMouseEnter,\n emptyValue,\n toggleSelected,\n ]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }) => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <div\n ref={listContainerRef}\n style={{\n height: `${Math.min(\n rowVirtualizer.getTotalSize() + 12,\n autoHeightMax\n )}px`,\n overflow: \"auto\",\n }}\n onScroll={(e) => {\n if (onScroll) onScroll(e);\n }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {shouldUseVirtualization\n ? rowVirtualizer.getVirtualItems().map((virtualRow) => {\n const item = virtualItems[virtualRow.index];\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n transform: `translateY(${virtualRow.start}px)`,\n }}\n >\n {renderVirtualItem(item, virtualRow.index)}\n </div>\n );\n })\n : virtualItems.map((item, index) => (\n <React.Fragment key={index}>\n {renderVirtualItem(item, index)}\n </React.Fragment>\n ))}\n </div>\n </div>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAYA,IAAAC,aAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAKA,IAAAI,iBAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAR,OAAA;AAA4E,SAAAS,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAX,wBAAAW,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAb,uBAAAyB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAAA,SAAAC,eAAAC,GAAA,EAAAJ,CAAA,WAAAK,eAAA,CAAAD,GAAA,KAAAE,qBAAA,CAAAF,GAAA,EAAAJ,CAAA,KAAAO,2BAAA,CAAAH,GAAA,EAAAJ,CAAA,KAAAQ,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAG,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAArB,CAAA,GAAAG,MAAA,CAAAI,SAAA,CAAAgB,QAAA,CAAAd,IAAA,CAAAW,CAAA,EAAAI,KAAA,aAAAxB,CAAA,iBAAAoB,CAAA,CAAAK,WAAA,EAAAzB,CAAA,GAAAoB,CAAA,CAAAK,WAAA,CAAAC,IAAA,MAAA1B,CAAA,cAAAA,CAAA,mBAAA2B,KAAA,CAAAC,IAAA,CAAAR,CAAA,OAAApB,CAAA,+DAAA6B,IAAA,CAAA7B,CAAA,UAAAsB,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAC,kBAAAR,GAAA,EAAAgB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAhB,GAAA,CAAAiB,MAAA,EAAAD,GAAA,GAAAhB,GAAA,CAAAiB,MAAA,WAAArB,CAAA,MAAAsB,IAAA,OAAAL,KAAA,CAAAG,GAAA,GAAApB,CAAA,GAAAoB,GAAA,EAAApB,CAAA,IAAAsB,IAAA,CAAAtB,CAAA,IAAAI,GAAA,CAAAJ,CAAA,UAAAsB,IAAA;AAAA,SAAAhB,sBAAAtB,CAAA,EAAAuC,CAAA,QAAAtC,CAAA,WAAAD,CAAA,gCAAAwC,MAAA,IAAAxC,CAAA,CAAAwC,MAAA,CAAAC,QAAA,KAAAzC,CAAA,4BAAAC,CAAA,QAAAH,CAAA,EAAAQ,CAAA,EAAAU,CAAA,EAAAJ,CAAA,EAAAJ,CAAA,OAAAkC,CAAA,OAAAhB,CAAA,iBAAAV,CAAA,IAAAf,CAAA,GAAAA,CAAA,CAAAc,IAAA,CAAAf,CAAA,GAAA2C,IAAA,QAAAJ,CAAA,QAAA9B,MAAA,CAAAR,CAAA,MAAAA,CAAA,UAAAyC,CAAA,uBAAAA,CAAA,IAAA5C,CAAA,GAAAkB,CAAA,CAAAD,IAAA,CAAAd,CAAA,GAAA2C,IAAA,MAAApC,CAAA,CAAAqC,IAAA,CAAA/C,CAAA,CAAAgD,KAAA,GAAAtC,CAAA,CAAA6B,MAAA,KAAAE,CAAA,GAAAG,CAAA,iBAAA1C,CAAA,IAAA0B,CAAA,OAAApB,CAAA,GAAAN,CAAA,yBAAA0C,CAAA,YAAAzC,CAAA,CAAA8C,MAAA,KAAAnC,CAAA,GAAAX,CAAA,CAAA8C,MAAA,IAAAtC,MAAA,CAAAG,CAAA,MAAAA,CAAA,2BAAAc,CAAA,QAAApB,CAAA,aAAAE,CAAA;AAAA,SAAAa,gBAAAD,GAAA,QAAAa,KAAA,CAAAe,OAAA,CAAA5B,GAAA,UAAAA,GAAA;AAAA,SAAA6B,QAAAnD,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAAQ,MAAA,CAAAyC,IAAA,CAAApD,CAAA,OAAAW,MAAA,CAAA0C,qBAAA,QAAAzB,CAAA,GAAAjB,MAAA,CAAA0C,qBAAA,CAAArD,CAAA,GAAAE,CAAA,KAAA0B,CAAA,GAAAA,CAAA,CAAA0B,MAAA,WAAApD,CAAA,WAAAS,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAE,CAAA,EAAAqD,UAAA,OAAApD,CAAA,CAAA4C,IAAA,CAAAS,KAAA,CAAArD,CAAA,EAAAyB,CAAA,YAAAzB,CAAA;AAAA,SAAAsD,cAAAzD,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAAwD,SAAA,CAAAnB,MAAA,EAAArC,CAAA,UAAAC,CAAA,WAAAuD,SAAA,CAAAxD,CAAA,IAAAwD,SAAA,CAAAxD,CAAA,QAAAA,CAAA,OAAAiD,OAAA,CAAAxC,MAAA,CAAAR,CAAA,OAAAwD,OAAA,WAAAzD,CAAA,IAAA0D,eAAA,CAAA5D,CAAA,EAAAE,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAS,MAAA,CAAAkD,yBAAA,GAAAlD,MAAA,CAAAmD,gBAAA,CAAA9D,CAAA,EAAAW,MAAA,CAAAkD,yBAAA,CAAA1D,CAAA,KAAAgD,OAAA,CAAAxC,MAAA,CAAAR,CAAA,GAAAwD,OAAA,WAAAzD,CAAA,IAAAS,MAAA,CAAAC,cAAA,CAAAZ,CAAA,EAAAE,CAAA,EAAAS,MAAA,CAAAE,wBAAA,CAAAV,CAAA,EAAAD,CAAA,iBAAAF,CAAA;AAAA,SAAA4D,gBAAAxC,GAAA,EAAA2C,GAAA,EAAAf,KAAA,IAAAe,GAAA,GAAAC,cAAA,CAAAD,GAAA,OAAAA,GAAA,IAAA3C,GAAA,IAAAT,MAAA,CAAAC,cAAA,CAAAQ,GAAA,EAAA2C,GAAA,IAAAf,KAAA,EAAAA,KAAA,EAAAO,UAAA,QAAAU,YAAA,QAAAC,QAAA,oBAAA9C,GAAA,CAAA2C,GAAA,IAAAf,KAAA,WAAA5B,GAAA;AAAA,SAAA4C,eAAA7D,CAAA,QAAAe,CAAA,GAAAiD,YAAA,CAAAhE,CAAA,uCAAAe,CAAA,GAAAA,CAAA,GAAAkD,MAAA,CAAAlD,CAAA;AAAA,SAAAiD,aAAAhE,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAH,CAAA,GAAAG,CAAA,CAAAuC,MAAA,CAAA2B,WAAA,kBAAArE,CAAA,QAAAkB,CAAA,GAAAlB,CAAA,CAAAiB,IAAA,CAAAd,CAAA,EAAAD,CAAA,uCAAAgB,CAAA,SAAAA,CAAA,YAAAS,SAAA,yEAAAzB,CAAA,GAAAkE,MAAA,GAAAE,MAAA,EAAAnE,CAAA;AAErE,SAASoE,aAAaA,CAC3BC,IAA0C,EACf;EAC3B,OAAQA,IAAI,CAAuBC,OAAO,KAAKC,SAAS;AAC1D;AAiEO,IAAMC,YAAoC,GAAAC,OAAA,CAAAD,YAAA,GAAG,SAAvCA,YAAoCA,CAAAE,IAAA,EAuB3C;EAAA,IAtBJC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAAC,YAAA,GAAAF,IAAA,CACJJ,OAAO;IAAPA,OAAO,GAAAM,YAAA,cAAG,EAAE,GAAAA,YAAA;IACZC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IAAAC,aAAA,GAAAJ,IAAA,CACPK,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,EAAE,GAAAA,aAAA;IACbE,UAAU,GAAAN,IAAA,CAAVM,UAAU;IACVC,YAAY,GAAAP,IAAA,CAAZO,YAAY;IAAAC,iBAAA,GAAAR,IAAA,CACZS,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,UAACE,MAAM;MAAA,OAAKA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAErD,IAAI;IAAA,IAAAmD,iBAAA;IACvCG,YAAY,GAAAX,IAAA,CAAZW,YAAY;IAAAC,kBAAA,GAAAZ,IAAA,CACZa,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,KAAK,GAAAA,kBAAA;IACrBE,YAAY,GAAAd,IAAA,CAAZc,YAAY;IACZC,eAAe,GAAAf,IAAA,CAAfe,eAAe;IACfC,iBAAiB,GAAAhB,IAAA,CAAjBgB,iBAAiB;IACjBC,oBAAoB,GAAAjB,IAAA,CAApBiB,oBAAoB;IACpBC,qBAAqB,GAAAlB,IAAA,CAArBkB,qBAAqB;IACrBC,yBAAyB,GAAAnB,IAAA,CAAzBmB,yBAAyB;IACzBC,qBAAqB,GAAApB,IAAA,CAArBoB,qBAAqB;IAAAC,qBAAA,GAAArB,IAAA,CACrBsB,oBAAoB;IAApBA,oBAAoB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAAAE,kBAAA,GAAAvB,IAAA,CAC5BwB,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,GAAG,GAAAA,kBAAA;IACnBE,kBAAkB,GAAAzB,IAAA,CAAlByB,kBAAkB;IAAAC,iBAAA,GAAA1B,IAAA,CAClB2B,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,EAAE,GAAAA,iBAAA;IACjBE,cAAc,GAAA5B,IAAA,CAAd4B,cAAc;IACdC,qBAAqB,GAAA7B,IAAA,CAArB6B,qBAAqB;EAErB,IAAMC,gBAAgB,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EACrD,IAAMC,OAAO,GAAG,IAAAD,aAAM,EAAgB,IAAI,CAAC;EAE3C,IAAME,eAAe,GAAG,IAAAC,cAAO,EAAC,YAAM;IACpC,IAAI5E,KAAK,CAACe,OAAO,CAACgC,QAAQ,CAAC,EAAE;MAC3B,OAAOA,QAAQ;IACjB;IACA,OAAO,CAACA,QAAQ,CAAC;EACnB,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAM8B,UAAU,GAAG,IAAAC,kBAAW,EAC5B,UAACC,IAAI,EAAK;IAAA,IAAAC,MAAA;IACR,IAAIhB,oBAAoB,EAAE;MACxB,OAAOe,IAAI;IACb;IAEA,IAAME,SAAS,GAAGjF,KAAK,CAACe,OAAO,EAAAiE,MAAA,GAACD,IAAI,CAAC,CAAC,CAAC,cAAAC,MAAA,uBAAPA,MAAA,CAAS1C,OAAO,CAAC;IAEjD,IAAM4C,WAAW,GAAG,SAAdA,WAAWA,CAAI3G,CAAC,EAAE4G,CAAC,EAAK;MAC5B,IAAMC,SAAS,GAAGT,eAAe,CAACU,QAAQ,CAAC9G,CAAC,CAAC+G,EAAE,CAAC;MAChD,IAAMC,SAAS,GAAGZ,eAAe,CAACU,QAAQ,CAACF,CAAC,CAACG,EAAE,CAAC;MAChD,IAAME,MAAM,GAAGnB,YAAY,CAACgB,QAAQ,CAAC9G,CAAC,CAAC+G,EAAE,CAAC;MAC1C,IAAMG,MAAM,GAAGpB,YAAY,CAACgB,QAAQ,CAACF,CAAC,CAACG,EAAE,CAAC;MAE1C,IAAIF,SAAS,IAAI,CAACG,SAAS,EAAE;QAC3B,OAAO,CAAC,CAAC;MACX;MACA,IAAI,CAACH,SAAS,IAAIG,SAAS,EAAE;QAC3B,OAAO,CAAC;MACV;MACA,IAAIC,MAAM,IAAI,CAACC,MAAM,EAAE;QACrB,OAAO,CAAC,CAAC;MACX;MACA,IAAI,CAACD,MAAM,IAAIC,MAAM,EAAE;QACrB,OAAO,CAAC;MACV;MACA,OAAO,CAAC;IACV,CAAC;IAED,IAAIR,SAAS,EAAE;MACb,OAAOF,IAAI,CAACW,GAAG,CAAC,UAACC,KAAK,EAAK;QACzB,IAAMC,kBAAkB,GAAGD,KAAK,CAACrD,OAAO,CAACuD,IAAI,CAACX,WAAW,CAAC;QAE1D,OAAA5D,aAAA,CAAAA,aAAA,KACKqE,KAAK;UACRrD,OAAO,EAAEsD;QAAkB;MAE/B,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,OAAOb,IAAI,CAACc,IAAI,CAACX,WAAW,CAAC;IAC/B;EACF,CAAC;EACD;EACA,CAACb,YAAY,EAAEM,eAAe,CAChC,CAAC;EAED,IAAMmB,QAAQ,GAAG,IAAAhB,kBAAW,EAC1B,UAACxC,OAAO,EAAK;IAAA,IAAAyD,SAAA;IACX,IAAIpC,oBAAoB,EAAE;MACxB,OAAOkB,UAAU,CAAC,CAAC,GAAGvC,OAAO,CAAC,CAAC;IACjC;IAEA,IAAM2C,SAAS,GAAGjF,KAAK,CAACe,OAAO,EAAAgF,SAAA,GAACzD,OAAO,CAAC,CAAC,CAAC,cAAAyD,SAAA,uBAAVA,SAAA,CAAYzD,OAAO,CAAC;IAEpD,IAAI2C,SAAS,EAAE;MACb,IAAMe,aAAa,GAAG1D,OAAO,CAACoD,GAAG,CAAC,UAACC,KAAK,EAAK;QAC3C,IAAMC,kBAAkB,GAAGD,KAAK,CAACrD,OAAO,CAACuD,IAAI,CAAC,UAACtH,CAAC,EAAE4G,CAAC;UAAA,OACjD5B,aAAa,KAAK,KAAK,GACnBhF,CAAC,CAACwB,IAAI,CAACkG,aAAa,CAACd,CAAC,CAACpF,IAAI,CAAC,GAC5BoF,CAAC,CAACpF,IAAI,CAACkG,aAAa,CAAC1H,CAAC,CAACwB,IAAI,CAAC;QAAA,CAClC,CAAC;QAED,OAAAuB,aAAA,CAAAA,aAAA,KACKqE,KAAK;UACRrD,OAAO,EAAEuC,UAAU,CAACe,kBAAkB;QAAC;MAE3C,CAAC,CAAC;MAEF,OAAOf,UAAU,CAACmB,aAAa,CAAC;IAClC,CAAC,MAAM;MACL,IAAMA,cAAa,GAAG1D,OAAO,CAACuD,IAAI,CAAC,UAACtH,CAAC,EAAE4G,CAAC;QAAA,OACtC5B,aAAa,KAAK,KAAK,GACnBhF,CAAC,CAACwB,IAAI,CAACkG,aAAa,CAACd,CAAC,CAACpF,IAAI,CAAC,GAC5BoF,CAAC,CAACpF,IAAI,CAACkG,aAAa,CAAC1H,CAAC,CAACwB,IAAI,CAAC;MAAA,CAClC,CAAC;MAED,OAAO8E,UAAU,CAACmB,cAAa,CAAC;IAClC;EACF,CAAC,EACD,CAACzC,aAAa,EAAEI,oBAAoB,EAAEkB,UAAU,CAClD,CAAC;EAED,IAAAqB,SAAA,GAAqB,IAAAC,eAAQ,EAAC;MAAA,OAAML,QAAQ,CAACxD,OAAO,CAAC;IAAA,EAAC;IAAA8D,UAAA,GAAAlH,cAAA,CAAAgH,SAAA;IAA/CG,UAAU,GAAAD,UAAA;EAEjB,IAAAE,UAAA,GAA0B,IAAAH,eAAQ,EAAS;MACzC9D,IAAI,EAAEE,SAAS;MACfgE,EAAE,EAAEhE;IACN,CAAC,CAAC;IAAAiE,UAAA,GAAAtH,cAAA,CAAAoH,UAAA;IAHKG,KAAK,GAAAD,UAAA;IAAEE,QAAQ,GAAAF,UAAA;EAItB,IAAAG,UAAA,GAA4B,IAAAR,eAAQ,EAAC,EAAE,CAAC;IAAAS,UAAA,GAAA1H,cAAA,CAAAyH,UAAA;IAAjCxF,MAAM,GAAAyF,UAAA;IAAEC,SAAS,GAAAD,UAAA;EAExB,IAAME,WAAW,GAAG,IAAAhC,kBAAW,EAC7B,UAACjH,CAAC,EAAK;IACL,IAAIA,CAAC,IAAIA,CAAC,CAACkJ,MAAM,KAAK,CAAC,EAAE;MACvB;IACF;IACA,IAAIrD,iBAAiB,EAAE;MAAA,IAAAsD,gBAAA;MACrBnE,OAAO,aAAPA,OAAO,gBAAAmE,gBAAA,GAAPnE,OAAO,CAAEoE,OAAO,cAAAD,gBAAA,eAAhBA,gBAAA,CAAkBE,KAAK,CAAC,CAAC;MACzBL,SAAS,CAAC,EAAE,CAAC;MACbnD,iBAAiB,CAACvC,MAAM,CAAC;IAC3B;EACF,CAAC,EACD,CAACA,MAAM,EAAEuC,iBAAiB,EAAEb,OAAO,CACrC,CAAC;EAED,IAAMsE,kBAAkB,GAAG,IAAArC,kBAAW,EACpC;IAAA,OAAM4B,QAAQ,CAAC;MAAErE,IAAI,EAAE,QAAQ;MAAEkE,EAAE,EAAE;IAAQ,CAAC,CAAC;EAAA,GAC/C,EACF,CAAC;EAED,IAAMa,UAAU,GAAG,IAAAxC,cAAO,EAAC,YAAM;IAC/B,OAAO,CAAC,EACN5B,UAAU,IACV7B,MAAM,CAACkG,IAAI,CAAC,CAAC,IACb/E,OAAO,CAACgF,KAAK,CAAC,UAAClE,MAAM,EAAK;MACxB,IAAIhB,aAAa,CAACgB,MAAM,CAAC,EAAE;QACzB,OAAOA,MAAM,CAACd,OAAO,CAACgF,KAAK,CACzB,UAACC,CAAC;UAAA,OAAKA,CAAC,CAACxH,IAAI,CAACyH,WAAW,CAAC,CAAC,KAAKrG,MAAM,CAACkG,IAAI,CAAC,CAAC,CAACG,WAAW,CAAC,CAAC;QAAA,CAC7D,CAAC;MACH;MACA,OAAOpE,MAAM,CAACrD,IAAI,CAACyH,WAAW,CAAC,CAAC,KAAKrG,MAAM,CAACkG,IAAI,CAAC,CAAC,CAACG,WAAW,CAAC,CAAC;IAClE,CAAC,CAAC,CACH;EACH,CAAC,EAAE,CAACxE,UAAU,EAAE7B,MAAM,EAAEmB,OAAO,CAAC,CAAC;EAEjC,IAAMmF,aAAa,GAAG,IAAA3C,kBAAW,EAC/B,UAACxC,OAAO,EAAEnB,MAAM,EAAK;IACnB,IAAMuG,aAAa,GAAGvG,MAAM,CAACkG,IAAI,CAAC,CAAC;IACnC,IAAMpC,SAAS,GAAG3C,OAAO,CAAC,CAAC,CAAC,IAAIF,aAAa,CAACE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzD,IAAMqF,aAAa,GAAG,SAAhBA,aAAaA,CAAIvE,MAAwB,EAAK;MAClD,IAAMwE,SAAS,GAAGxE,MAAM,CAACrD,IAAI,CAC1ByH,WAAW,CAAC,CAAC,CACbnC,QAAQ,CAACqC,aAAa,CAACF,WAAW,CAAC,CAAC,CAAC;MAExC,IAAIlD,cAAc,IAAIoD,aAAa,EAAE;QACnC,OAAOE,SAAS,IAAItD,cAAc,CAAClB,MAAM,EAAEsE,aAAa,CAAC;MAC3D;MAEA,OAAOE,SAAS;IAClB,CAAC;IAED,IAAI3C,SAAS,EAAE;MACb,IAAI4C,OAAO,GAAG,KAAK;MACnB,OAAOvF,OAAO,CAACwF,MAAM,CAAC,UAACC,GAAG,EAAEC,aAAa,EAAK;QAC5C,IAAMC,eAAe,GAAGD,aAAa,CAAC1F,OAAO,CAACnB,MAAM,CAACwG,aAAa,CAAC;QAEnE,IAAIM,eAAe,CAAC7H,MAAM,GAAG,CAAC,EAAE;UAC9B,IAAI,CAACyH,OAAO,IAAI1G,MAAM,EAAE;YACtBuF,QAAQ,CAAC;cAAErE,IAAI,EAAE4F,eAAe,CAAC,CAAC,CAAC,CAAC3C,EAAE;cAAEiB,EAAE,EAAE;YAAW,CAAC,CAAC;UAC3D;UACAsB,OAAO,GAAG,IAAI;UACd,OAAO,CAAC,GAAGE,GAAG,EAAAzG,aAAA,CAAAA,aAAA,KAAO0G,aAAa;YAAE1F,OAAO,EAAE2F;UAAe,GAAG;QACjE;QACA,OAAO,CAAC,GAAGF,GAAG,CAAC;MACjB,CAAC,EAAE,EAAE,CAAC;IACR,CAAC,MAAM;MACL,IAAME,eAAe,GAAG3F,OAAO,CAACnB,MAAM,CAACwG,aAAa,CAAC;MAErD,IAAIxG,MAAM,IAAI8G,eAAe,CAAC7H,MAAM,GAAG,CAAC,EAAE;QACxCsG,QAAQ,CAAC;UAAErE,IAAI,EAAE4F,eAAe,CAAC,CAAC,CAAC,CAAC3C,EAAE;UAAEiB,EAAE,EAAE;QAAW,CAAC,CAAC;MAC3D;MACA,IAAI0B,eAAe,CAAC7H,MAAM,KAAK,CAAC,IAAI4C,UAAU,EAAE;QAC9C0D,QAAQ,CAAC;UAAErE,IAAI,EAAE,QAAQ;UAAEkE,EAAE,EAAE;QAAW,CAAC,CAAC;MAC9C;MACA,OAAO0B,eAAe;IACxB;EACF,CAAC,EACD,CAACjF,UAAU,EAAEsB,cAAc,CAC7B,CAAC;EAED,IAAM4D,IAAI,GAAG,IAAAtD,cAAO,EAClB;IAAA,OAAM6C,aAAa,CAACpB,UAAU,EAAElF,MAAM,CAAC;EAAA,GACvC,CAACA,MAAM,EAAEsG,aAAa,EAAEpB,UAAU,CACpC,CAAC;EAED,IAAM8B,iBAAiB,GAAG,IAAAvD,cAAO,EAC/B;IAAA,OAAM,CAAC,CAACvB,YAAY,IAAI,CAAClC,MAAM;EAAA,GAC/B,CAACkC,YAAY,EAAElC,MAAM,CACvB,CAAC;EAED,IAAMiH,WAAW,GAAG,IAAAxD,cAAO,EAAC,YAAM;IAChC,IAAMtC,OAAO,GAAG4F,IAAI,CAACJ,MAAM,CACzB,UACEC,GAAkD,EAClD3E,MAA4C,EACzC;MACH,IAAI,CAAChB,aAAa,CAACgB,MAAM,CAAC,EAAE;QAC1B,OAAO,CAAC,GAAG2E,GAAG,EAAE3E,MAAM,CAAC;MACzB;MACA,OAAO,CAAC,GAAG2E,GAAG,EAAE,GAAG3E,MAAM,CAACd,OAAO,CAAC;IACpC,CAAC,EACD,EACF,CAAC;IACD,OAAOmF,aAAa,CAACnF,OAAO,EAAEnB,MAAM,CAAC;EACvC,CAAC,EAAE,CAACA,MAAM,EAAEsG,aAAa,EAAES,IAAI,CAAC,CAAC;EAEjC,IAAMG,qBAAqB,GAAG,IAAAzD,cAAO,EACnC;IAAA,OACE3B,YAAY,IACZ,CAACmE,UAAU,IACXc,IAAI,CAAC9H,MAAM,GAAG,CAAC,KACbiD,YAAY,IAAIlC,MAAM,IAAK,CAACkC,YAAY,CAAC;EAAA,GAC7C,CAACJ,YAAY,EAAEmE,UAAU,EAAEc,IAAI,CAAC9H,MAAM,EAAEiD,YAAY,EAAElC,MAAM,CAC9D,CAAC;EAED,IAAMmH,YAAY,GAAG,IAAA1D,cAAO,EAAC,YAAM;IACjC,IAAM2D,KAAoB,GAAG,EAAE;IAE/B,IAAIJ,iBAAiB,EAAE;MACrBI,KAAK,CAAC3H,IAAI,CAAC;QACT+B,IAAI,EAAE,SAAS;QACf2C,EAAE,EAAE;MACN,CAAC,CAAC;IACJ;IAEA4C,IAAI,CAAC1G,OAAO,CAAC,UAACa,IAAI,EAAEmG,KAAK,EAAK;MAC5B,IAAIpG,aAAa,CAACC,IAAI,CAAC,EAAE;QACvBkG,KAAK,CAAC3H,IAAI,CAAC;UACT+B,IAAI,EAAE,OAAO;UACb2C,EAAE,EAAEjD,IAAI,CAACiD,EAAE;UACXjD;QACF,CAAC,CAAC;QAEFA,IAAI,CAACC,OAAO,CAACd,OAAO,CAAC,UAAC4B,MAAM,EAAK;UAC/BmF,KAAK,CAAC3H,IAAI,CAAC;YACT+B,IAAI,EAAE,QAAQ;YACd2C,EAAE,EAAElC,MAAM,CAACkC,EAAE;YACbjD,IAAI,EAAEe,MAAM;YACZoF;UACF,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,MAAM;QACLD,KAAK,CAAC3H,IAAI,CAAC;UACT+B,IAAI,EAAE,QAAQ;UACd2C,EAAE,EAAEjD,IAAI,CAACiD,EAAE;UACXjD,IAAI;UACJmG;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IAEF,IAAIH,qBAAqB,EAAE;MACzBE,KAAK,CAAC3H,IAAI,CAAC;QACT+B,IAAI,EAAE,UAAU;QAChB2C,EAAE,EAAE;MACN,CAAC,CAAC;IACJ;IAEA,IAAI8B,UAAU,EAAE;MACdmB,KAAK,CAAC3H,IAAI,CAAC;QACT+B,IAAI,EAAE,QAAQ;QACd2C,EAAE,EAAE;MACN,CAAC,CAAC;IACJ;IAEA,OAAOiD,KAAK;EACd,CAAC,EAAE,CAACL,IAAI,EAAEC,iBAAiB,EAAEE,qBAAqB,EAAEjB,UAAU,CAAC,CAAC;EAEhE,IAAMqB,uBAAuB,GAC3B,CAAClE,qBAAqB,IAAI+D,YAAY,CAAClI,MAAM,GAAG,EAAE;EAEpD,IAAMsI,cAAc,GAAG,IAAAC,4BAAc,EAAC;IACpCC,KAAK,EAAEN,YAAY,CAAClI,MAAM;IAC1ByI,gBAAgB,EAAE,SAAAA,iBAAA;MAAA,OAAMrE,gBAAgB,CAACyC,OAAO;IAAA;IAChD6B,YAAY,EAAE,SAAAA,aAAA;MAAA,OAAM,EAAE;IAAA;IACtBC,QAAQ,EAAE,CAAC;IACXC,GAAG,EAAE;EACP,CAAC,CAAC;EAEF,IAAMC,iBAAiB,GAAG,IAAAnE,kBAAW,EAAC,UAACjH,CAAC,EAAK;IAC3C,IACEA,CAAC,CAACqL,MAAM,IACR,EAAErL,CAAC,CAAC+D,GAAG,KAAK,WAAW,CAAC,IACxB,EAAE/D,CAAC,CAAC+D,GAAG,KAAK,SAAS,CAAC,IACtB,EAAE/D,CAAC,CAAC+D,GAAG,KAAK,OAAO,CAAC,EACpB;MACAiF,SAAS,CAAChJ,CAAC,CAACqL,MAAM,CAACrI,KAAK,CAAC;IAC3B;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMsI,mBAAmB,GAAG,IAAArE,kBAAW,EACrC,UAACjH,CAA8B,EAAW;IACxC6I,QAAQ,CAAC;MAAErE,IAAI,EAAExE,CAAC;MAAE0I,EAAE,EAAE;IAAQ,CAAC,CAAC;EACpC,CAAC,EACD,EACF,CAAC;EAED,IAAM6C,cAAc,GAAG,IAAAtE,kBAAW,EAChC,UAACQ,EAAE,EAAK;IACN,IAAI+D,MAAM;IAEV,IAAI/D,EAAE,KAAK,IAAI,EAAE;MACf,IAAI3C,IAAI,KAAK,UAAU,EAAE;QACvB,IAAIgC,eAAe,CAACU,QAAQ,CAACC,EAAE,CAAC,EAAE;UAChC+D,MAAM,GAAG1E,eAAe,CAACxD,MAAM,CAAC,UAACmI,GAAG;YAAA,OAAKA,GAAG,KAAKhE,EAAE;UAAA,EAAC;QACtD,CAAC,MAAM;UACL+D,MAAM,GAAG,CAAC,GAAG1E,eAAe,EAAEW,EAAE,CAAC;QACnC;MACF,CAAC,MAAM;QACL+D,MAAM,GAAG/D,EAAE;MACb;MACA,IAAInB,kBAAkB,IAAItB,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEoE,OAAO,EAAE;QAC1CpE,OAAO,CAACoE,OAAO,CAACpG,KAAK,GAAG,EAAE;QAC1BgC,OAAO,CAACoE,OAAO,CAACsC,aAAa,CAAC,IAAIC,KAAK,CAAC,QAAQ,EAAE;UAAEC,OAAO,EAAE;QAAK,CAAC,CAAC,CAAC;MACvE;MACA5C,SAAS,CAAC,EAAE,CAAC;IACf,CAAC,MAAM;MACL,IAAI,OAAOhD,yBAAyB,KAAK,UAAU,EAAE;QACnDA,yBAAyB,CAAC,CAAC;QAC3B;MACF;IACF;IAEA,IAAI,OAAOL,YAAY,KAAK,UAAU,EAAE;MACtCA,YAAY,CAAC6F,MAAM,CAAC;IACtB;EACF,CAAC,EACD,CACElF,kBAAkB,EAClBX,YAAY,EACZK,yBAAyB,EACzBhB,OAAO,EACP8B,eAAe,EACfhC,IAAI,CAER,CAAC;EAED,IAAM+G,gBAAgB,GAAG,IAAA5E,kBAAW,EAAC,UAACjH,CAAC,EAAK;IAC1C,IAAIA,CAAC,KAAK0E,SAAS,IAAI1E,CAAC,KAAK,IAAI,EAAE;MACjC,OAAO6I,QAAQ,CAAC;QAAErE,IAAI,EAAE,IAAI;QAAEkE,EAAE,EAAE;MAAQ,CAAC,CAAC;IAC9C;IACAG,QAAQ,CAAC;MAAErE,IAAI,EAAExE,CAAC;MAAE0I,EAAE,EAAE;IAAQ,CAAC,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMoD,WAAW,GAAG,IAAA7E,kBAAW,EAC7B,UAACjH,CAAC,EAAK;IACLA,CAAC,CAAC+L,cAAc,CAAC,CAAC;IAClBR,cAAc,CAAC3C,KAAK,CAACpE,IAAI,CAAC;EAC5B,CAAC,EACD,CAAC+G,cAAc,EAAE3C,KAAK,CACxB,CAAC;EAED,IAAMoD,kBAAkB,GAAG,IAAA/E,kBAAW,EACpC,UAACzC,IAA0C,EAAEmG,KAAK,EAAK;IACrD,IAAIpG,aAAa,CAACC,IAAI,CAAC,EAAE;MACvB,oBACEpF,MAAA,CAAAiB,OAAA,CAAA4L,aAAA,CAACnM,YAAA,CAAAoM,WAAW;QACVC,OAAO,EAAErF,eAAgB;QACzB5E,IAAI,EAAEsC,IAAI,CAACtC,IAAK;QAChBkK,OAAO,EAAE5H,IAAI,CAAC4H,OAAQ;QACtBrI,GAAG,EAAES,IAAI,CAACiD,EAAG;QACboB,QAAQ,EAAEyC,mBAAoB;QAC9B7D,EAAE,EAAEjD,IAAI,CAACiD,EAAG;QACZmB,KAAK,EAAEA,KAAK,CAACpE,IAAK;QAClBC,OAAO,EAAED,IAAI,CAACC,OAAQ;QACtB4H,aAAa,EAAEL,kBAAmB;QAClClH,IAAI,EAAEA,IAAK;QACXwH,QAAQ,EAAE3G,YAAa;QACvBrC,MAAM,EAAEA,MAAO;QACfkD,YAAY,EAAEA;MAAa,CAC5B,CAAC;IAEN;IACA,oBACEpH,MAAA,CAAAiB,OAAA,CAAA4L,aAAA,CAACrM,OAAA,CAAA2M,MAAM;MACLrK,IAAI,EAAEsC,IAAI,CAACtC,IAAK;MAChBsK,GAAG,EAAE5D,KAAK,CAACpE,IAAI,KAAKA,IAAI,CAACiD,EAAE,GAAGZ,OAAO,GAAG,IAAK;MAC7C9C,GAAG,EAAE4G,KAAM;MACXyB,OAAO,EAAE5H,IAAI,CAAC4H,OAAQ;MACtBK,YAAY,EAAEZ,gBAAiB;MAC/Ba,OAAO,EAAEZ,WAAY;MACrBrE,EAAE,EAAEjD,IAAI,CAACiD,EAAG;MACZmB,KAAK,EAAEpE,IAAI,CAACiD,EAAE,KAAKmB,KAAK,CAACpE,IAAK;MAC9BmI,SAAS,EAAE/G,eAAgB;MAC3BN,YAAY,EAAEA,YAAY,CAAA7B,aAAA,CAAAA,aAAA,KACnBe,IAAI;QAAEtC,IAAI,EAAE,IAAA0K,yBAAa,EAACpI,IAAI,CAACtC,IAAI,EAAEoB,MAAM;MAAC,IACjD;QACEmE,EAAE,YAAAoF,MAAA,CAAYrI,IAAI,CAACiD,EAAE,CAAE;QACvB0E,OAAO,EAAErF,eAAe,IAAIA,eAAe,CAACU,QAAQ,CAAChD,IAAI,CAACiD,EAAE,CAAC;QAC7DmB,KAAK,EAAEA,KAAK,CAACpE,IAAI,KAAKA,IAAI,CAACiD,EAAE;QAC7B6E,QAAQ,EAAE,SAAAA,SAAA;UAAA,OAAM,IAAI;QAAA;MACtB,CACF;IAAE,CACH,CAAC;EAEN,CAAC,EACD,CACER,WAAW,EACXD,gBAAgB,EAChBjD,KAAK,CAACpE,IAAI,EACVoB,eAAe,EACfN,YAAY,EACZhC,MAAM,EACNwD,eAAe,EACfwE,mBAAmB,EACnBxG,IAAI,EACJa,YAAY,EACZa,YAAY,CAEhB,CAAC;EAED,IAAMsG,kBAAkB,GAAG,IAAA7F,kBAAW,EAAC,YAAM;IAC3C4B,QAAQ,CAAC;MAAErE,IAAI,EAAEE,SAAS;MAAEgE,EAAE,EAAE;IAAQ,CAAC,CAAC;EAC5C,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAqE,gBAAS,EAAC,YAAM;IACd,IAAInE,KAAK,CAACF,EAAE,KAAK,UAAU,IAAIE,KAAK,CAACpE,IAAI,KAAKE,SAAS,EAAE;MACvD,IAAMiG,KAAK,GAAGF,YAAY,CAACuC,SAAS,CAAC,UAACxI,IAAI;QAAA,OAAKA,IAAI,CAACiD,EAAE,KAAKmB,KAAK,CAACpE,IAAI;MAAA,EAAC;MACtE,IAAImG,KAAK,KAAK,CAAC,CAAC,EAAE;QAChBE,cAAc,CAACoC,aAAa,CAACtC,KAAK,EAAE;UAAEuC,KAAK,EAAE;QAAS,CAAC,CAAC;MAC1D;IACF;EACF,CAAC,EAAE,CAACtE,KAAK,EAAEiC,cAAc,EAAEJ,YAAY,CAAC,CAAC;EAEzC,IAAM0C,eAAe,GAAG,IAAAlG,kBAAW,EACjC,UAACjH,CAAC,EAAK;IACL,IAAIA,CAAC,CAAC+D,GAAG,KAAK,OAAO,EAAE;MACrB/D,CAAC,CAAC+L,cAAc,CAAC,CAAC;MAElB,IAAInD,KAAK,CAACpE,IAAI,KAAKE,SAAS,IAAIpB,MAAM,KAAK,EAAE,EAAE;QAC7C;MACF;MACA,IAAIsF,KAAK,CAACpE,IAAI,KAAK,QAAQ,EAAE;QAC3ByE,WAAW,CAAC,IAAI,CAAC;QACjB;MACF;MACA,IAAIL,KAAK,CAACpE,IAAI,KAAK,IAAI,IAAIwB,yBAAyB,EAAE;QACpDA,yBAAyB,CAAC,CAAC;QAC3B;MACF;MAEA,IAAI,OAAO4C,KAAK,CAACpE,IAAI,KAAK,WAAW,IAAIoE,KAAK,CAACpE,IAAI,KAAK,IAAI,EAAE;QAC5D+G,cAAc,CAAC3C,KAAK,CAACpE,IAAI,CAAC;QAC1BwE,SAAS,CAAC,EAAE,CAAC;MACf;MACA;IACF;IACAH,QAAQ,CAAC;MACPrE,IAAI,EAAE,IAAA4I,sCAAsB,EAC1BpN,CAAC,EACD4I,KAAK,CAACpE,IAAI,EACV+F,WAAW,EACXhB,UAAU,EACVe,iBACF,CAAC;MACD5B,EAAE,EAAE;IACN,CAAC,CAAC;EACJ,CAAC,EACD,CACEpF,MAAM,EACNiH,WAAW,EACXgB,cAAc,EACdvF,yBAAyB,EACzBiD,WAAW,EACXL,KAAK,EACLW,UAAU,EACVe,iBAAiB,CAErB,CAAC;EAED,IAAAyC,gBAAS,EAAC,YAAM;IAAA,IAAAM,iBAAA;IACd,IAAMC,cAAc,IAAAD,iBAAA,GAAGrI,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEoE,OAAO,cAAAiE,iBAAA,cAAAA,iBAAA,GAAIE,QAAQ;IACnDD,cAAc,CAACE,gBAAgB,CAAC,OAAO,EAAEpC,iBAAiB,CAAC;IAC3DkC,cAAc,CAACE,gBAAgB,CAAC,SAAS,EAAEL,eAAe,CAAC;IAC3D,OAAO,YAAM;MACXG,cAAc,CAACG,mBAAmB,CAAC,OAAO,EAAErC,iBAAiB,CAAC;MAC9DkC,cAAc,CAACG,mBAAmB,CAAC,SAAS,EAAEN,eAAe,CAAC;IAChE,CAAC;EACH,CAAC,EAAE,CAAC/B,iBAAiB,EAAE+B,eAAe,EAAEnI,OAAO,CAAC,CAAC;EAEjD,IAAM0I,uBAAuB,GAAG,IAAAzG,kBAAW,EAAC,YAAM;IAChD,IAAIhB,qBAAqB,EAAE;MACzB,OAAOa,eAAe,CAACvE,MAAM,GAAG,CAAC,IAAIuE,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE;IAChE,CAAC,MAAM;MACL,OACEA,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,IAC3BA,eAAe,CAACvE,MAAM,KAAKgI,WAAW,CAAChI,MAAM;IAEjD;EACF,CAAC,EAAE,CAACgI,WAAW,CAAChI,MAAM,EAAE0D,qBAAqB,EAAEa,eAAe,CAAC,CAAC;EAEhE,IAAM6G,iBAAiB,GAAG,IAAA1G,kBAAW,EACnC,UAAC2G,WAAwB,EAAEjD,KAAa,EAAK;IAC3C,QAAQiD,WAAW,CAAC9I,IAAI;MACtB,KAAK,SAAS;QACZ,oBACE1F,MAAA,CAAAiB,OAAA,CAAA4L,aAAA,CAACrM,OAAA,CAAA2M,MAAM;UACLrK,IAAI,EAAEkC,MAAM,CAACoB,YAAY,CAAE;UAC3BgH,GAAG,EAAE5D,KAAK,CAACpE,IAAI,KAAK,IAAI,GAAGqC,OAAO,GAAG,IAAK;UAC1C+B,KAAK,EAAEA,KAAK,CAACpE,IAAI,KAAK,IAAK;UAC3BiI,YAAY,EAAEZ,gBAAiB;UAC/Ba,OAAO,EAAE,SAAAA,QAAC1M,CAAC,EAAK;YACdA,CAAC,CAAC+L,cAAc,CAAC,CAAC;YAClBR,cAAc,CAAC,IAAI,CAAC;UACtB,CAAE;UACFjG,YAAY,EAAEA,YAAY,CACxB;YAAEpD,IAAI,EAAEsD,YAAY;YAAEiC,EAAE,EAAE;UAAK,CAAC,EAChC;YACE0E,OAAO,EAAEuB,uBAAuB,CAAC,CAAC;YAClC9E,KAAK,EAAEA,KAAK,CAACpE,IAAI,KAAK,IAAI;YAC1B8H,QAAQ,EAAE,SAAAA,SAAA;cAAA,OAAM,IAAI;YAAA;UACtB,CACF;QAAE,CACH,CAAC;MAGN,KAAK,OAAO;QACV,IAAI,CAACsB,WAAW,CAACpJ,IAAI,IAAI,CAACD,aAAa,CAACqJ,WAAW,CAACpJ,IAAI,CAAC,EACvD,OAAO,IAAI;QACb,oBACEpF,MAAA,CAAAiB,OAAA,CAAA4L,aAAA,CAACnM,YAAA,CAAAoM,WAAW;UACVC,OAAO,EAAErF,eAAgB;UACzB5E,IAAI,EAAE0L,WAAW,CAACpJ,IAAI,CAACtC,IAAK;UAC5BkK,OAAO,EAAEwB,WAAW,CAACpJ,IAAI,CAAC4H,OAAQ;UAClCrI,GAAG,EAAE6J,WAAW,CAACpJ,IAAI,CAACiD,EAAG;UACzBoB,QAAQ,EAAEyC,mBAAoB;UAC9B7D,EAAE,EAAEmG,WAAW,CAACpJ,IAAI,CAACiD,EAAG;UACxBmB,KAAK,EAAEA,KAAK,CAACpE,IAAK;UAClBC,OAAO,EAAEmJ,WAAW,CAACpJ,IAAI,CAACC,OAAQ;UAClC4H,aAAa,EAAEL,kBAAmB;UAClClH,IAAI,EAAEA,IAAK;UACXwH,QAAQ,EAAE3G,YAAa;UACvBrC,MAAM,EAAEA,MAAO;UACfkD,YAAY,EAAEA;QAAa,CAC5B,CAAC;MAGN,KAAK,QAAQ;QACX,IAAI,CAACoH,WAAW,CAACpJ,IAAI,IAAID,aAAa,CAACqJ,WAAW,CAACpJ,IAAI,CAAC,EAAE,OAAO,IAAI;QACrE,oBACEpF,MAAA,CAAAiB,OAAA,CAAA4L,aAAA,CAACrM,OAAA,CAAA2M,MAAM;UACLrK,IAAI,EAAG0L,WAAW,CAACpJ,IAAI,CAAsBtC,IAAK;UAClDsK,GAAG,EAAE5D,KAAK,CAACpE,IAAI,KAAKoJ,WAAW,CAACnG,EAAE,GAAGZ,OAAO,GAAG,IAAK;UACpD9C,GAAG,EAAE4G,KAAM;UACXyB,OAAO,EAAGwB,WAAW,CAACpJ,IAAI,CAAsB4H,OAAQ;UACxDK,YAAY,EAAE,SAAAA,aAAA;YAAA,OAAMZ,gBAAgB,CAAC+B,WAAW,CAACnG,EAAE,CAAC;UAAA,CAAC;UACrDiF,OAAO,EAAEZ,WAAY;UACrBrE,EAAE,EAAEmG,WAAW,CAACnG,EAAG;UACnBmB,KAAK,EAAEgF,WAAW,CAACnG,EAAE,KAAKmB,KAAK,CAACpE,IAAK;UACrCmI,SAAS,EAAE/G,eAAgB;UAC3BN,YAAY,EAAEA,YAAY,CAAA7B,aAAA,CAAAA,aAAA,KAElBmK,WAAW,CAACpJ,IAAI;YACpBtC,IAAI,EAAE,IAAA0K,yBAAa,EAChBgB,WAAW,CAACpJ,IAAI,CAAsBtC,IAAI,EAC3CoB,MACF;UAAC,IAEH;YACEmE,EAAE,YAAAoF,MAAA,CAAYe,WAAW,CAACnG,EAAE,CAAE;YAC9B0E,OAAO,EACLrF,eAAe,IAAIA,eAAe,CAACU,QAAQ,CAACoG,WAAW,CAACnG,EAAE,CAAC;YAC7DmB,KAAK,EAAEA,KAAK,CAACpE,IAAI,KAAKoJ,WAAW,CAACnG,EAAE;YACpC6E,QAAQ,EAAE,SAAAA,SAAA;cAAA,OAAM,IAAI;YAAA;UACtB,CACF;QAAE,CACH,CAAC;MAGN,KAAK,UAAU;QACb,oBAAOlN,MAAA,CAAAiB,OAAA,CAAA4L,aAAA,CAAA4B,mBAAA,QAAkCzI,YAA2B,CAAC;MAEvE,KAAK,QAAQ;QACX,oBACEhG,MAAA,CAAAiB,OAAA,CAAA4L,aAAA,CAACxM,OAAA,CAAAqO,yBAAyB;UACxBtB,GAAG,EAAE5D,KAAK,CAACpE,IAAI,KAAK,QAAQ,GAAGqC,OAAO,GAAG,IAAK;UAC9C9C,GAAG,EAAC,YAAY;UAChB6E,KAAK,EAAEA,KAAK,CAACpE,IAAI,KAAK,QAAS;UAC/BuJ,WAAW,EAAE9E,WAAY;UACzBwD,YAAY,EAAEnD;QAAmB,GAEhCnE,UACwB,CAAC;MAGhC;QACE,OAAO,IAAI;IACf;EACF,CAAC,EACD,CACEK,YAAY,EACZoD,KAAK,CAACpE,IAAI,EACVqH,gBAAgB,EAChBvG,YAAY,EACZoI,uBAAuB,EACvB5G,eAAe,EACfwE,mBAAmB,EACnBU,kBAAkB,EAClBlH,IAAI,EACJa,YAAY,EACZrC,MAAM,EACNkD,YAAY,EACZsF,WAAW,EACXlG,eAAe,EACfR,YAAY,EACZ6D,WAAW,EACXK,kBAAkB,EAClBnE,UAAU,EACVoG,cAAc,CAElB,CAAC;EAED,oBACEnM,MAAA,CAAAiB,OAAA,CAAA4L,aAAA,CAACxM,OAAA,CAAAuO,8BAA8B;IAC7BrB,SAAS,EAAE5G,qBAAsB;IACjCkI,SAAS,EACP,CAACzI,YAAY,IAAI,CAACL,UAAU,IAAI,CAACC,YAAY,IAAIiF,IAAI,CAAC9H,MAAM,GAAG;EAChE,GAEA,UAAA2L,KAAA;IAAA,IAAGC,SAAQ,GAAAD,KAAA,CAARC,QAAQ;IAAA,oBACV/O,MAAA,CAAAiB,OAAA,CAAA4L,aAAA,CAACxM,OAAA,CAAA2O,sBAAsB;MAACrK,GAAG,EAAC,MAAM;MAACsK,YAAY,EAAEvB;IAAmB,gBAClE1N,MAAA,CAAAiB,OAAA,CAAA4L,aAAA;MACEO,GAAG,EAAE7F,gBAAiB;MACtB2H,KAAK,EAAE;QACLC,MAAM,KAAA1B,MAAA,CAAK2B,IAAI,CAACC,GAAG,CACjB5D,cAAc,CAAC6D,YAAY,CAAC,CAAC,GAAG,EAAE,EAClCrI,aACF,CAAC,OAAI;QACLsI,QAAQ,EAAE;MACZ,CAAE;MACFR,QAAQ,EAAE,SAAAA,SAACnO,CAAC,EAAK;QACf,IAAImO,SAAQ,EAAEA,SAAQ,CAACnO,CAAC,CAAC;MAC3B;IAAE,gBAEFZ,MAAA,CAAAiB,OAAA,CAAA4L,aAAA;MACEqC,KAAK,EAAE;QACLC,MAAM,KAAA1B,MAAA,CAAKhC,cAAc,CAAC6D,YAAY,CAAC,CAAC,OAAI;QAC5CE,KAAK,EAAE,MAAM;QACbC,QAAQ,EAAE;MACZ;IAAE,GAEDjE,uBAAuB,GACpBC,cAAc,CAACiE,eAAe,CAAC,CAAC,CAACjH,GAAG,CAAC,UAACkH,UAAU,EAAK;MACnD,IAAMvK,IAAI,GAAGiG,YAAY,CAACsE,UAAU,CAACpE,KAAK,CAAC;MAC3C,oBACEvL,MAAA,CAAAiB,OAAA,CAAA4L,aAAA;QACElI,GAAG,EAAEgL,UAAU,CAACpE,KAAM;QACtB,cAAYoE,UAAU,CAACpE,KAAM;QAC7B2D,KAAK,EAAE;UACLO,QAAQ,EAAE,UAAU;UACpBG,GAAG,EAAE,CAAC;UACNC,IAAI,EAAE,CAAC;UACPL,KAAK,EAAE,MAAM;UACbM,SAAS,gBAAArC,MAAA,CAAgBkC,UAAU,CAACI,KAAK;QAC3C;MAAE,GAEDxB,iBAAiB,CAACnJ,IAAI,EAAEuK,UAAU,CAACpE,KAAK,CACtC,CAAC;IAEV,CAAC,CAAC,GACFF,YAAY,CAAC5C,GAAG,CAAC,UAACrD,IAAI,EAAEmG,KAAK;MAAA,oBAC3BvL,MAAA,CAAAiB,OAAA,CAAA4L,aAAA,CAAC7M,MAAA,CAAAiB,OAAK,CAAC+O,QAAQ;QAACrL,GAAG,EAAE4G;MAAM,GACxBgD,iBAAiB,CAACnJ,IAAI,EAAEmG,KAAK,CAChB,CAAC;IAAA,CAClB,CACF,CACF,CACiB,CAAC;EAAA,CAEG,CAAC;AAErC,CAAC;AAEDhG,YAAY,CAAC0K,WAAW,GAAG,cAAc;AAAC,IAAAxB,mBAAA,OAAAyB,iBAAA,CAAAjP,OAAA,EAAAR,QAAA,CAAA0P,YAAA,EAAAC,UAAA;EAAAH,WAAA;EAAAI,WAAA;AAAA"}
|
|
1
|
+
{"version":3,"file":"Autocomplete.js","names":["_react","_interopRequireWildcard","require","_reactCustomScrollbars","_HandleKeyboard","_Styles","_useHighlightText","_interopRequireDefault","_Option","_Styles2","_OptionGroup","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","len","length","arr2","l","Symbol","iterator","f","next","done","push","value","return","isArray","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","_toPropertyKey","configurable","writable","_toPrimitive","String","toPrimitive","Number","isOptionGroup","item","options","undefined","Autocomplete","exports","_ref","type","_ref$options","inputEl","_ref$selected","selected","emptyValue","noResultText","_ref$renderOption","renderOption","option","defaultValue","_ref$sortDirection","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","_ref$keepSameOptionsO","keepSameOptionsOrder","_ref$autoHeightMax","autoHeightMax","clearInputOnSelect","_ref$mixedOptions","mixedOptions","itemRef","useRef","listRef","selectedOptions","useMemo","handleSort","useCallback","opts","_opts$","isGrouped","sortOptions","b","aSelected","includes","id","bSelected","aMixed","bMixed","map","group","sortedGroupOptions","sort","sortList","_options$","sortedOptions","localeCompare","sortedList","_useState","useState","by","_useState2","hover","setHover","_useState3","_useState4","setFilter","handleEmpty","button","_inputEl$current","current","focus","onAddNewMouseEnter","showAddNew","trim","every","v","toLowerCase","renderAddNew","createElement","StyledAutocompleteNewItem","ref","onMouseDown","onMouseEnter","filterOptions","trimmedFilter","hovered","reduce","acc","groupedOption","filteredOptions","list","showDefaultOption","flatOptions","handleInputChange","target","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","index","OptionGroup","checked","tooltip","renderOptions","onChange","Option","onClick","className","highlightText","concat","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","useEffect","offsetTop","handleOnKeyDown","handleKeyboardMovement","_inputEl$current2","listenerTarget","document","addEventListener","removeEventListener","isDefaultOptionSelected","showNoResult","renderNoResult","_StyledStyledOption","StyledAutocompleteScrollShadow","$isHidden","_ref2","onScroll","StyledAutocompleteBody","onMouseLeave","Scrollbars","autoHeight","displayName","_styledComponents","StyledOption","withConfig","componentId"],"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n ReactNode,\n ReactElement,\n MutableRefObject,\n} from \"react\";\nimport { Scrollbars } from \"react-custom-scrollbars-2\";\n\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { IOptionItemProps, Option } from \"../Select/Option\";\nimport { StyledOption } from \"../Select/Option/Styles\";\nimport { IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Mixed options values */\n mixedOptions?: (string | number)[];\n /** Input Element. */\n inputEl?: MutableRefObject<HTMLInputElement | null | undefined>;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n /** Clear input on select - works in single mode */\n clearInputOnSelect?: boolean;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n clearInputOnSelect,\n mixedOptions = [],\n}) => {\n const itemRef = useRef<HTMLLIElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n const handleSort = useCallback((opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n\n const isGrouped = Array.isArray(opts[0]?.options);\n\n const sortOptions = (a, b) => {\n const aSelected = selectedOptions.includes(a.id);\n const bSelected = selectedOptions.includes(b.id);\n const aMixed = mixedOptions.includes(a.id);\n const bMixed = mixedOptions.includes(b.id);\n\n if (aSelected && !bSelected) {\n return -1;\n }\n if (!aSelected && bSelected) {\n return 1;\n }\n if (aMixed && !bMixed) {\n return -1;\n }\n if (!aMixed && bMixed) {\n return 1;\n }\n return 0;\n };\n\n if (isGrouped) {\n return opts.map((group) => {\n const sortedGroupOptions = group.options.sort(sortOptions);\n\n return {\n ...group,\n options: sortedGroupOptions,\n };\n });\n } else {\n return opts.sort(sortOptions);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n\n const isGrouped = Array.isArray(options[0]?.options);\n\n if (isGrouped) {\n const sortedOptions = options.map((group) => {\n const sortedGroupOptions = group.options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return {\n ...group,\n options: handleSort(sortedGroupOptions),\n };\n });\n\n return handleSort(sortedOptions);\n } else {\n const sortedOptions = options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return handleSort(sortedOptions);\n }\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const sortedList = useMemo(() => sortList(options), [options, sortList]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.current?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isOptionGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const renderAddNew = useMemo(() => {\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n }, [emptyValue, handleEmpty, hover, onAddNewMouseEnter]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isOptionGroup(options[0]);\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const toggleSelected = useCallback(\n (id) => {\n let result;\n\n if (id !== null) {\n if (type === \"multiple\") {\n if (selectedOptions.includes(id)) {\n result = selectedOptions.filter((_id) => _id !== id);\n } else {\n result = [...selectedOptions, id];\n }\n } else {\n result = id;\n }\n if (clearInputOnSelect && inputEl?.current) {\n inputEl.current.value = \"\";\n inputEl.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n setFilter(\"\");\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n return;\n }\n }\n\n if (typeof handleChange === \"function\") {\n handleChange(result);\n }\n },\n [\n clearInputOnSelect,\n handleChange,\n handleDefaultOptionChange,\n inputEl,\n selectedOptions,\n type,\n ]\n );\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleClick = useCallback(\n (e) => {\n e.preventDefault();\n toggleSelected(hover.item);\n },\n [toggleSelected, hover]\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps, index) => {\n if (isOptionGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n tooltip={item.tooltip}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={itemRef}\n key={index}\n tooltip={item.tooltip}\n onMouseEnter={handleMouseEnter}\n onClick={handleClick}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleClick,\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n mixedOptions,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n const handleScroll = useCallback((list: Scrollbars, itemOffset: number) => {\n if (list.getClientHeight() + list.getScrollTop() < itemOffset + 40) {\n return list.scrollTop(itemOffset - list.getClientHeight() + 30);\n }\n if (list.getScrollTop() > itemOffset) {\n return list.scrollTop(itemOffset);\n }\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const item: HTMLLIElement | null = itemRef.current;\n const list = listRef.current;\n if (itemRef && item && list) {\n handleScroll(list, item.offsetTop);\n }\n }\n }, [handleScroll, hover]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n\n if (typeof hover.item !== \"undefined\" || hover.item !== null) {\n toggleSelected(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n toggleSelected,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n useEffect(() => {\n const listenerTarget = inputEl?.current ?? document;\n listenerTarget.addEventListener(\"input\", handleInputChange);\n listenerTarget.addEventListener(\"keydown\", handleOnKeyDown);\n return () => {\n listenerTarget.removeEventListener(\"input\", handleInputChange);\n listenerTarget.removeEventListener(\"keydown\", handleOnKeyDown);\n };\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const showNoResult = useMemo(\n () =>\n noResultText &&\n !showAddNew &&\n list.length < 1 &&\n ((defaultValue && filter) || !defaultValue),\n [noResultText, showAddNew, list.length, defaultValue, filter]\n );\n\n const renderNoResult = useMemo(\n () => <StyledOption css=\"cursor: auto\">{noResultText}</StyledOption>,\n [noResultText]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }) => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <Scrollbars\n ref={listRef}\n key=\"scrollBar\"\n autoHeight\n autoHeightMax={autoHeightMax}\n onScroll={onScroll}\n >\n {defaultValue && !filter && (\n <Option\n name={defaultValue}\n ref={itemRef}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n onClick={(e) => {\n e.preventDefault();\n toggleSelected(null);\n }}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n )}\n {list.map((item: IOptionItemProps, index) =>\n handleRenderOption(item, index)\n )}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"mappings":"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"}
|