@material/menu
- Version 14.0.0
- Published
- 807 kB
- 10 dependencies
- MIT license
Install
npm i @material/menu
yarn add @material/menu
pnpm add @material/menu
Overview
The Material Components for the web menu component
Index
Variables
Classes
MDCMenu
- attachTo()
- destroy()
- getDefaultFoundation()
- getOptionByIndex()
- getPrimaryTextAtIndex()
- initialize()
- initialSyncWithDOM()
- items
- layout()
- open
- selectedIndex
- setAbsolutePosition()
- setAnchorCorner()
- setAnchorElement()
- setAnchorMargin()
- setDefaultFocusState()
- setEnabled()
- setFixedPosition()
- setIsHoisted()
- setSelectedIndex()
- typeaheadInProgress
- typeaheadMatchItem()
- wrapFocus
Interfaces
MDCMenuAdapter
- addAttributeToElementAtIndex()
- addClassToElementAtIndex()
- closeSurface()
- elementContainsClass()
- focusItemAtIndex()
- focusListRoot()
- getAttributeFromElementAtIndex()
- getElementIndex()
- getMenuItemCount()
- getSelectedSiblingOfItemAtIndex()
- isSelectableItemAtIndex()
- notifySelected()
- removeAttributeFromElementAtIndex()
- removeClassFromElementAtIndex()
Enums
Type Aliases
Variables
variable cssClasses
const cssClasses: { MENU_SELECTED_LIST_ITEM: string; MENU_SELECTION_GROUP: string; ROOT: string;};
Copyright 2018 Google Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
variable numbers
const numbers: { FOCUS_ROOT_INDEX: number };
variable strings
const strings: { ARIA_CHECKED_ATTR: string; ARIA_DISABLED_ATTR: string; CHECKBOX_SELECTOR: string; LIST_SELECTOR: string; SELECTED_EVENT: string; SKIP_RESTORE_FOCUS: string;};
Classes
class MDCMenu
class MDCMenu extends MDCComponent<MDCMenuFoundation> {}
property items
readonly items: Element[];
Return the items within the menu. Note that this only contains the set of elements within the items container that are proper list items, and not supplemental / presentational DOM elements.
property open
open: boolean;
property selectedIndex
selectedIndex: MDCListIndex;
Retrieves the selected index. Only applicable to select menus. The selected index, which is a number for single selection and radio lists, and an array of numbers for checkbox lists.
property typeaheadInProgress
readonly typeaheadInProgress: boolean;
Whether typeahead logic is currently matching some user prefix.
property wrapFocus
wrapFocus: boolean;
method attachTo
static attachTo: (root: Element) => MDCMenu;
method destroy
destroy: () => void;
method getDefaultFoundation
getDefaultFoundation: () => MDCMenuFoundation;
method getOptionByIndex
getOptionByIndex: (index: number) => Element | null;
The item within the menu at the index specified.
method getPrimaryTextAtIndex
getPrimaryTextAtIndex: (index: number) => string;
Parameter index
A menu item's index. The primary text within the menu at the index specified.
method initialize
initialize: ( menuSurfaceFactory?: MDCMenuSurfaceFactory, listFactory?: MDCListFactory) => void;
method initialSyncWithDOM
initialSyncWithDOM: () => void;
method layout
layout: () => void;
Layout the underlying list element in the case of any dynamic updates to its structure.
method setAbsolutePosition
setAbsolutePosition: (x: number, y: number) => void;
method setAnchorCorner
setAnchorCorner: (corner: Corner) => void;
Parameter corner
Default anchor corner alignment of top-left menu corner.
method setAnchorElement
setAnchorElement: (element: Element) => void;
Sets the element that the menu-surface is anchored to.
method setAnchorMargin
setAnchorMargin: (margin: MDCMenuDistance) => void;
method setDefaultFocusState
setDefaultFocusState: (focusState: DefaultFocusState) => void;
Sets default focus state where the menu should focus every time when menu is opened. Focuses the list root (
DefaultFocusState.LIST_ROOT
) element by default.Parameter focusState
Default focus state.
method setEnabled
setEnabled: (index: number, isEnabled: boolean) => void;
Sets the enabled state to isEnabled for the menu item at the given index.
Parameter index
Index of the menu item
Parameter isEnabled
The desired enabled state of the menu item.
method setFixedPosition
setFixedPosition: (isFixed: boolean) => void;
method setIsHoisted
setIsHoisted: (isHoisted: boolean) => void;
method setSelectedIndex
setSelectedIndex: (index: number) => void;
Sets the list item as the selected row at the specified index.
Parameter index
Index of list item within menu.
method typeaheadMatchItem
typeaheadMatchItem: (nextChar: string, startingIndex?: number) => number;
Given the next desired character from the user, adds it to the typeahead buffer. Then, attempts to find the next option matching the buffer. Wraps around if at the end of options.
Parameter nextChar
The next character to add to the prefix buffer.
Parameter startingIndex
The index from which to start matching. Only relevant when starting a new match sequence. To start a new match sequence, clear the buffer using
clearTypeaheadBuffer
, or wait for the buffer to clear after a set interval defined in list foundation. Defaults to the currently focused index. The index of the matched item, or -1 if no match.
class MDCMenuFoundation
class MDCMenuFoundation extends MDCFoundation<MDCMenuAdapter> {}
constructor
constructor(adapter?: Partial<MDCMenuAdapter>);
property cssClasses
static readonly cssClasses: { MENU_SELECTED_LIST_ITEM: string; MENU_SELECTION_GROUP: string; ROOT: string;};
property defaultAdapter
static readonly defaultAdapter: MDCMenuAdapter;
See Also
MDCMenuAdapter for typing information on parameters and return types.
property numbers
static readonly numbers: { FOCUS_ROOT_INDEX: number };
property strings
static readonly strings: { ARIA_CHECKED_ATTR: string; ARIA_DISABLED_ATTR: string; CHECKBOX_SELECTOR: string; LIST_SELECTOR: string; SELECTED_EVENT: string; SKIP_RESTORE_FOCUS: string;};
method destroy
destroy: () => void;
method getSelectedIndex
getSelectedIndex: () => number;
Index of the currently selected list item within the menu.
method handleItemAction
handleItemAction: (listItem: Element) => void;
method handleKeydown
handleKeydown: (evt: KeyboardEvent) => void;
method handleMenuSurfaceOpened
handleMenuSurfaceOpened: () => void;
method setDefaultFocusState
setDefaultFocusState: (focusState: DefaultFocusState) => void;
Sets default focus state where the menu should focus every time when menu is opened. Focuses the list root (
DefaultFocusState.LIST_ROOT
) element by default.
method setEnabled
setEnabled: (index: number, isEnabled: boolean) => void;
Sets the enabled state to isEnabled for the menu item at the given index.
Parameter index
Index of the menu item
Parameter isEnabled
The desired enabled state of the menu item.
method setSelectedIndex
setSelectedIndex: (index: number) => void;
Selects the list item at
index
within the menu.Parameter index
Index of list item within the menu.
Interfaces
interface MDCMenuAdapter
interface MDCMenuAdapter {}
Implement this adapter for your framework of choice to delegate updates to the component in your framework of choice. See architecture documentation for more details. https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
method addAttributeToElementAtIndex
addAttributeToElementAtIndex: ( index: number, attr: string, value: string) => void;
Adds an attribute, with value, to the element at the index provided.
method addClassToElementAtIndex
addClassToElementAtIndex: (index: number, className: string) => void;
Adds a class to the element at the index provided.
method closeSurface
closeSurface: (skipRestoreFocus?: boolean) => void;
Closes the menu-surface.
Parameter skipRestoreFocus
Whether to skip restoring focus to the previously focused element after the surface has been closed.
method elementContainsClass
elementContainsClass: (element: Element, className: string) => boolean;
true if the element contains the className.
method focusItemAtIndex
focusItemAtIndex: (index: number) => void;
Focuses the menu item at given index.
Parameter index
Index of the menu item that will be focused every time the menu opens.
method focusListRoot
focusListRoot: () => void;
Focuses the list root element.
method getAttributeFromElementAtIndex
getAttributeFromElementAtIndex: (index: number, attr: string) => string | null;
the attribute string if present on an element at the index provided, null otherwise.
method getElementIndex
getElementIndex: (element: Element) => number;
Index of the element in the list or -1 if it is not in the list.
method getMenuItemCount
getMenuItemCount: () => number;
Returns the menu item count.
method getSelectedSiblingOfItemAtIndex
getSelectedSiblingOfItemAtIndex: (index: number) => number;
Returns selected list item index within the same selection group which is a sibling of item at given
index
.Parameter index
Index of the menu item with possible selected sibling.
method isSelectableItemAtIndex
isSelectableItemAtIndex: (index: number) => boolean;
Returns true if item at specified index is contained within an
.mdc-menu__selection-group
element.Parameter index
Index of the selectable menu item.
method notifySelected
notifySelected: (evtData: MDCMenuItemEventDetail) => void;
Emit an event when a menu item is selected.
method removeAttributeFromElementAtIndex
removeAttributeFromElementAtIndex: (index: number, attr: string) => void;
Removes an attribute from an element at the index provided.
method removeClassFromElementAtIndex
removeClassFromElementAtIndex: (index: number, className: string) => void;
Removes a class from the element at the index provided
interface MDCMenuItemComponentEvent
interface MDCMenuItemComponentEvent extends Event {}
property detail
readonly detail: MDCMenuItemComponentEventDetail;
interface MDCMenuItemComponentEventDetail
interface MDCMenuItemComponentEventDetail extends MDCMenuItemEventDetail {}
Event properties specific to the default component implementation.
property item
item: Element;
interface MDCMenuItemEvent
interface MDCMenuItemEvent extends Event {}
property detail
readonly detail: MDCMenuItemEventDetail;
interface MDCMenuItemEventDetail
interface MDCMenuItemEventDetail {}
Event properties used by the adapter and foundation.
property index
index: number;
Enums
enum DefaultFocusState
enum DefaultFocusState { NONE = 0, LIST_ROOT = 1, FIRST_ITEM = 2, LAST_ITEM = 3,}
member FIRST_ITEM
FIRST_ITEM = 2
member LAST_ITEM
LAST_ITEM = 3
member LIST_ROOT
LIST_ROOT = 1
member NONE
NONE = 0
Type Aliases
type MDCMenuFactory
type MDCMenuFactory = (el: Element, foundation?: MDCMenuFoundation) => MDCMenu;
Package Files (6)
Dependencies (10)
Dev Dependencies (0)
No dev dependencies.
Peer Dependencies (0)
No peer dependencies.
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@material/menu
.
- Markdown[![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/@material/menu)
- HTML<a href="https://www.jsdocs.io/package/@material/menu"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 4612 ms. - Missing or incorrect documentation? Open an issue for this package.