@rocket.chat/fuselage 0.32.0-dev.303 → 0.32.0-dev.304
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.
|
@@ -1,31 +1,22 @@
|
|
|
1
1
|
import type { ElementType, ReactElement } from 'react';
|
|
2
|
+
type AutoCompleteOption = {
|
|
3
|
+
value: string;
|
|
4
|
+
label: unknown;
|
|
5
|
+
};
|
|
2
6
|
type AutoCompleteProps = {
|
|
3
|
-
value
|
|
7
|
+
value?: string | string[];
|
|
4
8
|
filter: string;
|
|
5
9
|
setFilter?: (filter: string) => void;
|
|
6
|
-
options?:
|
|
7
|
-
label: string;
|
|
8
|
-
value: unknown;
|
|
9
|
-
}[];
|
|
10
|
+
options?: AutoCompleteOption[];
|
|
10
11
|
renderItem?: ElementType;
|
|
11
12
|
renderSelected?: ElementType;
|
|
12
|
-
onChange: (value:
|
|
13
|
-
getLabel?: (option: {
|
|
14
|
-
label: string;
|
|
15
|
-
value: unknown;
|
|
16
|
-
}) => string;
|
|
17
|
-
getValue?: (option: {
|
|
18
|
-
label: string;
|
|
19
|
-
value: unknown;
|
|
20
|
-
}) => unknown;
|
|
13
|
+
onChange: (value: string | string[]) => void;
|
|
21
14
|
renderEmpty?: ElementType;
|
|
22
15
|
placeholder?: string;
|
|
23
16
|
error?: boolean;
|
|
24
17
|
disabled?: boolean;
|
|
18
|
+
multiple?: boolean;
|
|
25
19
|
};
|
|
26
|
-
|
|
27
|
-
* @deprecated in favor of Select and MultiSelect
|
|
28
|
-
*/
|
|
29
|
-
export declare function AutoComplete({ value, filter, setFilter, options, renderItem, renderSelected: RenderSelected, onChange, getLabel, getValue, renderEmpty, placeholder, error, disabled, }: AutoCompleteProps): ReactElement;
|
|
20
|
+
export declare function AutoComplete({ value, filter, setFilter, options, renderItem, renderSelected: RenderSelected, onChange, renderEmpty, placeholder, error, disabled, multiple, }: AutoCompleteProps): ReactElement;
|
|
30
21
|
export {};
|
|
31
22
|
//# sourceMappingURL=AutoComplete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoComplete.d.ts","sourceRoot":"","sources":["../../../src/components/AutoComplete/AutoComplete.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"AutoComplete.d.ts","sourceRoot":"","sources":["../../../src/components/AutoComplete/AutoComplete.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAkB,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAgBvE,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAcF,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAY,EACZ,UAAU,EACV,cAAc,EAAE,cAAc,EAC9B,QAAQ,EACR,WAAW,EACX,WAAW,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,iBAAiB,GAAG,YAAY,CA0IlC"}
|
|
@@ -4380,6 +4380,15 @@ var __read = (undefined && undefined.__read) || function (o, n) {
|
|
|
4380
4380
|
}
|
|
4381
4381
|
return ar;
|
|
4382
4382
|
};
|
|
4383
|
+
var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {
|
|
4384
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4385
|
+
if (ar || !(i in from)) {
|
|
4386
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
4387
|
+
ar[i] = from[i];
|
|
4388
|
+
}
|
|
4389
|
+
}
|
|
4390
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
4391
|
+
};
|
|
4383
4392
|
// @ts-nocheck
|
|
4384
4393
|
|
|
4385
4394
|
|
|
@@ -4391,42 +4400,51 @@ var __read = (undefined && undefined.__read) || function (o, n) {
|
|
|
4391
4400
|
|
|
4392
4401
|
|
|
4393
4402
|
|
|
4394
|
-
var Addon = function (props) { return react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Box__WEBPACK_IMPORTED_MODULE_3__["default"], __assign({ "rcx-autocomplete__addon": true }, props)); };
|
|
4395
|
-
var
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
|
|
4403
|
+
var Addon = function (props) { return (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Box__WEBPACK_IMPORTED_MODULE_3__["default"], __assign({ "rcx-autocomplete__addon": true }, props))); };
|
|
4404
|
+
var getSelected = function (value, options) {
|
|
4405
|
+
if (!value) {
|
|
4406
|
+
return [];
|
|
4407
|
+
}
|
|
4408
|
+
return typeof value === 'string'
|
|
4409
|
+
? options.filter(function (option) { return option.value === value; })
|
|
4410
|
+
: options === null || options === void 0 ? void 0 : options.filter(function (option) { return value.includes(option.value); });
|
|
4411
|
+
};
|
|
4399
4412
|
function AutoComplete(_a) {
|
|
4400
|
-
var value = _a.value, filter = _a.filter,
|
|
4401
|
-
var _b = _a === void 0 ? {} : _a, label = _b.label;
|
|
4402
|
-
return label;
|
|
4403
|
-
} : _f, _g = _a.getValue, getValue = _g === void 0 ? function (_a) {
|
|
4404
|
-
var value = _a.value;
|
|
4405
|
-
return value;
|
|
4406
|
-
} : _g, renderEmpty = _a.renderEmpty, placeholder = _a.placeholder, error = _a.error, disabled = _a.disabled;
|
|
4407
|
-
var _h = (0,_rocket_chat_fuselage_hooks__WEBPACK_IMPORTED_MODULE_0__.useResizeObserver)(), containerRef = _h.ref, borderBoxSize = _h.borderBoxSize;
|
|
4413
|
+
var value = _a.value, filter = _a.filter, setFilter = _a.setFilter, _b = _a.options, options = _b === void 0 ? [] : _b, renderItem = _a.renderItem, RenderSelected = _a.renderSelected, onChange = _a.onChange, renderEmpty = _a.renderEmpty, placeholder = _a.placeholder, error = _a.error, disabled = _a.disabled, multiple = _a.multiple;
|
|
4408
4414
|
var ref = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)();
|
|
4409
|
-
var
|
|
4410
|
-
|
|
4411
|
-
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4415
|
+
var _c = (0,_rocket_chat_fuselage_hooks__WEBPACK_IMPORTED_MODULE_0__.useResizeObserver)(), containerRef = _c.ref, borderBoxSize = _c.borderBoxSize;
|
|
4416
|
+
var _d = __read((0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(function () { return getSelected(value, options) || []; }), 2), selected = _d[0], setSelected = _d[1];
|
|
4417
|
+
var handleSelect = (0,_rocket_chat_fuselage_hooks__WEBPACK_IMPORTED_MODULE_0__.useMutableCallback)(function (_a) {
|
|
4418
|
+
var _b = __read(_a, 1), currentValue = _b[0];
|
|
4419
|
+
if (selected === null || selected === void 0 ? void 0 : selected.some(function (item) { return item.value === currentValue; })) {
|
|
4420
|
+
hide();
|
|
4421
|
+
return;
|
|
4422
|
+
}
|
|
4423
|
+
if (multiple) {
|
|
4424
|
+
setSelected(__spreadArray(__spreadArray([], __read(selected), false), __read(getSelected(currentValue, options)), false));
|
|
4425
|
+
onChange(__spreadArray(__spreadArray([], __read(value), false), [currentValue], false));
|
|
4426
|
+
}
|
|
4427
|
+
else {
|
|
4428
|
+
setSelected(getSelected(currentValue, options));
|
|
4429
|
+
onChange(currentValue);
|
|
4430
|
+
}
|
|
4416
4431
|
setFilter('');
|
|
4432
|
+
hide();
|
|
4433
|
+
});
|
|
4434
|
+
var handleRemove = (0,_rocket_chat_fuselage_hooks__WEBPACK_IMPORTED_MODULE_0__.useMutableCallback)(function (event) {
|
|
4435
|
+
event.stopPropagation();
|
|
4436
|
+
event.preventDefault();
|
|
4437
|
+
var filtered = selected.filter(function (item) { return item.value !== event.currentTarget.value; });
|
|
4438
|
+
var filteredValue = value.filter(function (item) { return item !== event.currentTarget.value; });
|
|
4439
|
+
setSelected(filtered);
|
|
4440
|
+
onChange(filteredValue);
|
|
4441
|
+
hide();
|
|
4417
4442
|
});
|
|
4418
4443
|
var memoizedOptions = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function () { return options.map(function (_a) {
|
|
4419
|
-
var
|
|
4444
|
+
var value = _a.value, label = _a.label;
|
|
4420
4445
|
return [value, label];
|
|
4421
4446
|
}); }, [options]);
|
|
4422
|
-
var
|
|
4423
|
-
var onSelect = (0,_rocket_chat_fuselage_hooks__WEBPACK_IMPORTED_MODULE_0__.useMutableCallback)(function (_a) {
|
|
4424
|
-
var _b = __read(_a, 1), value = _b[0];
|
|
4425
|
-
setSelected(options.find(function (option) { return getValue(option) === value; }));
|
|
4426
|
-
onChange(value);
|
|
4427
|
-
setFilter('');
|
|
4428
|
-
hide();
|
|
4429
|
-
});
|
|
4447
|
+
var _e = __read((0,_Options__WEBPACK_IMPORTED_MODULE_8__.useCursor)(value, memoizedOptions, handleSelect), 5), cursor = _e[0], handleKeyDown = _e[1], reset = _e[3], _f = __read(_e[4], 3), optionsAreVisible = _f[0], hide = _f[1], show = _f[2];
|
|
4430
4448
|
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(reset, [filter]);
|
|
4431
4449
|
return (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Box__WEBPACK_IMPORTED_MODULE_3__["default"], { "rcx-autocomplete": true, ref: containerRef, onClick: (0,_rocket_chat_fuselage_hooks__WEBPACK_IMPORTED_MODULE_0__.useMutableCallback)(function () { return ref.current.focus(); }), flexGrow: 1, className: (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function () { return [error && 'invalid', disabled && 'disabled']; }, [error, disabled]) },
|
|
4432
4450
|
react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Box__WEBPACK_IMPORTED_MODULE_3__["default"], { display: 'flex', flexGrow: 1, alignItems: 'center', flexWrap: 'wrap', margin: 'neg-x4', role: 'listbox' },
|
|
@@ -4436,12 +4454,15 @@ function AutoComplete(_a) {
|
|
|
4436
4454
|
}), onBlur: hide, onFocus: show, onKeyDown: handleKeyDown, placeholder: optionsAreVisible !== _AnimatedVisibility__WEBPACK_IMPORTED_MODULE_2__["default"].HIDDEN || !value
|
|
4437
4455
|
? placeholder
|
|
4438
4456
|
: undefined, order: 1, "rcx-input-box--undecorated": true, value: filter }),
|
|
4439
|
-
selected &&
|
|
4457
|
+
selected &&
|
|
4458
|
+
selected.map(function (itemSelected) {
|
|
4459
|
+
return RenderSelected ? (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(RenderSelected, { key: itemSelected.value, selected: itemSelected, onRemove: handleRemove })) : (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Chip__WEBPACK_IMPORTED_MODULE_4__["default"], { role: 'option', key: itemSelected.value, value: itemSelected.value, label: itemSelected.label, children: itemSelected.label, onClick: handleRemove, selected: selected }));
|
|
4460
|
+
}))),
|
|
4440
4461
|
react__WEBPACK_IMPORTED_MODULE_1___default().createElement(Addon, { children: react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Icon__WEBPACK_IMPORTED_MODULE_5__.Icon, { name: optionsAreVisible === _AnimatedVisibility__WEBPACK_IMPORTED_MODULE_2__["default"].VISIBLE
|
|
4441
4462
|
? 'cross'
|
|
4442
4463
|
: 'magnifier', size: 'x20' }) }),
|
|
4443
4464
|
react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_PositionAnimated__WEBPACK_IMPORTED_MODULE_9__["default"], { visible: optionsAreVisible, anchor: containerRef },
|
|
4444
|
-
react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Options__WEBPACK_IMPORTED_MODULE_8__.Options, { role: 'option', width: borderBoxSize.inlineSize, onSelect:
|
|
4465
|
+
react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Options__WEBPACK_IMPORTED_MODULE_8__.Options, { role: 'option', width: borderBoxSize.inlineSize, onSelect: handleSelect, renderItem: renderItem, renderEmpty: renderEmpty, cursor: cursor, value: value, options: memoizedOptions }))));
|
|
4445
4466
|
}
|
|
4446
4467
|
|
|
4447
4468
|
|