@rocket.chat/fuselage 0.32.0-dev.302 → 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: unknown[];
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: unknown, action: 'remove' | undefined) => void;
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,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAgBvD,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC9C,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC;IACjE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAC;IACjE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC;IAClE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,EACN,SAAoB,EACpB,OAAY,EACZ,UAAU,EACV,cAAc,EAAE,cAAgC,EAChD,QAAmB,EACnB,QAAoC,EACpC,QAA+B,EAC/B,WAAW,EACX,WAAW,EACX,KAAK,EACL,QAAQ,GACT,EAAE,iBAAiB,GAAG,YAAY,CAyGlC"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../../src/components/MultiSelect/MultiSelect.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,WAAW,EAEX,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAavC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAwBzE,eAAO,MAAM,WAAW;;;;;;;;;aAfb,YAAY,EAAE;uBACJ,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI;0CACR,YAAY,CAAC,CAAC,CAAC;0CACf,YAAY,CAAC,CAAC,CAAC;;8DAItC,uBAAuB,KAAK,SAAS;;;;;0BAK9B,MAAM,KAAK,IAAI;iuSA2MrC,CAAC"}
1
+ {"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../../src/components/MultiSelect/MultiSelect.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,WAAW,EAEX,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAavC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAwBzE,eAAO,MAAM,WAAW;;;;;;;;;aAfb,YAAY,EAAE;uBACJ,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI;0CACR,YAAY,CAAC,CAAC,CAAC;0CACf,YAAY,CAAC,CAAC,CAAC;;8DAItC,uBAAuB,KAAK,SAAS;;;;;0BAK9B,MAAM,KAAK,IAAI;iuSA8MrC,CAAC"}
@@ -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 SelectedOptions = react__WEBPACK_IMPORTED_MODULE_1___default().memo(function (props) { return react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Chip__WEBPACK_IMPORTED_MODULE_4__["default"], __assign({}, props)); });
4396
- /**
4397
- * @deprecated in favor of Select and MultiSelect
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, _b = _a.setFilter, setFilter = _b === void 0 ? function () { } : _b, _c = _a.options, options = _c === void 0 ? [] : _c, renderItem = _a.renderItem, _d = _a.renderSelected, RenderSelected = _d === void 0 ? SelectedOptions : _d, _e = _a.onChange, onChange = _e === void 0 ? function () { } : _e, _f = _a.getLabel, getLabel = _f === void 0 ? function (_a) {
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 _j = __read((0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(function () {
4410
- return options.find(function (option) { return getValue(option) === value; });
4411
- }), 2), selected = _j[0], setSelected = _j[1];
4412
- var selectByKeyboard = (0,_rocket_chat_fuselage_hooks__WEBPACK_IMPORTED_MODULE_0__.useMutableCallback)(function (_a) {
4413
- var _b = __read(_a, 1), value = _b[0];
4414
- setSelected(options.find(function (option) { return getValue(option) === value; }));
4415
- onChange(value);
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 label = _a.label, value = _a.value;
4444
+ var value = _a.value, label = _a.label;
4420
4445
  return [value, label];
4421
4446
  }); }, [options]);
4422
- var _k = __read((0,_Options__WEBPACK_IMPORTED_MODULE_8__.useCursor)(value, memoizedOptions, selectByKeyboard), 5), cursor = _k[0], handleKeyDown = _k[1], reset = _k[3], _l = __read(_k[4], 3), optionsAreVisible = _l[0], hide = _l[1], show = _l[2];
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 && optionsAreVisible === _AnimatedVisibility__WEBPACK_IMPORTED_MODULE_2__["default"].HIDDEN && (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(RenderSelected, { role: 'option', value: value, label: getLabel(selected), children: getLabel(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: onSelect, renderItem: renderItem, renderEmpty: renderEmpty, cursor: cursor, value: value, options: memoizedOptions }))));
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
 
@@ -10533,6 +10554,7 @@ var MultiSelect = (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function (_a
10533
10554
  return value;
10534
10555
  } : _f, placeholder = _a.placeholder, _g = _a.renderOptions, _Options = _g === void 0 ? _Options__WEBPACK_IMPORTED_MODULE_10__.Options : _g, renderItem = _a.renderItem, customEmpty = _a.customEmpty, RenderSelected = _a.renderSelected, addonIcon = _a.addonIcon, props = __rest(_a, ["value", "filter", "setFilter", "options", "error", "disabled", "anchor", "onChange", "getLabel", "getValue", "placeholder", "renderOptions", "renderItem", "customEmpty", "renderSelected", "addonIcon"]);
10535
10556
  var _h = __read((0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(value || []), 2), internalValue = _h[0], setInternalValue = _h[1];
10557
+ (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () { return setInternalValue(value || []); }, [value]);
10536
10558
  var _j = __read((0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(), 2), currentOptionValue = _j[0], setCurrentOption = _j[1];
10537
10559
  var index = options.findIndex(function (option) { return getValue(option) === currentOptionValue; });
10538
10560
  var removeFocusClass = function () { var _a; return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.classList.remove('focus-visible'); };