/**
 * Generated bundle index. Do not edit.
 */
export * from './public-api';
export { MAT_MENU_DEFAULT_OPTIONS_FACTORY as ɵangular_material_src_material_menu_menu_a } from './menu';
export { MAT_MENU_SCROLL_STRATEGY_FACTORY as ɵangular_material_src_material_menu_menu_b, MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER as ɵangular_material_src_material_menu_menu_c } from './menu-trigger';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvbWVudS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxnQ0FBZ0MsSUFBSSwwQ0FBMEMsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUN0RyxPQUFPLEVBQUMsZ0NBQWdDLElBQUksMENBQTBDLEVBQUMseUNBQXlDLElBQUksMENBQTBDLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtNQVRfTUVOVV9ERUZBVUxUX09QVElPTlNfRkFDVE9SWSBhcyDJtWFuZ3VsYXJfbWF0ZXJpYWxfc3JjX21hdGVyaWFsX21lbnVfbWVudV9hfSBmcm9tICcuL21lbnUnO1xuZXhwb3J0IHtNQVRfTUVOVV9TQ1JPTExfU1RSQVRFR1lfRkFDVE9SWSBhcyDJtWFuZ3VsYXJfbWF0ZXJpYWxfc3JjX21hdGVyaWFsX21lbnVfbWVudV9iLE1BVF9NRU5VX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZX1BST1ZJREVSIGFzIMm1YW5ndWxhcl9tYXRlcmlhbF9zcmNfbWF0ZXJpYWxfbWVudV9tZW51X2N9IGZyb20gJy4vbWVudS10cmlnZ2VyJzsiXX0=