Skip to content

Angular Component that represents a menu of buttons triggered by a floating action button | built with material design

License

Notifications You must be signed in to change notification settings

angular-material-extensions/fab-menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

angular-material-extensions's logo

@angular-material-extensions/fab-menu - Angular Material component that allow users to select a country or nationality with an autocomplete feature

npm version npm demo docs: typedoc Join the chat at https://gitter.im/angular-material-extensions/Lobby Build Status codecov license

@angular-material-extensions/fab-menu demonstration

@angular-material-extensions/fab-menu demonstration

Built by and for developers ❤️

Do you have any question or suggestion ? Please do not hesitate to contact us! Alternatively, provide a PR | open an appropriate issue here

If you like this project, support angular-material-extensions by starring ⭐ and sharing it 📢

Table of Contents

View all the directives and components in action at https://angular-material-extensions.github.io/fab-menu

  • <mat-fab-menu> used to display the main component


1. Install via ng add. (Recommended)

If Angular Material Design is not setup, just run ng add @angular/material learn more

Now add the library via the angular schematics

ng add @angular-material-extensions/fab-menu

2. Install via npm. (Alternative)

Now install @angular-material-extensions/fab-menu via:

npm install --save @angular-material-extensions/fab-menu

Import the library

If you installed the library via angular schematics, you can skip this step

Once installed you need to import the main module:

import { MatFabMenuModule } from '@angular-material-extensions/fab-menu';
import { MatFabMenuModule } from '@angular-material-extensions/fab-menu';

@NgModule({
  declarations: [AppComponent, ...],
  imports: [MatFabMenuModule, ...],  
  bootstrap: [AppComponent]
})
export class AppModule {
}

Other modules in your application like for lazy loading import MatSelectCountryModule into your feature module:

<mat-fab-menu> used to display the main component - see the demo examples

<mat-mini-fab-menu> used to display a mini version of the fab menu - see the demo examples

option bind type default description
fabButtons Input() MatFabMenu[] - array of floating actions button as menu to render
icon Input() string add material icon string e.g: home, mail, phone see more
direction Input() MatFabMenuDirection top the direction of buttons: `'top'
color Input() ThemePalette accent the color of the main fab: primary, accent or warn
isActive Input() boolean false Whether the component is active
disabled Input() boolean false Whether the component is disabled
closeAfterSelection Input() boolean true Close after selecting a fab menu item
onFabMenuItemSelected Output() EventEmitter<string | number> - emits the selected button by id

Methods

@ViewChild('matFabMenu', { static: false }) matFabMenu: MatFabMenu;

toggle() will toggle the isActive property

Important interfaces or type

import {ThemePalette, TooltipPosition} from '@angular/material';

interface MatFabMenu {
  id: string | number;
  icon?: string; // please use either icon or imgUrl
  iconColor?: ThemePalette;
  imgUrl?: string; // please use either icon or imgUrl
  tooltip?: string;
  tooltipPosition?: TooltipPosition;
  color?: ThemePalette;
}

type MatFabMenuDirection = 'top' | 'bottom' | 'left' | 'right';
<mat-fab-menu color="primary"
              [fabButtons]="fabButtonsRandom">
</mat-fab-menu>

<!-- or if you prefer the mini version -->

<mat-mini-fab-menu color="primary"
                   [fabButtons]="fabButtonsRandom">
</mat-mini-fab-menu>
import {MatFabMenu} from '@angular-material-extensions/fab-menu';

fabButtonsRandom: MatFabMenu[] = [
    {
      id: 1,
      icon: 'create'
    },
    {
      id: 2,
      icon: 'mail'
    },
    {
      id: 3,
      icon: 'file_copy'
    },
    {
      id: 4,
      icon: 'phone'
    },
  ];

try to use your own svg instead of material icons:

import {MatFabMenu} from '@angular-material-extensions/fab-menu';

fabCountries: MatFabMenu[] = [
    {
      id: 1,
      imgUrl: 'assets/countrys-flags/svg/canada.svg'
    },
    {
      id: 2,
      imgUrl: 'assets/countrys-flags/svg/germany.svg'
    },
    {
      id: 3,
      imgUrl: 'assets/countrys-flags/svg/france.svg'
    },
    {
      id: 4,
      imgUrl: 'assets/countrys-flags/svg/lebanon.svg'
    },
  ];
<mat-fab-menu color="primary"
              [fabButtons]="fabButtonsRandom">
</mat-fab-menu>

@angular-material-extensions/fab-menu demonstration

<mat-fab-menu color="primary"
              direction="bottom"
              [fabButtons]="fabButtonsRandom">
</mat-fab-menu>

@angular-material-extensions/fab-menu demonstration

<mat-fab-menu color="primary"
              direction="left"
              [fabButtons]="fabButtonsRandom">
</mat-fab-menu>

@angular-material-extensions/fab-menu demonstration

<mat-fab-menu color="primary"
              direction="right"
              [fabButtons]="fabButtonsRandom">
</mat-fab-menu>

@angular-material-extensions/fab-menu demonstration

Build the library

after installing the dependencies with npm i

$ npm run build:lib

Serve the demo app

$ npm start

Other Angular Libraries


Built by and for developers ❤️ we will help you 👊


Who is using ngx-mailto? Awesome apps?

  1. Nahaus.de

Are you missing your project or you app? PR me to publish it on the README

jetbrains logo

This project is supported by jetbrains with 1 ALL PRODUCTS PACK OS LICENSE incl. webstorm


Copyright (c) 2019-2022 Anthony Nahas. Licensed under the MIT License (MIT)

About

Angular Component that represents a menu of buttons triggered by a floating action button | built with material design

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy