@material/menu
Advanced tools
Comparing version 15.0.0-canary.68aaed940.0 to 15.0.0-canary.68edc03c6.0
@@ -65,7 +65,7 @@ /** | ||
*/ | ||
getElementIndex(element: Element): number; | ||
getElementIndex(element: HTMLElement): number; | ||
/** | ||
* Emit an event when a menu item is selected. | ||
*/ | ||
notifySelected(evtData: MDCMenuItemEventDetail): void; | ||
notifySelected(eventData: MDCMenuItemEventDetail): void; | ||
/** @return Returns the menu item count. */ | ||
@@ -75,3 +75,4 @@ getMenuItemCount(): number; | ||
* Focuses the menu item at given index. | ||
* @param index Index of the menu item that will be focused every time the menu opens. | ||
* @param index Index of the menu item that will be focused every time the | ||
* menu opens. | ||
*/ | ||
@@ -82,3 +83,4 @@ focusItemAtIndex(index: number): void; | ||
/** | ||
* @return Returns selected list item index within the same selection group which is | ||
* @return Returns selected list item index within the same selection group | ||
* which is | ||
* a sibling of item at given `index`. | ||
@@ -89,3 +91,4 @@ * @param index Index of the menu item with possible selected sibling. | ||
/** | ||
* @return Returns true if item at specified index is contained within an `.mdc-menu__selection-group` element. | ||
* @return Returns true if item at specified index is contained within an | ||
* `.mdc-menu__selection-group` element. | ||
* @param index Index of the selectable menu item. | ||
@@ -92,0 +95,0 @@ */ |
@@ -6,9 +6,17 @@ # Change Log | ||
# [15.0.0-canary.68aaed940.0](https://github.com/material-components/material-components-web/compare/v14.0.0...v15.0.0-canary.68aaed940.0) (2022-12-01) | ||
# [15.0.0-canary.68edc03c6.0](https://github.com/material-components/material-components-web/compare/v14.0.0...v15.0.0-canary.68edc03c6.0) (2024-04-08) | ||
### Bug Fixes | ||
* **menu:** Account for empty map being passed to theme mixin ([0c52ade](https://github.com/material-components/material-components-web/commit/0c52adeab4a46fb942e7ac64a950d094b54716f8)) | ||
* **menu:** do not require all for theme-styles ([1fb4b1a](https://github.com/material-components/material-components-web/commit/1fb4b1a063ecaec1ad0d508b3f5ae5aca3e96652)) | ||
* **menu:** make require-all a theme-styles param. ([c64a277](https://github.com/material-components/material-components-web/commit/c64a2776efe4f0aaaee5c32f5fb9ef3570483213)) | ||
### Features | ||
* **menu:** Add `static-styles` mixin ([a274583](https://github.com/material-components/material-components-web/commit/a274583b97fd1fe27eaaca9cba5f890173bebb2e)) | ||
* add elevation theming to menu ([86bde5c](https://github.com/material-components/material-components-web/commit/86bde5c063e806f975d836d6a875f2fdaa7cdc67)) | ||
* add icon support to menu theming ([40b18d0](https://github.com/material-components/material-components-web/commit/40b18d04314549060c2b4a28ed425cba9976687b)) | ||
* **menu:** working on theming API ([f1e0371](https://github.com/material-components/material-components-web/commit/f1e0371502ee9bfe48f3501a63f70a42bfd79cb8)) |
@@ -31,5 +31,7 @@ /** | ||
import { MDCMenuFoundation } from './foundation'; | ||
export declare type MDCMenuFactory = (el: Element, foundation?: MDCMenuFoundation) => MDCMenu; | ||
/** MDC Menu Factory */ | ||
export declare type MDCMenuFactory = (el: HTMLElement, foundation?: MDCMenuFoundation) => MDCMenu; | ||
/** MDC Menu */ | ||
export declare class MDCMenu extends MDCComponent<MDCMenuFoundation> { | ||
static attachTo(root: Element): MDCMenu; | ||
static attachTo(root: HTMLElement): MDCMenu; | ||
private menuSurfaceFactory; | ||
@@ -78,7 +80,7 @@ private listFactory; | ||
/** | ||
* 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. | ||
* 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. | ||
*/ | ||
get items(): Element[]; | ||
get items(): HTMLElement[]; | ||
/** | ||
@@ -85,0 +87,0 @@ * Turns on/off the underlying list's single selection mode. Used mainly |
@@ -33,2 +33,3 @@ /** | ||
import { MDCMenuFoundation } from './foundation'; | ||
/** MDC Menu */ | ||
var MDCMenu = /** @class */ (function (_super) { | ||
@@ -59,7 +60,7 @@ __extends(MDCMenu, _super); | ||
} | ||
this.handleKeydown = function (evt) { | ||
_this.foundation.handleKeydown(evt); | ||
this.handleKeydown = function (event) { | ||
_this.foundation.handleKeydown(event); | ||
}; | ||
this.handleItemAction = function (evt) { | ||
_this.foundation.handleItemAction(_this.items[evt.detail.index]); | ||
this.handleItemAction = function (event) { | ||
_this.foundation.handleItemAction(_this.items[event.detail.index]); | ||
}; | ||
@@ -163,5 +164,5 @@ this.handleMenuSurfaceOpened = function () { | ||
/** | ||
* 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. | ||
* 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. | ||
*/ | ||
@@ -291,4 +292,5 @@ get: function () { | ||
var _this = this; | ||
// DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>. | ||
// To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. | ||
// DO NOT INLINE this variable. For backward compatibility, foundations take | ||
// a Partial<MDCFooAdapter>. To ensure we don't accidentally omit any | ||
// methods, we need a separate, strongly typed adapter variable. | ||
// tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. | ||
@@ -306,3 +308,3 @@ var adapter = { | ||
var list = _this.items; | ||
list[index].setAttribute(attr, value); | ||
_this.safeSetAttribute(list[index], attr, value); | ||
}, | ||
@@ -324,6 +326,6 @@ removeAttributeFromElementAtIndex: function (index, attr) { | ||
getElementIndex: function (element) { return _this.items.indexOf(element); }, | ||
notifySelected: function (evtData) { | ||
notifySelected: function (eventData) { | ||
_this.emit(strings.SELECTED_EVENT, { | ||
index: evtData.index, | ||
item: _this.items[evtData.index], | ||
index: eventData.index, | ||
item: _this.items[eventData.index], | ||
}); | ||
@@ -330,0 +332,0 @@ }, |
@@ -26,2 +26,3 @@ /** | ||
import { DefaultFocusState } from './constants'; | ||
/** MDC Menu Foundation */ | ||
export declare class MDCMenuFoundation extends MDCFoundation<MDCMenuAdapter> { | ||
@@ -44,3 +45,2 @@ static get cssClasses(): { | ||
}; | ||
private closeAnimationEndTimerId; | ||
private defaultFocusState; | ||
@@ -54,4 +54,4 @@ private selectedIndex; | ||
destroy(): void; | ||
handleKeydown(evt: KeyboardEvent): void; | ||
handleItemAction(listItem: Element): void; | ||
handleKeydown(event: KeyboardEvent): void; | ||
handleItemAction(listItem: HTMLElement): void; | ||
handleMenuSurfaceOpened(): void; | ||
@@ -58,0 +58,0 @@ /** |
@@ -26,4 +26,4 @@ /** | ||
import { cssClasses as listCssClasses } from '@material/list/constants'; | ||
import { MDCMenuSurfaceFoundation } from '@material/menu-surface/foundation'; | ||
import { cssClasses, DefaultFocusState, numbers, strings } from './constants'; | ||
/** MDC Menu Foundation */ | ||
var MDCMenuFoundation = /** @class */ (function (_super) { | ||
@@ -33,3 +33,2 @@ __extends(MDCMenuFoundation, _super); | ||
var _this = _super.call(this, __assign(__assign({}, MDCMenuFoundation.defaultAdapter), adapter)) || this; | ||
_this.closeAnimationEndTimerId = 0; | ||
_this.defaultFocusState = DefaultFocusState.LIST_ROOT; | ||
@@ -88,9 +87,6 @@ _this.selectedIndex = -1; | ||
MDCMenuFoundation.prototype.destroy = function () { | ||
if (this.closeAnimationEndTimerId) { | ||
clearTimeout(this.closeAnimationEndTimerId); | ||
} | ||
this.adapter.closeSurface(); | ||
}; | ||
MDCMenuFoundation.prototype.handleKeydown = function (evt) { | ||
var key = evt.key, keyCode = evt.keyCode; | ||
MDCMenuFoundation.prototype.handleKeydown = function (event) { | ||
var key = event.key, keyCode = event.keyCode; | ||
var isTab = key === 'Tab' || keyCode === 9; | ||
@@ -102,3 +98,2 @@ if (isTab) { | ||
MDCMenuFoundation.prototype.handleItemAction = function (listItem) { | ||
var _this = this; | ||
var index = this.adapter.getElementIndex(listItem); | ||
@@ -111,11 +106,5 @@ if (index < 0) { | ||
this.adapter.closeSurface(skipRestoreFocus); | ||
// Wait for the menu to close before adding/removing classes that affect styles. | ||
this.closeAnimationEndTimerId = setTimeout(function () { | ||
// Recompute the index in case the menu contents have changed. | ||
var recomputedIndex = _this.adapter.getElementIndex(listItem); | ||
if (recomputedIndex >= 0 && | ||
_this.adapter.isSelectableItemAtIndex(recomputedIndex)) { | ||
_this.setSelectedIndex(recomputedIndex); | ||
} | ||
}, MDCMenuSurfaceFoundation.numbers.TRANSITION_CLOSE_DURATION); | ||
if (this.adapter.isSelectableItemAtIndex(index)) { | ||
this.setSelectedIndex(index); | ||
} | ||
}; | ||
@@ -122,0 +111,0 @@ MDCMenuFoundation.prototype.handleMenuSurfaceOpened = function () { |
{ | ||
"name": "@material/menu", | ||
"version": "15.0.0-canary.68aaed940.0", | ||
"version": "15.0.0-canary.68edc03c6.0", | ||
"description": "The Material Components for the web menu component", | ||
@@ -20,16 +20,16 @@ "license": "MIT", | ||
"dependencies": { | ||
"@material/base": "15.0.0-canary.68aaed940.0", | ||
"@material/dom": "15.0.0-canary.68aaed940.0", | ||
"@material/elevation": "15.0.0-canary.68aaed940.0", | ||
"@material/feature-targeting": "15.0.0-canary.68aaed940.0", | ||
"@material/list": "15.0.0-canary.68aaed940.0", | ||
"@material/menu-surface": "15.0.0-canary.68aaed940.0", | ||
"@material/ripple": "15.0.0-canary.68aaed940.0", | ||
"@material/rtl": "15.0.0-canary.68aaed940.0", | ||
"@material/shape": "15.0.0-canary.68aaed940.0", | ||
"@material/theme": "15.0.0-canary.68aaed940.0", | ||
"@material/tokens": "15.0.0-canary.68aaed940.0", | ||
"@material/base": "15.0.0-canary.68edc03c6.0", | ||
"@material/dom": "15.0.0-canary.68edc03c6.0", | ||
"@material/elevation": "15.0.0-canary.68edc03c6.0", | ||
"@material/feature-targeting": "15.0.0-canary.68edc03c6.0", | ||
"@material/list": "15.0.0-canary.68edc03c6.0", | ||
"@material/menu-surface": "15.0.0-canary.68edc03c6.0", | ||
"@material/ripple": "15.0.0-canary.68edc03c6.0", | ||
"@material/rtl": "15.0.0-canary.68edc03c6.0", | ||
"@material/shape": "15.0.0-canary.68edc03c6.0", | ||
"@material/theme": "15.0.0-canary.68edc03c6.0", | ||
"@material/tokens": "15.0.0-canary.68edc03c6.0", | ||
"tslib": "^2.1.0" | ||
}, | ||
"gitHead": "6092c4f3bcdf41ae7f55d37c6ad51793eb8f040d" | ||
"gitHead": "04046ad51f4d581f93e797ec929d219422dd0235" | ||
} |
@@ -275,3 +275,3 @@ <!--docs: | ||
--- | --- | ||
`handleKeydown(evt: Event) => void` | Event handler for the `keydown` events within the menu. | ||
`handleKeydown(event: Event) => void` | Event handler for the `keydown` events within the menu. | ||
`handleItemAction(listItem: Element) => void` | Event handler for list's action event. | ||
@@ -278,0 +278,0 @@ `handleMenuSurfaceOpened() => void` | Event handler for menu surface's opened event. |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1183254
39
9108
+ Added@material/animation@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/base@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/density@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/dom@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/elevation@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/feature-targeting@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/list@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/menu-surface@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/ripple@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/rtl@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/shape@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/theme@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/tokens@15.0.0-canary.68edc03c6.0(transitive)
+ Added@material/typography@15.0.0-canary.68edc03c6.0(transitive)
- Removed@material/animation@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/base@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/density@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/dom@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/elevation@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/feature-targeting@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/list@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/menu-surface@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/ripple@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/rtl@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/shape@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/theme@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/tokens@15.0.0-canary.68aaed940.0(transitive)
- Removed@material/typography@15.0.0-canary.68aaed940.0(transitive)
Updated@material/feature-targeting@15.0.0-canary.68edc03c6.0