/**
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
export { MAT_MENU_DEFAULT_OPTIONS, MatMenu, _MatMenuBase, } from './menu';
export { MatMenuItem } from './menu-item';
export { MatMenuTrigger, MAT_MENU_SCROLL_STRATEGY } from './menu-trigger';
export { MAT_MENU_PANEL } from './menu-panel';
export * from './menu-module';
export * from './menu-animations';
export * from './menu-content';
export * from './menu-positions';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9tZW51L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUVMLHdCQUF3QixFQUN4QixPQUFPLEVBQ1AsWUFBWSxHQUNiLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFDLGNBQWMsRUFBRSx3QkFBd0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBZSxjQUFjLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUQsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0IHtcbiAgTWF0TWVudURlZmF1bHRPcHRpb25zLFxuICBNQVRfTUVOVV9ERUZBVUxUX09QVElPTlMsXG4gIE1hdE1lbnUsXG4gIF9NYXRNZW51QmFzZSxcbn0gZnJvbSAnLi9tZW51JztcbmV4cG9ydCB7TWF0TWVudUl0ZW19IGZyb20gJy4vbWVudS1pdGVtJztcbmV4cG9ydCB7TWF0TWVudVRyaWdnZXIsIE1BVF9NRU5VX1NDUk9MTF9TVFJBVEVHWX0gZnJvbSAnLi9tZW51LXRyaWdnZXInO1xuZXhwb3J0IHtNYXRNZW51UGFuZWwsIE1BVF9NRU5VX1BBTkVMfSBmcm9tICcuL21lbnUtcGFuZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21lbnUtYW5pbWF0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL21lbnUtY29udGVudCc7XG5leHBvcnQgKiBmcm9tICcuL21lbnUtcG9zaXRpb25zJztcbiJdfQ==