1 | import * as React from 'react';
|
2 | import styles from '@patternfly/react-styles/css/components/OptionsMenu/options-menu';
|
3 | import { css } from '@patternfly/react-styles';
|
4 | import { fillTemplate } from '../../helpers';
|
5 | import { DropdownToggle } from '../Dropdown';
|
6 | let toggleId = 0;
|
7 | export const OptionsToggle = ({ itemsTitle = 'items', optionsToggle,
|
8 |
|
9 | itemsPerPageTitle = 'Items per page', ofWord = 'of', firstIndex = 0, lastIndex = 0, itemCount, widgetId = '', showToggle = true,
|
10 |
|
11 | onToggle = (_isOpen) => undefined, isOpen = false, isDisabled = false, parentRef = null, toggleTemplate: ToggleTemplate, onEnter = null, perPageComponent = 'div' }) => {
|
12 | const isDiv = perPageComponent === 'div';
|
13 | const toggleClasses = css(styles.optionsMenuToggle, isDisabled && styles.modifiers.disabled, styles.modifiers.plain, styles.modifiers.text);
|
14 | const template = typeof ToggleTemplate === 'string' ? (fillTemplate(ToggleTemplate, { firstIndex, lastIndex, ofWord, itemCount, itemsTitle })) : (React.createElement(ToggleTemplate, { firstIndex: firstIndex, lastIndex: lastIndex, ofWord: ofWord, itemCount: itemCount, itemsTitle: itemsTitle }));
|
15 | const dropdown = showToggle && (React.createElement(React.Fragment, null,
|
16 | isDiv && React.createElement("span", { className: css(styles.optionsMenuToggleText) }, template),
|
17 | React.createElement(DropdownToggle, { onEnter: onEnter, "aria-label": isDiv ? optionsToggle || 'Items per page' : optionsToggle, onToggle: onToggle, isDisabled: isDisabled || (itemCount && itemCount <= 0), isOpen: isOpen, id: `${widgetId}-toggle-${toggleId++}`, className: isDiv ? styles.optionsMenuToggleButton : toggleClasses, parentRef: parentRef, "aria-haspopup": "listbox" }, !isDiv && template)));
|
18 | return isDiv ? React.createElement("div", { className: toggleClasses }, dropdown) : dropdown;
|
19 | };
|
20 | OptionsToggle.displayName = 'OptionsToggle';
|
21 |
|
\ | No newline at end of file |