@televet/kibble-ui 1.12.14 → 1.13.1
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/build/components/Forms/FormControl/formControl.argTypes.d.ts +13 -165
- package/build/components/Forms/Select/select.component.d.ts +5 -4
- package/build/components/Overlay/Menu/components/MenuButton/menuButton.argTypes.d.ts +9 -0
- package/build/components/Overlay/Menu/{Components → components}/MenuButton/menuButton.component.d.ts +2 -2
- package/build/components/Overlay/Menu/components/MenuContainer/menuContainer.argTypes.d.ts +14 -0
- package/build/components/Overlay/Menu/components/MenuContainer/menuContainer.component.d.ts +9 -0
- package/build/components/Overlay/Menu/components/MenuItem/menuItem.argTypes.d.ts +12 -0
- package/build/components/Overlay/Menu/{Components → components}/MenuItem/menuItem.component.d.ts +4 -2
- package/build/components/Overlay/Menu/components/MenuList/menuList.argTypes.d.ts +16 -0
- package/build/components/Overlay/Menu/components/MenuList/menuList.component.d.ts +21 -0
- package/build/components/Overlay/Menu/{Components → components}/MenuSearchBar/menuSearchBar.component.d.ts +1 -1
- package/build/components/Overlay/Menu/index.d.ts +5 -5
- package/build/components/Overlay/Menu/menu.argTypes.d.ts +78 -0
- package/build/components/Overlay/Menu/menu.component.d.ts +8 -9
- package/build/components/Overlay/Menu/menu.context.d.ts +7 -5
- package/build/components/Overlay/Menu/menu.storiesData.d.ts +4 -0
- package/build/index.js +111 -85
- package/build/index.js.map +1 -1
- package/build/utils/stories.d.ts +8 -2
- package/package.json +2 -2
- package/build/components/Overlay/Menu/Components/MenuContainer/menuContainer.component.d.ts +0 -8
- package/build/components/Overlay/Menu/Components/MenuList/menuList.component.d.ts +0 -19
- /package/build/components/Overlay/Menu/{Components → components}/MenuOptionGroup/menuOptionGroup.component.d.ts +0 -0
- /package/build/components/Overlay/Menu/{Components → components}/MenuSelectAllButtons/menuSelectAllButtons.component.d.ts +0 -0
package/build/index.js
CHANGED
|
@@ -4183,19 +4183,24 @@ var MenuContext = React.createContext({
|
|
|
4183
4183
|
});
|
|
4184
4184
|
var useMenuContext = function () { return React.useContext(MenuContext); };
|
|
4185
4185
|
var MenuProvider = function (_a) {
|
|
4186
|
-
var menuItems = _a.menuItems,
|
|
4186
|
+
var menuItems = _a.menuItems, onClose = _a.onClose, children = _a.children;
|
|
4187
4187
|
var _b = __read(React.useState(menuItems || []), 2), filteredMenuItems = _b[0], setFilteredMenuItems = _b[1];
|
|
4188
4188
|
var _c = __read(React.useState(null), 2), groups = _c[0], setGroups = _c[1];
|
|
4189
4189
|
var _d = __read(React.useState(-1), 2), focusedItemIndex = _d[0], setFocusedItemIndex = _d[1];
|
|
4190
4190
|
var searchInputRef = React.useRef(null);
|
|
4191
4191
|
var menuItemRefs = React.useRef([]);
|
|
4192
4192
|
var handleOnClose = React.useCallback(function () {
|
|
4193
|
-
var selectedItems = filteredMenuItems === null || filteredMenuItems === void 0 ? void 0 : filteredMenuItems.filter(function (item) { return item.isSelected === true; })
|
|
4193
|
+
var selectedItems = filteredMenuItems === null || filteredMenuItems === void 0 ? void 0 : filteredMenuItems.filter(function (item) { return item.isSelected === true; });
|
|
4194
4194
|
setFocusedItemIndex(-1);
|
|
4195
|
-
if (
|
|
4196
|
-
|
|
4195
|
+
if (onClose) {
|
|
4196
|
+
onClose(selectedItems);
|
|
4197
4197
|
}
|
|
4198
|
-
}, [filteredMenuItems,
|
|
4198
|
+
}, [filteredMenuItems, onClose]);
|
|
4199
|
+
React.useEffect(function () {
|
|
4200
|
+
if (menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) {
|
|
4201
|
+
setFilteredMenuItems(menuItems);
|
|
4202
|
+
}
|
|
4203
|
+
}, [menuItems]);
|
|
4199
4204
|
return (React__default["default"].createElement(MenuContext.Provider, { value: {
|
|
4200
4205
|
allMenuItems: menuItems,
|
|
4201
4206
|
filteredMenuItems: filteredMenuItems,
|
|
@@ -4211,7 +4216,7 @@ var MenuProvider = function (_a) {
|
|
|
4211
4216
|
};
|
|
4212
4217
|
|
|
4213
4218
|
var MenuContainer = function (_a) {
|
|
4214
|
-
var children = _a.children; _a.
|
|
4219
|
+
var children = _a.children; _a.onClose; var rest = __rest(_a, ["children", "onClose"]);
|
|
4215
4220
|
var handleOnClose = useMenuContext().handleOnClose;
|
|
4216
4221
|
return (React__default["default"].createElement(react.Menu, __assign({ onClose: handleOnClose }, rest), children));
|
|
4217
4222
|
};
|
|
@@ -4257,31 +4262,33 @@ var MenuConfig = {
|
|
|
4257
4262
|
};
|
|
4258
4263
|
|
|
4259
4264
|
var MenuItem = function (_a) {
|
|
4260
|
-
var isMultiSelect = _a.isMultiSelect, canSelectAll = _a.canSelectAll, children = _a.children, _b = _a.closeOnSelect, closeOnSelect = _b === void 0 ? !isMultiSelect : _b; _a.groupLabel; var _c = _a.handleKeyboardNavigation, handleKeyboardNavigation = _c === void 0 ? function () { } : _c, isDisabled = _a.isDisabled, isSelected = _a.isSelected, _d = _a.itemIndex, itemIndex = _d === void 0 ? '0' : _d, label = _a.label, leftElement = _a.leftElement, menuItemRefs = _a.menuItemRefs,
|
|
4261
|
-
// TODO: Add truncated text functionality with tooltip on hover
|
|
4265
|
+
var isMultiSelect = _a.isMultiSelect, canSelectAll = _a.canSelectAll, children = _a.children, _b = _a.closeOnSelect, closeOnSelect = _b === void 0 ? !isMultiSelect : _b; _a.groupLabel; var _c = _a.handleKeyboardNavigation, handleKeyboardNavigation = _c === void 0 ? function () { } : _c, isDisabled = _a.isDisabled, isSelected = _a.isSelected, _d = _a.itemIndex, itemIndex = _d === void 0 ? '0' : _d, label = _a.label, leftElement = _a.leftElement, menuItemRefs = _a.menuItemRefs, onSelect = _a.onSelect, shouldRetainSelection = _a.shouldRetainSelection, shouldTruncateText = _a.shouldTruncateText, value = _a.value, rest = __rest(_a, ["isMultiSelect", "canSelectAll", "children", "closeOnSelect", "groupLabel", "handleKeyboardNavigation", "isDisabled", "isSelected", "itemIndex", "label", "leftElement", "menuItemRefs", "onSelect", "shouldRetainSelection", "shouldTruncateText", "value"]);
|
|
4262
4266
|
var colors = useTheme().colors;
|
|
4263
4267
|
var onClose = react.useMenuState().onClose;
|
|
4264
4268
|
var handleSelect = React.useCallback(function () {
|
|
4265
4269
|
if (isDisabled)
|
|
4266
4270
|
return;
|
|
4267
|
-
if (value &&
|
|
4268
|
-
|
|
4271
|
+
if (value && onSelect) {
|
|
4272
|
+
onSelect({
|
|
4273
|
+
label: label,
|
|
4274
|
+
leftElement: leftElement,
|
|
4275
|
+
value: value,
|
|
4276
|
+
});
|
|
4269
4277
|
}
|
|
4270
4278
|
if (closeOnSelect) {
|
|
4271
4279
|
onClose();
|
|
4272
4280
|
}
|
|
4273
|
-
}, [value,
|
|
4274
|
-
return (React__default["default"].createElement(react.Box, __assign({}, MenuItemConfig, { className: "
|
|
4281
|
+
}, [value, onSelect, onClose, closeOnSelect, isDisabled, label, leftElement]);
|
|
4282
|
+
return (React__default["default"].createElement(react.Box, __assign({}, MenuItemConfig, { className: "MenuList__Item", onClick: handleSelect, onKeyDown: function (e) { return handleKeyboardNavigation(e, false); }, tabIndex: parseInt(canSelectAll ? (itemIndex += 2) : itemIndex), ref: function (el) {
|
|
4275
4283
|
return menuItemRefs && itemIndex ? (menuItemRefs.current[parseInt(itemIndex)] = el) : null;
|
|
4276
4284
|
},
|
|
4277
4285
|
// @ts-ignore
|
|
4278
|
-
disabled: isDisabled }, rest), children ? (children) : (React__default["default"].createElement(react.HStack, { spacing: "12px", minH: "21px" },
|
|
4279
|
-
isMultiSelect && (React__default["default"].createElement(react.Box, {
|
|
4280
|
-
React__default["default"].createElement(
|
|
4281
|
-
React__default["default"].createElement(react.HStack, { color: isSelected && !isMultiSelect ? colors.text.light.link : colors.text.light.default },
|
|
4282
|
-
leftElement && React__default["default"].createElement(react.Box, { className: "
|
|
4283
|
-
React__default["default"].createElement(react.Box, { className: "
|
|
4284
|
-
React__default["default"].createElement(TruncatedText, { textContent: label || '', noOfLines: 1 })))))));
|
|
4286
|
+
disabled: isDisabled }, rest), children ? (children) : (React__default["default"].createElement(react.HStack, { alignItems: "center", spacing: "12px", minH: "21px" },
|
|
4287
|
+
isMultiSelect && (React__default["default"].createElement(react.Box, { className: "MenuList__ItemCheckbox" },
|
|
4288
|
+
React__default["default"].createElement(Checkbox, { variant: "round", isChecked: isSelected, size: "sm" }))),
|
|
4289
|
+
React__default["default"].createElement(react.HStack, { color: isSelected && shouldRetainSelection && !isMultiSelect ? colors.text.light.link : colors.text.light.default },
|
|
4290
|
+
leftElement && React__default["default"].createElement(react.Box, { className: "MenuList__ItemLeftElement" }, leftElement),
|
|
4291
|
+
React__default["default"].createElement(react.Box, { className: "MenuList__ItemLabel" }, shouldTruncateText ? React__default["default"].createElement(TruncatedText, { textContent: label || '', noOfLines: 1 }) : React__default["default"].createElement(Text, null, label)))))));
|
|
4285
4292
|
};
|
|
4286
4293
|
|
|
4287
4294
|
var MenuSearchBar = function (_a) {
|
|
@@ -4299,23 +4306,23 @@ var MenuSearchBar = function (_a) {
|
|
|
4299
4306
|
onSearchCallback(e);
|
|
4300
4307
|
}
|
|
4301
4308
|
}, [menuItems, onSearchCallback, setFilteredMenuItems]);
|
|
4302
|
-
return (React__default["default"].createElement(WrappedTextInput, { className: "
|
|
4309
|
+
return (React__default["default"].createElement(WrappedTextInput, { className: "MenuList__SearchBar", placeholder: placeholder, onChange: handleSearch, mt: 1, onKeyDown: function (e) { return handleKeyboardNavigation(e, true); }, size: "sm", ref: searchInputRef }));
|
|
4303
4310
|
};
|
|
4304
4311
|
|
|
4305
4312
|
var MenuSelectAllButtons = function (_a) {
|
|
4306
4313
|
var groupName = _a.groupName, handleToggleAllItems = _a.handleToggleAllItems, hasSelectedItems = _a.hasSelectedItems, isGrouped = _a.isGrouped;
|
|
4307
4314
|
if (isGrouped) {
|
|
4308
|
-
return (React__default["default"].createElement(react.Box, { textAlign: "right", w: "50%", className: "
|
|
4315
|
+
return (React__default["default"].createElement(react.Box, { textAlign: "right", w: "50%", className: "MenuListItem__SelectAllButton" }, hasSelectedItems ? (React__default["default"].createElement(Button, { variant: "ghostNeutral", iconName: "arrowCircle", size: "xs", onClick: function () { return handleToggleAllItems({ groupName: groupName, clear: true }); }, isDisabled: !hasSelectedItems }, "Clear all")) : (React__default["default"].createElement(Button, { variant: "ghost", size: "xs", onClick: function () { return handleToggleAllItems({ groupName: groupName, clear: false }); } }, "Select all"))));
|
|
4309
4316
|
}
|
|
4310
|
-
return (React__default["default"].createElement(react.Box, { mt: "8px", className: "
|
|
4317
|
+
return (React__default["default"].createElement(react.Box, { mt: "8px", className: "MenuList__SelectAllButtons" },
|
|
4311
4318
|
React__default["default"].createElement(react.Flex, { justifyContent: "space-between" },
|
|
4312
4319
|
React__default["default"].createElement(Button, { variant: "ghost", size: "xs", onClick: function () { return handleToggleAllItems({ clear: false }); } }, "Select all"),
|
|
4313
4320
|
React__default["default"].createElement(Button, { variant: "ghostNeutral", iconName: "arrowCircle", size: "xs", onClick: function () { return handleToggleAllItems({ clear: true }); }, isDisabled: !hasSelectedItems }, "Clear all"))));
|
|
4314
4321
|
};
|
|
4315
4322
|
|
|
4316
4323
|
var MenuList = function (_a) {
|
|
4317
|
-
var _b = _a.canSelectAll, canSelectAll = _b === void 0 ? false : _b, _c = _a.canSelectGroups, canSelectGroups = _c === void 0 ? false : _c, children = _a.children, _d = _a.isGrouped, isGrouped = _d === void 0 ? false : _d, isMatchWidthSet = _a.isMatchWidthSet, _e = _a.isMultiSelect, isMultiSelect = _e === void 0 ? false : _e, _f = _a.isSearchable, isSearchable = _f === void 0 ? false : _f, menuItems = _a.menuItems,
|
|
4318
|
-
var
|
|
4324
|
+
var _b = _a.canSelectAll, canSelectAll = _b === void 0 ? false : _b, _c = _a.canSelectGroups, canSelectGroups = _c === void 0 ? false : _c, children = _a.children, _d = _a.isGrouped, isGrouped = _d === void 0 ? false : _d, isMatchWidthSet = _a.isMatchWidthSet, _e = _a.isMultiSelect, isMultiSelect = _e === void 0 ? false : _e, _f = _a.isSearchable, isSearchable = _f === void 0 ? false : _f, menuItems = _a.menuItems, onSelect = _a.onSelect, onSelectAll = _a.onSelectAll, searchPlaceholder = _a.searchPlaceholder, shouldRetainSelection = _a.shouldRetainSelection, _g = _a.shouldTruncateText, shouldTruncateText = _g === void 0 ? true : _g, _h = _a.minW, minW = _h === void 0 ? '240px' : _h, maxW = _a.maxW, _j = _a.maxH, maxH = _j === void 0 ? '480px' : _j, rest = __rest(_a, ["canSelectAll", "canSelectGroups", "children", "isGrouped", "isMatchWidthSet", "isMultiSelect", "isSearchable", "menuItems", "onSelect", "onSelectAll", "searchPlaceholder", "shouldRetainSelection", "shouldTruncateText", "minW", "maxW", "maxH"]);
|
|
4325
|
+
var _k = useMenuContext(), filteredMenuItems = _k.filteredMenuItems, setFilteredMenuItems = _k.setFilteredMenuItems, groups = _k.groups, setGroups = _k.setGroups, focusedItemIndex = _k.focusedItemIndex, setFocusedItemIndex = _k.setFocusedItemIndex, searchInputRef = _k.searchInputRef, menuItemRefs = _k.menuItemRefs;
|
|
4319
4326
|
var focusNextListItem = React.useCallback(function (direction) {
|
|
4320
4327
|
var _a, _b;
|
|
4321
4328
|
if (!(menuItemRefs === null || menuItemRefs === void 0 ? void 0 : menuItemRefs.current))
|
|
@@ -4373,10 +4380,10 @@ var MenuList = function (_a) {
|
|
|
4373
4380
|
e.target.click();
|
|
4374
4381
|
}
|
|
4375
4382
|
}, [focusNextListItem, menuItemRefs]);
|
|
4376
|
-
var handleToggleSingleItem = React.useCallback(function (selectedValue) {
|
|
4383
|
+
var handleToggleSingleItem = React.useCallback(function (selectedValue, itemOnSelect) {
|
|
4377
4384
|
if (filteredMenuItems) {
|
|
4378
4385
|
var _filteredMenuItemsCopy = __spreadArray([], __read(filteredMenuItems), false);
|
|
4379
|
-
var selectedItem = _filteredMenuItemsCopy.find(function (item) { return item.value === selectedValue; });
|
|
4386
|
+
var selectedItem = _filteredMenuItemsCopy.find(function (item) { return item.value === selectedValue.value; });
|
|
4380
4387
|
if (!isMultiSelect) {
|
|
4381
4388
|
_filteredMenuItemsCopy.filter(function (item) { return item.isSelected === true; }).map(function (item) { return (item.isSelected = false); });
|
|
4382
4389
|
}
|
|
@@ -4384,11 +4391,15 @@ var MenuList = function (_a) {
|
|
|
4384
4391
|
selectedItem.isSelected = !selectedItem.isSelected;
|
|
4385
4392
|
}
|
|
4386
4393
|
setFilteredMenuItems(_filteredMenuItemsCopy);
|
|
4387
|
-
|
|
4388
|
-
|
|
4394
|
+
var allSelectedItems = _filteredMenuItemsCopy.filter(function (item) { return item.isSelected; });
|
|
4395
|
+
if (onSelect && selectedItem) {
|
|
4396
|
+
onSelect(selectedItem, allSelectedItems);
|
|
4397
|
+
}
|
|
4398
|
+
if (itemOnSelect && selectedItem) {
|
|
4399
|
+
itemOnSelect(selectedItem, allSelectedItems);
|
|
4389
4400
|
}
|
|
4390
4401
|
}
|
|
4391
|
-
}, [filteredMenuItems, isMultiSelect,
|
|
4402
|
+
}, [filteredMenuItems, isMultiSelect, onSelect, setFilteredMenuItems]);
|
|
4392
4403
|
var handleToggleAllItems = React.useCallback(function (_a) {
|
|
4393
4404
|
var groupName = _a.groupName, _b = _a.clear, clear = _b === void 0 ? false : _b;
|
|
4394
4405
|
if (filteredMenuItems) {
|
|
@@ -4411,11 +4422,11 @@ var MenuList = function (_a) {
|
|
|
4411
4422
|
}
|
|
4412
4423
|
});
|
|
4413
4424
|
setFilteredMenuItems(_filteredMenuItemsCopy);
|
|
4414
|
-
if (
|
|
4415
|
-
|
|
4425
|
+
if (onSelectAll) {
|
|
4426
|
+
onSelectAll(_filteredMenuItemsCopy.filter(function (item) { return item.isSelected; }));
|
|
4416
4427
|
}
|
|
4417
4428
|
}
|
|
4418
|
-
}, [filteredMenuItems,
|
|
4429
|
+
}, [filteredMenuItems, onSelectAll, setFilteredMenuItems]);
|
|
4419
4430
|
React.useEffect(function () {
|
|
4420
4431
|
if (isGrouped) {
|
|
4421
4432
|
var groupNames = __spreadArray([], __read(new Set(filteredMenuItems === null || filteredMenuItems === void 0 ? void 0 : filteredMenuItems.map(function (item) { return item.groupLabel; }))), false);
|
|
@@ -4424,44 +4435,50 @@ var MenuList = function (_a) {
|
|
|
4424
4435
|
}
|
|
4425
4436
|
}
|
|
4426
4437
|
}, [filteredMenuItems, isGrouped, setGroups]);
|
|
4438
|
+
var getMenuItem = React.useCallback(function (item, index) { return (React__default["default"].createElement(MenuItem, { handleKeyboardNavigation: handleKeyboardNavigation, isMultiSelect: isMultiSelect, isSelected: item.isSelected, itemIndex: index.toString(), key: item.value, label: item.label, leftElement: item.leftElement, menuItemRefs: menuItemRefs, onSelect: function (selectedItem) { return handleToggleSingleItem(selectedItem, item.onSelect); }, value: item.value, children: item.children, closeOnSelect: item.closeOnSelect, shouldRetainSelection: shouldRetainSelection, shouldTruncateText: shouldTruncateText })); }, [
|
|
4439
|
+
handleKeyboardNavigation,
|
|
4440
|
+
handleToggleSingleItem,
|
|
4441
|
+
isMultiSelect,
|
|
4442
|
+
menuItemRefs,
|
|
4443
|
+
shouldRetainSelection,
|
|
4444
|
+
shouldTruncateText,
|
|
4445
|
+
]);
|
|
4446
|
+
if (!isMatchWidthSet) {
|
|
4447
|
+
maxW = '320px';
|
|
4448
|
+
}
|
|
4427
4449
|
// Return default Chakra menu if user passes in custom child elements
|
|
4428
4450
|
if (children) {
|
|
4429
4451
|
return React__default["default"].createElement(react.MenuList, __assign({}, rest), children);
|
|
4430
4452
|
}
|
|
4431
|
-
|
|
4432
|
-
|
|
4433
|
-
}
|
|
4434
|
-
return (React__default["default"].createElement(react.MenuList, __assign({}, rest, { maxW: maxW, maxH: maxH, minW: minW, overflow: "hidden auto" }),
|
|
4435
|
-
(isSearchable || (canSelectAll && isMultiSelect)) && (React__default["default"].createElement(react.Box, { className: "menu-list__header", m: "0 12px 8px" },
|
|
4453
|
+
return (React__default["default"].createElement(react.MenuList, __assign({ className: "MeuList" }, rest, { maxW: maxW, maxH: maxH, minW: minW, overflow: "hidden auto" }),
|
|
4454
|
+
(isSearchable || (canSelectAll && isMultiSelect)) && (React__default["default"].createElement(react.Box, { className: "MenuList__Header", m: "0 12px 8px" },
|
|
4436
4455
|
isSearchable && (React__default["default"].createElement(MenuSearchBar, { handleKeyboardNavigation: handleKeyboardNavigation, menuItems: menuItems || [], searchInputRef: searchInputRef, setFilteredMenuItems: setFilteredMenuItems, placeholder: searchPlaceholder })),
|
|
4437
4456
|
canSelectAll && isMultiSelect && (React__default["default"].createElement(MenuSelectAllButtons, { handleToggleAllItems: handleToggleAllItems, hasSelectedItems: Boolean(filteredMenuItems === null || filteredMenuItems === void 0 ? void 0 : filteredMenuItems.find(function (item) { return item.isSelected; })), isGrouped: false })))),
|
|
4438
|
-
React__default["default"].createElement(react.Box, { className: "
|
|
4439
|
-
? groups === null || groups === void 0 ? void 0 : groups.map(function (groupName) {
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
}))));
|
|
4457
|
+
React__default["default"].createElement(react.Box, { className: "MenuList__Body" }, !(filteredMenuItems === null || filteredMenuItems === void 0 ? void 0 : filteredMenuItems.length) ? (React__default["default"].createElement(react.Box, { textAlign: "center", display: "block", p: "12px" },
|
|
4458
|
+
React__default["default"].createElement(Text, { size: "sm", colorToken: "subtle" }, "No results found"))) : isGrouped ? (groups === null || groups === void 0 ? void 0 : groups.map(function (groupName) {
|
|
4459
|
+
var menuItems = filteredMenuItems === null || filteredMenuItems === void 0 ? void 0 : filteredMenuItems.filter(function (item) { return item.groupLabel === groupName; });
|
|
4460
|
+
return (React__default["default"].createElement(react.MenuOptionGroup, { key: groupName, className: "MenuList__Group" },
|
|
4461
|
+
React__default["default"].createElement(react.HStack, { minH: "32px", p: "4px 12px 4px 20px", justifyContent: "space-between" },
|
|
4462
|
+
React__default["default"].createElement(react.Box, { textAlign: "left", className: "MenuList__GroupTitle" },
|
|
4463
|
+
React__default["default"].createElement(Heading, { size: "xs" }, groupName)),
|
|
4464
|
+
isMultiSelect && canSelectGroups && (React__default["default"].createElement(MenuSelectAllButtons, { handleToggleAllItems: handleToggleAllItems, hasSelectedItems: Boolean(menuItems === null || menuItems === void 0 ? void 0 : menuItems.find(function (item) { return item.isSelected; })), isGrouped: true, groupName: groupName }))), menuItems === null || menuItems === void 0 ? void 0 :
|
|
4465
|
+
menuItems.map(function (item, index) {
|
|
4466
|
+
return getMenuItem(item, index);
|
|
4467
|
+
})));
|
|
4468
|
+
})) : (filteredMenuItems === null || filteredMenuItems === void 0 ? void 0 : filteredMenuItems.map(function (item, index) {
|
|
4469
|
+
return getMenuItem(item, index);
|
|
4470
|
+
})))));
|
|
4453
4471
|
};
|
|
4454
4472
|
|
|
4455
|
-
var Select = function (
|
|
4456
|
-
var _a;
|
|
4473
|
+
var Select = function (_a) {
|
|
4474
|
+
var options = _a.options; _a.isFieldInline; var useBrowserDefaultMenu = _a.useBrowserDefaultMenu, placeholder = _a.placeholder, listProps = _a.listProps, value = _a.value, _b = _a.shouldTruncateText, shouldTruncateText = _b === void 0 ? true : _b; _a.maxW; var size = _a.size, domProps = __rest(_a, ["options", "isFieldInline", "useBrowserDefaultMenu", "placeholder", "listProps", "value", "shouldTruncateText", "maxW", "size"]);
|
|
4457
4475
|
var colors = useTheme().colors;
|
|
4458
4476
|
var selectRef = React.useRef(null);
|
|
4459
|
-
var
|
|
4460
|
-
var _b = __read(React.useState({
|
|
4477
|
+
var _c = __read(React.useState({
|
|
4461
4478
|
label: placeholder,
|
|
4462
4479
|
value: '',
|
|
4463
4480
|
leftElement: null,
|
|
4464
|
-
}), 2), selectedOption =
|
|
4481
|
+
}), 2), selectedOption = _c[0], setSelectedOption = _c[1];
|
|
4465
4482
|
React.useEffect(function () {
|
|
4466
4483
|
if (value) {
|
|
4467
4484
|
var defaultValue = options.find(function (option) { return option.value === value; });
|
|
@@ -4470,39 +4487,48 @@ var Select = function (props) {
|
|
|
4470
4487
|
}
|
|
4471
4488
|
}
|
|
4472
4489
|
}, [value, options]);
|
|
4490
|
+
var selectWidth = React.useMemo(function () {
|
|
4491
|
+
var _a;
|
|
4492
|
+
if (!selectRef.current) {
|
|
4493
|
+
return '320px';
|
|
4494
|
+
}
|
|
4495
|
+
return "".concat((_a = selectRef === null || selectRef === void 0 ? void 0 : selectRef.current) === null || _a === void 0 ? void 0 : _a.clientWidth, "px");
|
|
4496
|
+
// Disables the warning for not including unused dependency in the hook array. This dependency is needed to rerender the menu list with the correct width
|
|
4497
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
4498
|
+
}, [selectRef === null || selectRef === void 0 ? void 0 : selectRef.current]);
|
|
4473
4499
|
var focusStyle = {
|
|
4474
4500
|
borderWidth: '2px',
|
|
4475
4501
|
borderColor: colors.border.light.focus,
|
|
4476
4502
|
};
|
|
4477
4503
|
if (useBrowserDefaultMenu) {
|
|
4478
|
-
return (React__default["default"].createElement(react.Select, __assign({ value: value, placeholder: placeholder }, domProps, { _focus: __assign({}, focusStyle) }), options.map(function (option, index) { return (React__default["default"].createElement("option", { key: "options-".concat(index), value: option.value }, option.label)); })));
|
|
4504
|
+
return (React__default["default"].createElement(react.Select, __assign({ value: value, placeholder: placeholder }, domProps, { _focus: __assign({}, focusStyle), className: "Select" }), options.map(function (option, index) { return (React__default["default"].createElement("option", { key: "options-".concat(index), value: option.value }, option.label)); })));
|
|
4479
4505
|
}
|
|
4480
4506
|
var handleSelectOption = function (selectedOption) {
|
|
4481
4507
|
setSelectedOption(selectedOption);
|
|
4482
|
-
if (
|
|
4483
|
-
|
|
4508
|
+
if (listProps === null || listProps === void 0 ? void 0 : listProps.onSelect) {
|
|
4509
|
+
listProps.onSelect(selectedOption);
|
|
4484
4510
|
}
|
|
4485
4511
|
};
|
|
4486
4512
|
var handleMenuClose = function (selectedOption) {
|
|
4487
|
-
if (
|
|
4488
|
-
|
|
4513
|
+
if (listProps === null || listProps === void 0 ? void 0 : listProps.onClose) {
|
|
4514
|
+
listProps.onClose(selectedOption);
|
|
4489
4515
|
}
|
|
4490
4516
|
};
|
|
4491
|
-
|
|
4517
|
+
var flexibleHeightProps = !shouldTruncateText ? { height: 'max-content', minH: '40px' } : {};
|
|
4518
|
+
return (React__default["default"].createElement(MenuProvider, { menuItems: options, onClose: handleMenuClose },
|
|
4492
4519
|
React__default["default"].createElement(MenuContainer, { matchWidth: true, isLazy: true },
|
|
4493
|
-
React__default["default"].createElement(react.Select, __assign({ as: react.MenuButton
|
|
4494
|
-
React__default["default"].createElement(react.HStack,
|
|
4495
|
-
(selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.leftElement)
|
|
4520
|
+
React__default["default"].createElement(react.Select, __assign({ as: react.MenuButton, _focus: __assign({}, focusStyle), onClick: function (event) { return event.stopPropagation(); }, type: "button", className: "Select__MenuButton", ref: selectRef, size: size }, flexibleHeightProps, domProps),
|
|
4521
|
+
React__default["default"].createElement(react.HStack, { className: "Select__Container", justifyContent: "flex-start", alignItems: "center", textAlign: "left" },
|
|
4522
|
+
React__default["default"].createElement(react.Box, { className: "Select__LeftElement" }, (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.leftElement)
|
|
4496
4523
|
? selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.leftElement
|
|
4497
|
-
: (
|
|
4498
|
-
?
|
|
4499
|
-
: null,
|
|
4500
|
-
React__default["default"].createElement(TruncatedText, { textContent: selectedOption.label || '', noOfLines: 1 }))),
|
|
4501
|
-
React__default["default"].createElement(
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
}), onMenuItemSelect: handleSelectOption, isMatchWidthSet: true })))));
|
|
4524
|
+
: (listProps === null || listProps === void 0 ? void 0 : listProps.defaultLeftElement)
|
|
4525
|
+
? listProps === null || listProps === void 0 ? void 0 : listProps.defaultLeftElement
|
|
4526
|
+
: null),
|
|
4527
|
+
shouldTruncateText ? (React__default["default"].createElement(TruncatedText, { className: "Select__Text", textContent: selectedOption.label || '', noOfLines: 1 })) : (React__default["default"].createElement(Text, { className: "Select__Text" }, selectedOption.label)))),
|
|
4528
|
+
React__default["default"].createElement(MenuList, { maxW: selectWidth, shouldTruncateText: shouldTruncateText, isGrouped: listProps === null || listProps === void 0 ? void 0 : listProps.isGrouped, isSearchable: listProps === null || listProps === void 0 ? void 0 : listProps.isSearchable, shouldRetainSelection: true, menuItems: options.map(function (option) {
|
|
4529
|
+
option.isSelected = option.value === selectedOption.value;
|
|
4530
|
+
return option;
|
|
4531
|
+
}), onSelect: handleSelectOption, isMatchWidthSet: true }))));
|
|
4506
4532
|
};
|
|
4507
4533
|
Select.displayName = 'Select';
|
|
4508
4534
|
var WrappedSelect = withFormControl(Select);
|
|
@@ -6794,24 +6820,24 @@ var MenuButton = function (_a) {
|
|
|
6794
6820
|
return '8px';
|
|
6795
6821
|
}
|
|
6796
6822
|
}, [isIconButton, size]);
|
|
6797
|
-
return (React__default["default"].createElement(react.MenuButton, __assign({ as: Button, variant: variant, size: size, position: "relative" }, rest, { p: buttonPadding, lineHeight: 0, _active: { transform: 'none' } }),
|
|
6798
|
-
React__default["default"].createElement(react.HStack, { spacing: textSpacing, className: "
|
|
6823
|
+
return (React__default["default"].createElement(react.MenuButton, __assign({ as: Button, variant: variant, size: size, position: "relative" }, rest, { className: "MenuButton", p: buttonPadding, lineHeight: 0, _active: { transform: 'none' } }),
|
|
6824
|
+
React__default["default"].createElement(react.HStack, { spacing: textSpacing, className: "MenuButton__ContentContainer" },
|
|
6799
6825
|
leftElement && leftElement,
|
|
6800
|
-
leftIconName && (React__default["default"].createElement(react.Box, {
|
|
6826
|
+
leftIconName && (React__default["default"].createElement(react.Box, { className: "MenuButton__LeftIcon" },
|
|
6801
6827
|
React__default["default"].createElement(Icon, { name: leftIconName, size: iconSize }))),
|
|
6802
|
-
text && React__default["default"].createElement(react.Box, { className: "
|
|
6803
|
-
showRightIcon && (React__default["default"].createElement(react.Box, { className: "
|
|
6828
|
+
text && React__default["default"].createElement(react.Box, { className: "MenuButton__Text" }, text),
|
|
6829
|
+
showRightIcon && (React__default["default"].createElement(react.Box, { className: "MenuButton__RightIcon" },
|
|
6804
6830
|
React__default["default"].createElement(Icon, { name: rightIconName, size: size === 'lg' ? 'sm' : 'xs' }))))));
|
|
6805
6831
|
};
|
|
6806
6832
|
|
|
6807
6833
|
var BetaMenu = function (_a) {
|
|
6808
|
-
var
|
|
6809
|
-
return (React__default["default"].createElement(MenuProvider, { menuItems: menuItems,
|
|
6810
|
-
React__default["default"].createElement(MenuContainer, __assign({ isLazy: isLazy }, props),
|
|
6834
|
+
var buttonProps = _a.buttonProps, CustomTriggerElement = _a.CustomTriggerElement, listProps = _a.listProps, containerProps = _a.containerProps, props = __rest(_a, ["buttonProps", "CustomTriggerElement", "listProps", "containerProps"]);
|
|
6835
|
+
return (React__default["default"].createElement(MenuProvider, { menuItems: listProps === null || listProps === void 0 ? void 0 : listProps.menuItems, isMultiSelect: listProps === null || listProps === void 0 ? void 0 : listProps.isMultiSelect, onClose: containerProps === null || containerProps === void 0 ? void 0 : containerProps.onClose },
|
|
6836
|
+
React__default["default"].createElement(MenuContainer, __assign({ isLazy: containerProps === null || containerProps === void 0 ? void 0 : containerProps.isLazy }, containerProps, props),
|
|
6811
6837
|
CustomTriggerElement ? (
|
|
6812
6838
|
// @ts-ignore
|
|
6813
|
-
React__default["default"].createElement(CustomTriggerElement, { as: react.MenuButton })) : (React__default["default"].createElement(MenuButton, __assign({},
|
|
6814
|
-
React__default["default"].createElement(MenuList, __assign({},
|
|
6839
|
+
React__default["default"].createElement(CustomTriggerElement, { as: react.MenuButton })) : (React__default["default"].createElement(MenuButton, __assign({}, buttonProps))),
|
|
6840
|
+
React__default["default"].createElement(MenuList, __assign({}, listProps, { isMatchWidthSet: props.matchWidth, menuItems: listProps === null || listProps === void 0 ? void 0 : listProps.menuItems })))));
|
|
6815
6841
|
};
|
|
6816
6842
|
|
|
6817
6843
|
var withDarkMode$1 = function (children, darkMode) {
|