@qoretechnologies/reqore 0.73.10 → 0.74.0-pr.645.gfa0d3c1

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,57 +1,22 @@
1
- import { TSizes } from '../../constants/sizes';
2
- import { IReqoreControlGroupProps } from '../ControlGroup';
3
- import { IReqoreDropdownProps } from '../Dropdown';
4
- import { IReqoreDropdownItem } from '../Dropdown/list';
5
- import { IReqoreEffect } from '../Effect';
6
- import { IReqoreInputProps } from '../Input';
7
- import { IReqoreTagProps } from '../Tag';
8
- export type TReqoreMultiSelectItem = Omit<IReqoreDropdownItem, 'color'> & Pick<IReqoreTagProps, 'asBadge' | 'rightIcon' | 'actions'> & {
9
- isNew?: boolean;
10
- };
11
- export interface IReqoreMultiSelectProps extends Omit<IReqoreControlGroupProps, 'children' | 'vertical' | 'stack'> {
12
- value?: string[];
13
- onValueChange: (value: string[]) => void;
14
- items?: TReqoreMultiSelectItem[];
15
- onItemClick?: (item: IReqoreDropdownItem) => void;
16
- onItemClickIcon?: IReqoreTagProps['rightIcon'];
17
- onItemAdded?: (item: TReqoreMultiSelectItem) => void;
18
- onItemRemoved?: (item: TReqoreMultiSelectItem) => void;
19
- canRemoveItems?: boolean;
20
- canCreateItems?: boolean;
21
- selectedItemEffect?: IReqoreEffect;
22
- selectedItemSize?: TSizes;
23
- selectorProps?: Omit<IReqoreInputProps, 'value' | 'onValueChange'> & IReqoreDropdownProps;
24
- openOnMount?: IReqoreDropdownProps['isDefaultOpen'];
25
- enterKeySelects?: boolean;
26
- disabled?: boolean;
27
- showNoItemsMessage?: boolean;
28
- noItemsMessageProps?: IReqoreTagProps;
29
- /** Label for the tag shown when no items are selected. Defaults to `'No items selected'`. */
30
- noItemsSelectedLabel?: string;
31
- /** Label shown in the dropdown when the query matches no existing items. Defaults to `'No existing items found'`. */
32
- noMatchingItemsLabel?: string;
33
- /** Label shown in the dropdown when there are no items at all (and `canCreateItems` is true). Defaults to `'No items exist'`. */
34
- noItemsAvailableLabel?: string;
35
- /** Divider label preceding the user-created items section. Defaults to `'Custom Items'`. */
36
- customItemsDividerLabel?: string;
37
- /** Divider label preceding items that match the current query (shown when `canCreateItems` is true). Defaults to `'Items matching your query'`. */
38
- matchingItemsDividerLabel?: string;
39
- /**
40
- * Prefix used to build the "create new" option label. Rendered as `${createItemLabelPrefix} "${query}"`.
41
- * Defaults to `'Create new'`.
42
- */
43
- createItemLabelPrefix?: string;
44
- /** Placeholder for the search input when items cannot be created. Defaults to `'Type to search...'`. */
45
- searchPlaceholder?: string;
46
- /** Placeholder for the search input when `canCreateItems` is true. Defaults to `'Type to search or create an item...'`. */
47
- createItemPlaceholder?: string;
48
- }
49
- export interface IReqoreMultiSelectItemProps extends Pick<IReqoreMultiSelectProps, 'selectedItemEffect' | 'selectedItemSize' | 'disabled'> {
50
- item: TReqoreMultiSelectItem;
51
- onClick?: () => void;
52
- onRemoveClick?: () => void;
53
- onItemClickIcon?: IReqoreTagProps['rightIcon'];
54
- }
55
- export declare const ReqoreMultiSelectItem: import("react").MemoExoticComponent<({ item, onRemoveClick, onClick, selectedItemEffect, selectedItemSize, onItemClickIcon, disabled, }: IReqoreMultiSelectItemProps) => import("react/jsx-runtime").JSX.Element>;
56
- export declare const ReqoreMultiSelect: ({ value, onValueChange, onItemClick, canRemoveItems, canCreateItems, items, selectedItemEffect, selectedItemSize, selectorProps, openOnMount, enterKeySelects, onItemClickIcon, onItemAdded, onItemRemoved, disabled, showNoItemsMessage, noItemsMessageProps, noItemsSelectedLabel, noMatchingItemsLabel, noItemsAvailableLabel, customItemsDividerLabel, matchingItemsDividerLabel, createItemLabelPrefix, searchPlaceholder, createItemPlaceholder, ...rest }: IReqoreMultiSelectProps) => import("react/jsx-runtime").JSX.Element;
1
+ /**
2
+ * Backwards compatibility for `ReqoreMultiSelect`.
3
+ *
4
+ * The component itself is now `ReqoreSelect`, which holds one value by default
5
+ * and many with `multi` — there is no second implementation, because the two
6
+ * never differed in anything but the shape of the value.
7
+ *
8
+ * This module stays so that nothing consuming the old name breaks: both
9
+ * `import { ReqoreMultiSelect } from '@qoretechnologies/reqore'` and the deep
10
+ * `'@qoretechnologies/reqore/dist/components/MultiSelect'` import that reqraft
11
+ * and qorus-ide use for `TReqoreMultiSelectItem` keep resolving, with the same
12
+ * types they always had.
13
+ */
14
+ import { IReqoreSelectMultiProps } from '../Select';
15
+ export type { IReqoreSelectBaseProps as IReqoreMultiSelectBaseProps, IReqoreSelectCommonProps as IReqoreMultiSelectCommonProps, IReqoreSelectItemProps as IReqoreMultiSelectItemProps, TReqoreSelectItem as TReqoreMultiSelectItem, } from '../Select';
16
+ export { ReqoreSelectBase as ReqoreMultiSelectBase, ReqoreSelectItem as ReqoreMultiSelectItem } from '../Select';
17
+ /** The multi-value half of `IReqoreSelectProps`, minus the discriminant the
18
+ wrapper supplies so the props are exactly what they were before. */
19
+ export type IReqoreMultiSelectProps = Omit<IReqoreSelectMultiProps, 'multi'>;
20
+ /** `ReqoreSelect` with `multi` pre-set: same name, same props, same value shape. */
21
+ export declare const ReqoreMultiSelect: (props: IReqoreMultiSelectProps) => import("react/jsx-runtime").JSX.Element;
57
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MultiSelect/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAA2B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAkB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGpD,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,GACrE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnF,MAAM,WAAW,uBACf,SAAQ,IAAI,CAAC,wBAAwB,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IACzE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzC,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAClD,eAAe,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACrD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,aAAa,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,eAAe,CAAC,GAAG,oBAAoB,CAAC;IAC1F,WAAW,CAAC,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;IACpD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,eAAe,CAAC;IAEtC,6FAA6F;IAC7F,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qHAAqH;IACrH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iIAAiI;IACjI,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4FAA4F;IAC5F,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mJAAmJ;IACnJ,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wGAAwG;IACxG,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2HAA2H;IAC3H,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,2BACf,SAAQ,IAAI,CAAC,uBAAuB,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,UAAU,CAAC;IAC7F,IAAI,EAAE,sBAAsB,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;CAChD;AAED,eAAO,MAAM,qBAAqB,2IAS7B,2BAA2B,6CA2B/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,kcA2B/B,uBAAuB,4CA8NzB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MultiSelect/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,uBAAuB,EAAgB,MAAM,WAAW,CAAC;AAElE,YAAY,EACV,sBAAsB,IAAI,2BAA2B,EACrD,wBAAwB,IAAI,6BAA6B,EACzD,sBAAsB,IAAI,2BAA2B,EACrD,iBAAiB,IAAI,sBAAsB,GAC5C,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,IAAI,qBAAqB,EAAE,gBAAgB,IAAI,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEjH;yEACyE;AACzE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;AAE7E,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,GAAI,OAAO,uBAAuB,4CAE/D,CAAC"}
@@ -10,185 +10,27 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __rest = (this && this.__rest) || function (s, e) {
14
- var t = {};
15
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
- t[p] = s[p];
17
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
- t[p[i]] = s[p[i]];
21
- }
22
- return t;
23
- };
24
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
25
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
26
- if (ar || !(i in from)) {
27
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
28
- ar[i] = from[i];
29
- }
30
- }
31
- return to.concat(ar || Array.prototype.slice.call(from));
32
- };
33
- var __importDefault = (this && this.__importDefault) || function (mod) {
34
- return (mod && mod.__esModule) ? mod : { "default": mod };
35
- };
36
13
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.ReqoreMultiSelect = exports.ReqoreMultiSelectItem = void 0;
14
+ exports.ReqoreMultiSelect = exports.ReqoreMultiSelectItem = exports.ReqoreMultiSelectBase = void 0;
38
15
  var jsx_runtime_1 = require("react/jsx-runtime");
39
- var lodash_1 = require("lodash");
40
- var react_1 = require("react");
41
- var __1 = require("../..");
42
- var ControlGroup_1 = __importDefault(require("../ControlGroup"));
43
- var Tag_1 = __importDefault(require("../Tag"));
44
- var group_1 = __importDefault(require("../Tag/group"));
45
- exports.ReqoreMultiSelectItem = (0, react_1.memo)(function (_a) {
46
- var item = _a.item, onRemoveClick = _a.onRemoveClick, onClick = _a.onClick, selectedItemEffect = _a.selectedItemEffect, selectedItemSize = _a.selectedItemSize, onItemClickIcon = _a.onItemClickIcon, disabled = _a.disabled;
47
- if (!item) {
48
- return null;
49
- }
50
- return ((0, jsx_runtime_1.jsx)(Tag_1.default, __assign({}, item, { disabled: disabled || item.disabled, label: item.label || item.value, onRemoveClick: onRemoveClick, intent: item.intent, effect: !item.intent ? item.effect || selectedItemEffect : undefined, size: selectedItemSize, onClick: onClick, rightIcon: item.disabled
51
- ? undefined
52
- : item.rightIcon
53
- ? item.rightIcon
54
- : onClick
55
- ? onItemClickIcon
56
- : undefined })));
57
- });
58
- var ReqoreMultiSelect = function (_a) {
59
- var _b = _a.value, value = _b === void 0 ? [] : _b, onValueChange = _a.onValueChange, onItemClick = _a.onItemClick, canRemoveItems = _a.canRemoveItems, canCreateItems = _a.canCreateItems, _c = _a.items, items = _c === void 0 ? [] : _c, selectedItemEffect = _a.selectedItemEffect, selectedItemSize = _a.selectedItemSize, selectorProps = _a.selectorProps, openOnMount = _a.openOnMount, enterKeySelects = _a.enterKeySelects, onItemClickIcon = _a.onItemClickIcon, onItemAdded = _a.onItemAdded, onItemRemoved = _a.onItemRemoved, disabled = _a.disabled, _d = _a.showNoItemsMessage, showNoItemsMessage = _d === void 0 ? true : _d, _e = _a.noItemsMessageProps, noItemsMessageProps = _e === void 0 ? {} : _e, _f = _a.noItemsSelectedLabel, noItemsSelectedLabel = _f === void 0 ? 'No items selected' : _f, _g = _a.noMatchingItemsLabel, noMatchingItemsLabel = _g === void 0 ? 'No existing items found' : _g, _h = _a.noItemsAvailableLabel, noItemsAvailableLabel = _h === void 0 ? 'No items exist' : _h, _j = _a.customItemsDividerLabel, customItemsDividerLabel = _j === void 0 ? 'Custom Items' : _j, _k = _a.matchingItemsDividerLabel, matchingItemsDividerLabel = _k === void 0 ? 'Items matching your query' : _k, _l = _a.createItemLabelPrefix, createItemLabelPrefix = _l === void 0 ? 'Create new' : _l, _m = _a.searchPlaceholder, searchPlaceholder = _m === void 0 ? 'Type to search...' : _m, _o = _a.createItemPlaceholder, createItemPlaceholder = _o === void 0 ? 'Type to search or create an item...' : _o, rest = __rest(_a, ["value", "onValueChange", "onItemClick", "canRemoveItems", "canCreateItems", "items", "selectedItemEffect", "selectedItemSize", "selectorProps", "openOnMount", "enterKeySelects", "onItemClickIcon", "onItemAdded", "onItemRemoved", "disabled", "showNoItemsMessage", "noItemsMessageProps", "noItemsSelectedLabel", "noMatchingItemsLabel", "noItemsAvailableLabel", "customItemsDividerLabel", "matchingItemsDividerLabel", "createItemLabelPrefix", "searchPlaceholder", "createItemPlaceholder"]);
60
- var _p = (0, react_1.useState)([]), createdItems = _p[0], setCreatedItems = _p[1];
61
- var _q = (0, react_1.useState)(''), query = _q[0], setQuery = _q[1];
62
- var popoverData = (0, react_1.useRef)(undefined);
63
- var _r = (0, react_1.useState)(false), focused = _r[0], setFocused = _r[1];
64
- var isSelectorDisabled = Boolean(disabled || (selectorProps === null || selectorProps === void 0 ? void 0 : selectorProps.disabled) || (!(0, lodash_1.size)(items) && !(0, lodash_1.size)(createdItems) && !canCreateItems));
65
- (0, react_1.useEffect)(function () {
66
- var _a, _b;
67
- if (query && !((_a = popoverData.current) === null || _a === void 0 ? void 0 : _a.isOpen())) {
68
- (_b = popoverData.current) === null || _b === void 0 ? void 0 : _b.open();
69
- }
70
- }, [query]);
71
- (0, react_1.useEffect)(function () {
72
- if (enterKeySelects) {
73
- document.addEventListener('keydown', handleKeyDown);
74
- }
75
- return function () {
76
- document.removeEventListener('keydown', handleKeyDown);
77
- };
78
- });
79
- var addRemoveItem = (0, react_1.useCallback)(function (item) {
80
- if (value.includes(item.value)) {
81
- onValueChange(value.filter(function (v) { return v !== item.value; }));
82
- onItemRemoved === null || onItemRemoved === void 0 ? void 0 : onItemRemoved(item.value);
83
- }
84
- else {
85
- onValueChange(__spreadArray(__spreadArray([], value, true), [item.value], false));
86
- onItemAdded === null || onItemAdded === void 0 ? void 0 : onItemAdded(item.value);
87
- }
88
- }, [value, onValueChange, onItemAdded, onItemRemoved]);
89
- var handleItemSelect = (0, react_1.useCallback)(function (item) {
90
- addRemoveItem(item);
91
- if (item.isNew) {
92
- setCreatedItems(__spreadArray(__spreadArray([], createdItems, true), [
93
- {
94
- value: item.value,
95
- },
96
- ], false));
97
- }
98
- setQuery('');
99
- }, [createdItems, value, items, addRemoveItem]);
100
- /*
101
- This code creates a list of all items that are available
102
- for selection in the dropdown. It will include the items
103
- that are passed in as props, as well as any items that the
104
- user has created.
105
- */
106
- var allItems = (0, react_1.useMemo)(function () {
107
- var customItems = (0, lodash_1.size)(createdItems)
108
- ? __spreadArray([{ divider: true, label: customItemsDividerLabel }], createdItems, true) : [];
109
- var filteredItems = __spreadArray(__spreadArray([], items, true), customItems, true).filter(function (item) {
110
- var _a;
111
- return query
112
- ? item.divider
113
- ? false
114
- : ((_a = (item.label || item.value)) === null || _a === void 0 ? void 0 : _a.toString().toLowerCase().indexOf(query.toLowerCase())) !== -1
115
- : true;
116
- });
117
- // Mark selected items as selected
118
- filteredItems = filteredItems.map(function (item) { return (__assign(__assign({}, (0, lodash_1.omit)(item, ['actions', 'asBadge', 'rightIcon'])), { selected: value.includes(item.value) })); });
119
- if (query && !(0, lodash_1.size)(filteredItems)) {
120
- filteredItems = [
121
- { label: noMatchingItemsLabel, readOnly: true, minimal: true, icon: 'ForbidLine' },
122
- ];
123
- }
124
- // If there is a query and there are filtered items
125
- // and there is no item that exactly matches the query, add it to the list
126
- if (query &&
127
- !filteredItems.some(function (item) { return item.value === query; }) &&
128
- canCreateItems) {
129
- filteredItems = __spreadArray([
130
- {
131
- label: "".concat(createItemLabelPrefix, " \"").concat(query, "\""),
132
- value: query,
133
- isNew: true,
134
- icon: 'AddCircleLine',
135
- minimal: true,
136
- flat: false,
137
- effect: {
138
- gradient: {
139
- colors: {
140
- 0: 'success',
141
- 100: 'success:darken:1',
142
- },
143
- },
144
- },
145
- },
146
- { divider: true, label: matchingItemsDividerLabel }
147
- ], filteredItems, true);
148
- }
149
- return filteredItems;
150
- }, [
151
- items,
152
- createdItems,
153
- query,
154
- value,
155
- customItemsDividerLabel,
156
- noMatchingItemsLabel,
157
- matchingItemsDividerLabel,
158
- createItemLabelPrefix,
159
- ]);
160
- var handleKeyDown = (0, react_1.useCallback)(function (e) {
161
- if (e.key === 'Enter' && focused) {
162
- var item = __spreadArray(__spreadArray([], items, true), createdItems, true).find(function (item) { return item.value === query; });
163
- if (item) {
164
- handleItemSelect(item);
165
- }
166
- else if (canCreateItems && query) {
167
- handleItemSelect({
168
- value: query,
169
- isNew: true,
170
- });
171
- }
172
- }
173
- }, [items, createdItems, query, canCreateItems, focused]);
174
- var getItemByValue = (0, react_1.useCallback)(function (value) {
175
- return __spreadArray(__spreadArray([], items, true), createdItems, true).find(function (item) { return item.value === value; });
176
- }, [items, createdItems, value]);
177
- return ((0, jsx_runtime_1.jsxs)(ControlGroup_1.default, __assign({ vertical: true, fluid: true }, rest, { children: [(0, lodash_1.size)(value) ? ((0, jsx_runtime_1.jsx)(group_1.default, { minimal: rest.minimal, size: rest.size, children: value.map(function (v) { return ((0, jsx_runtime_1.jsx)(exports.ReqoreMultiSelectItem, { item: getItemByValue(v), onItemClickIcon: onItemClickIcon, onRemoveClick: canRemoveItems ? function () { return addRemoveItem(getItemByValue(v)); } : undefined, onClick: onItemClick
178
- ? function () {
179
- onItemClick(getItemByValue(v));
180
- }
181
- : undefined, selectedItemEffect: selectedItemEffect, selectedItemSize: selectedItemSize, disabled: disabled }, v)); }) })) : showNoItemsMessage ? ((0, jsx_runtime_1.jsx)(group_1.default, { minimal: rest.minimal, size: rest.size, children: (0, jsx_runtime_1.jsx)(Tag_1.default, __assign({ color: 'transparent', icon: 'ForbidLine', label: noItemsSelectedLabel }, noItemsMessageProps)) })) : null, (0, jsx_runtime_1.jsx)(ControlGroup_1.default, { minimal: rest.minimal, flat: rest.flat, size: rest.size, children: (0, jsx_runtime_1.jsx)(__1.ReqoreDropdown, __assign({ useTargetWidth: true, handler: 'click', placement: 'auto-start', placeholder: canCreateItems ? createItemPlaceholder : searchPlaceholder }, selectorProps, { disabled: isSelectorDisabled, multiSelect: true, onFocus: function () {
182
- var _a;
183
- setFocused(true);
184
- if (!isSelectorDisabled) {
185
- (_a = popoverData.current) === null || _a === void 0 ? void 0 : _a.open();
186
- }
187
- }, onBlur: function () { return setFocused(false); }, passPopoverData: function (data) { return (popoverData.current = data); }, component: __1.ReqoreInput, onClearClick: function () { return setQuery(''); }, value: query, isDefaultOpen: openOnMount, onItemSelect: handleItemSelect, onChange: function (e) { return setQuery(e.target.value); }, items: (0, lodash_1.size)(allItems)
188
- ? allItems
189
- : canCreateItems
190
- ? [{ label: noItemsAvailableLabel, readOnly: true, minimal: true, icon: 'ForbidLine' }]
191
- : [] })) })] })));
192
- };
16
+ /**
17
+ * Backwards compatibility for `ReqoreMultiSelect`.
18
+ *
19
+ * The component itself is now `ReqoreSelect`, which holds one value by default
20
+ * and many with `multi` — there is no second implementation, because the two
21
+ * never differed in anything but the shape of the value.
22
+ *
23
+ * This module stays so that nothing consuming the old name breaks: both
24
+ * `import { ReqoreMultiSelect } from '@qoretechnologies/reqore'` and the deep
25
+ * `'@qoretechnologies/reqore/dist/components/MultiSelect'` import that reqraft
26
+ * and qorus-ide use for `TReqoreMultiSelectItem` keep resolving, with the same
27
+ * types they always had.
28
+ */
29
+ var Select_1 = require("../Select");
30
+ var Select_2 = require("../Select");
31
+ Object.defineProperty(exports, "ReqoreMultiSelectBase", { enumerable: true, get: function () { return Select_2.ReqoreSelectBase; } });
32
+ Object.defineProperty(exports, "ReqoreMultiSelectItem", { enumerable: true, get: function () { return Select_2.ReqoreSelectItem; } });
33
+ /** `ReqoreSelect` with `multi` pre-set: same name, same props, same value shape. */
34
+ var ReqoreMultiSelect = function (props) { return ((0, jsx_runtime_1.jsx)(Select_1.ReqoreSelect, __assign({}, props, { multi: true }))); };
193
35
  exports.ReqoreMultiSelect = ReqoreMultiSelect;
194
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MultiSelect/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MultiSelect/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;GAYG;AACH,oCAAkE;AAQlE,oCAAiH;AAAxG,+GAAA,gBAAgB,OAAyB;AAAE,+GAAA,gBAAgB,OAAyB;AAM7F,oFAAoF;AAC7E,IAAM,iBAAiB,GAAG,UAAC,KAA8B,IAAK,OAAA,CACnE,uBAAC,qBAAY,eAAK,KAAK,IAAE,KAAK,UAAG,CAClC,EAFoE,CAEpE,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"}
@@ -0,0 +1,95 @@
1
+ import { TSizes } from '../../constants/sizes';
2
+ import { IReqoreControlGroupProps } from '../ControlGroup';
3
+ import { IReqoreDropdownProps } from '../Dropdown';
4
+ import { IReqoreDropdownItem } from '../Dropdown/list';
5
+ import { IReqoreEffect } from '../Effect';
6
+ import { IReqoreInputProps } from '../Input';
7
+ import { IReqoreTagProps } from '../Tag';
8
+ export type TReqoreSelectItem = Omit<IReqoreDropdownItem, 'color'> & Pick<IReqoreTagProps, 'asBadge' | 'rightIcon' | 'actions'> & {
9
+ isNew?: boolean;
10
+ };
11
+ /**
12
+ * Everything a multi- and a single-select share. The two differ only in the
13
+ * shape of the value they carry, so `value` / `onValueChange` are declared by
14
+ * each of them and everything else lives here.
15
+ */
16
+ export interface IReqoreSelectCommonProps extends Omit<IReqoreControlGroupProps, 'children' | 'vertical' | 'stack'> {
17
+ items?: TReqoreSelectItem[];
18
+ onItemClick?: (item: IReqoreDropdownItem) => void;
19
+ onItemClickIcon?: IReqoreTagProps['rightIcon'];
20
+ onItemAdded?: (item: TReqoreSelectItem) => void;
21
+ onItemRemoved?: (item: TReqoreSelectItem) => void;
22
+ canRemoveItems?: boolean;
23
+ canCreateItems?: boolean;
24
+ selectedItemEffect?: IReqoreEffect;
25
+ selectedItemSize?: TSizes;
26
+ selectorProps?: Omit<IReqoreInputProps, 'value' | 'onValueChange'> & IReqoreDropdownProps;
27
+ openOnMount?: IReqoreDropdownProps['isDefaultOpen'];
28
+ enterKeySelects?: boolean;
29
+ disabled?: boolean;
30
+ showNoItemsMessage?: boolean;
31
+ noItemsMessageProps?: IReqoreTagProps;
32
+ /** Label for the tag shown when no items are selected. Defaults to `'No items selected'`. */
33
+ noItemsSelectedLabel?: string;
34
+ /** Label shown in the dropdown when the query matches no existing items. Defaults to `'No existing items found'`. */
35
+ noMatchingItemsLabel?: string;
36
+ /** Label shown in the dropdown when there are no items at all (and `canCreateItems` is true). Defaults to `'No items exist'`. */
37
+ noItemsAvailableLabel?: string;
38
+ /** Divider label preceding the user-created items section. Defaults to `'Custom Items'`. */
39
+ customItemsDividerLabel?: string;
40
+ /** Divider label preceding items that match the current query (shown when `canCreateItems` is true). Defaults to `'Items matching your query'`. */
41
+ matchingItemsDividerLabel?: string;
42
+ /**
43
+ * Prefix used to build the "create new" option label. Rendered as `${createItemLabelPrefix} "${query}"`.
44
+ * Defaults to `'Create new'`.
45
+ */
46
+ createItemLabelPrefix?: string;
47
+ /** Placeholder for the search input when items cannot be created. Defaults to `'Type to search...'`. */
48
+ searchPlaceholder?: string;
49
+ /** Placeholder for the search input when `canCreateItems` is true. Defaults to `'Type to search or create an item...'`. */
50
+ createItemPlaceholder?: string;
51
+ }
52
+ /** Holding ONE value — the default. */
53
+ export interface IReqoreSelectSingleProps extends IReqoreSelectCommonProps {
54
+ multi?: false;
55
+ value?: string;
56
+ onValueChange: (value?: string) => void;
57
+ }
58
+ /** Holding MANY values — what `ReqoreMultiSelect` has always been. */
59
+ export interface IReqoreSelectMultiProps extends IReqoreSelectCommonProps {
60
+ multi: true;
61
+ value?: string[];
62
+ onValueChange: (value: string[]) => void;
63
+ }
64
+ /**
65
+ * `multi` decides the SHAPE of the value, so these are a discriminated union
66
+ * rather than one interface with a loose type: a single select hands its
67
+ * caller `string | undefined` and a multi hands back `string[]`, and neither
68
+ * has to narrow what it is given.
69
+ */
70
+ export type IReqoreSelectProps = IReqoreSelectSingleProps | IReqoreSelectMultiProps;
71
+ /**
72
+ * Internal-only shape. The base always speaks arrays; `single` is what the
73
+ * public component derives from `multi` so that one implementation serves both
74
+ * shapes.
75
+ */
76
+ export interface IReqoreSelectBaseProps extends IReqoreSelectCommonProps {
77
+ value?: string[];
78
+ onValueChange: (value: string[]) => void;
79
+ single?: boolean;
80
+ }
81
+ export interface IReqoreSelectItemProps extends Pick<IReqoreSelectCommonProps, 'selectedItemEffect' | 'selectedItemSize' | 'disabled'> {
82
+ item: TReqoreSelectItem;
83
+ onClick?: () => void;
84
+ onRemoveClick?: () => void;
85
+ onItemClickIcon?: IReqoreTagProps['rightIcon'];
86
+ }
87
+ export declare const ReqoreSelectItem: import("react").MemoExoticComponent<({ item, onRemoveClick, onClick, selectedItemEffect, selectedItemSize, onItemClickIcon, disabled, }: IReqoreSelectItemProps) => import("react/jsx-runtime").JSX.Element>;
88
+ export declare const ReqoreSelectBase: ({ value, onValueChange, onItemClick, single, canRemoveItems, canCreateItems, items, selectedItemEffect, selectedItemSize, selectorProps, openOnMount, enterKeySelects, onItemClickIcon, onItemAdded, onItemRemoved, disabled, showNoItemsMessage, noItemsMessageProps, noItemsSelectedLabel, noMatchingItemsLabel, noItemsAvailableLabel, customItemsDividerLabel, matchingItemsDividerLabel, createItemLabelPrefix, searchPlaceholder, createItemPlaceholder, ...rest }: IReqoreSelectBaseProps) => import("react/jsx-runtime").JSX.Element;
89
+ /**
90
+ * One select. `multi` decides whether it holds one value or many — there is a
91
+ * single implementation, because the two only ever differed in the shape of
92
+ * the value and in whether picking a second item replaces the first.
93
+ */
94
+ export declare const ReqoreSelect: ({ multi, value, onValueChange, canRemoveItems, noItemsSelectedLabel, noMatchingItemsLabel, noItemsAvailableLabel, customItemsDividerLabel, matchingItemsDividerLabel, createItemPlaceholder, ...rest }: IReqoreSelectProps) => import("react/jsx-runtime").JSX.Element;
95
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Select/index.tsx"],"names":[],"mappings":"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"}