UNPKG

3.51 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.DualListSelectorListItem = exports.DualListSelectorListItemBase = void 0;
4const tslib_1 = require("tslib");
5const React = tslib_1.__importStar(require("react"));
6const dual_list_selector_1 = tslib_1.__importDefault(require("@patternfly/react-styles/css/components/DualListSelector/dual-list-selector"));
7const react_styles_1 = require("@patternfly/react-styles");
8const helpers_1 = require("../../helpers");
9const grip_vertical_icon_1 = tslib_1.__importDefault(require('@patternfly/react-icons/dist/js/icons/grip-vertical-icon'));
10const Button_1 = require("../Button");
11const DualListSelectorContext_1 = require("./DualListSelectorContext");
12const DualListSelectorListItemBase = (_a) => {
13 var { onOptionSelect, orderIndex, children, className, id = helpers_1.getUniqueId('dual-list-selector-list-item'), isSelected, innerRef, isDraggable = false, isDisabled,
14 // eslint-disable-next-line @typescript-eslint/no-unused-vars
15 draggableButtonAriaLabel = 'Reorder option' } = _a, props = tslib_1.__rest(_a, ["onOptionSelect", "orderIndex", "children", "className", "id", "isSelected", "innerRef", "isDraggable", "isDisabled", "draggableButtonAriaLabel"]);
16 const ref = innerRef || React.useRef(null);
17 const { setFocusedOption } = React.useContext(DualListSelectorContext_1.DualListSelectorListContext);
18 return (React.createElement("li", Object.assign({ className: react_styles_1.css(dual_list_selector_1.default.dualListSelectorListItem, className, isDisabled && dual_list_selector_1.default.modifiers.disabled), key: orderIndex, onClick: isDisabled
19 ? undefined
20 : (e) => {
21 setFocusedOption(id);
22 onOptionSelect(e, id);
23 }, onKeyDown: (e) => {
24 if (e.key === ' ' || e.key === 'Enter') {
25 document.activeElement.click();
26 e.preventDefault();
27 }
28 }, "aria-selected": isSelected, id: id, ref: ref, role: "option", tabIndex: -1 }, props),
29 React.createElement("div", { className: react_styles_1.css(dual_list_selector_1.default.dualListSelectorListItemRow, isSelected && dual_list_selector_1.default.modifiers.selected) },
30 isDraggable && !isDisabled && (React.createElement("div", { className: react_styles_1.css(dual_list_selector_1.default.dualListSelectorDraggable) },
31 React.createElement(Button_1.Button, { variant: Button_1.ButtonVariant.plain, component: "span" },
32 React.createElement(grip_vertical_icon_1.default, { style: { verticalAlign: '-0.3em' } })))),
33 React.createElement("span", { className: react_styles_1.css(dual_list_selector_1.default.dualListSelectorItem) },
34 React.createElement("span", { className: react_styles_1.css(dual_list_selector_1.default.dualListSelectorItemMain) },
35 React.createElement("span", { className: react_styles_1.css(dual_list_selector_1.default.dualListSelectorItemText) }, children))))));
36};
37exports.DualListSelectorListItemBase = DualListSelectorListItemBase;
38exports.DualListSelectorListItemBase.displayName = 'DualListSelectorListItemBase';
39exports.DualListSelectorListItem = React.forwardRef((props, ref) => (React.createElement(exports.DualListSelectorListItemBase, Object.assign({ innerRef: ref }, props))));
40exports.DualListSelectorListItem.displayName = 'DualListSelectorListItem';
41//# sourceMappingURL=DualListSelectorListItem.js.map
\No newline at end of file