@next-level-integration/nli-menu-lib
TypeScript icon, indicating that this package has built-in type declarations

1.2.3 • Public • Published

NliMenuLib

The general structure of component: for toolbar menu:

<nli-menu  [firstLineText]="" [secoundLineText]="">
 	 <nli-menu-item [icon]="" [text]="" [disabled]="" (itemClick)="" iconPath="" ></nli-menu-item>
	 <nli-menu-item [icon]="" [text]="" [disabled]="" (itemClick)="" iconPath=""></nli-menu-item>
	 ...
</nli-menu>

and for normal menu:

<nli-menu  [isToolbarMenu]="false" [placeHolder]="">	
 	 <nli-menu-item [icon]="" [text]="" [disabled]="" (itemClick)="" iconPath="" ></nli-menu-item>
	 <nli-menu-item [icon]="" [text]="" [disabled]="" (itemClick)="" iconPath=""></nli-menu-item>
	 ...
</nli-menu>

Parts

nli-menu: main part of component including:

firstLineText and secoundLineText:sholud set and will show when isToolbarMenu is true and show as menu placeholder text. 

isToolbarMenu:is the type of menu.set to false for normal menu and true for toolbar menu. this value is true by default. 

placeHolder:set when type is "normal menu" and will shown when nothing selected.and only used when isToolbarMenu is false.

The whole part of component is clickable.

nli-menu-item: Specify drop-down items:

icon (input): unique name of the icon.

iconPath (input): the path to SVG format icon file.

text (input): item text.

disabled (output): disable item.

itemClick (output): handle item click event.

Setup Steps:

  1. Add dependency in package.json under dependencies object: "nli-menu-lib": "^0.1.4"

  2. Add CSS dependencies to main html file which by default is index.html:

<head>
   ...
 	<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
 	<link href="https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic"
   type="text/css" rel="stylesheet">
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
       ...
</head>

This component uses material fonts and icons and bootstrap CSS for responsive behavior.

  1. Apply material theme. create app-theme.scss file and apply material theme. You should also add style dependency in .angular-cli.json file:

      "styles": [
      	...
    	"app-theme.scss"
      ],
    

    The sample app-theme.scss exists at the end of this file.

  2. Run npm install in project folder (The home folder that package.json exists): npm install This command downloads all dependencies including nli-menu-lib. You can also download just this module with: npm install nli-menu-lib

  3. Import menu module to your project. In your main module (or module that you want use this component) that its default name is app.module.ts, import it:

     import { LibModule as NliMenuModule} from 'nli-menu-lib';
     ...
     @NgModule({
       ...
       imports: [
         ...
         NliMenuModule
        ]
        ...
     });
    

Usage example:

<div >
	<nli-menu  [firstLineText]="'Max Mustermann'" [secoundLineText]="'SW Musterstadt'">
	 	 <nli-menu-item [icon]="'profile'" [text]="'Profil bearbeiten'" iconPath="../assets/home/account-outline.svg" ></nli-menu-item>
		 <nli-menu-item [icon]="'password'" [text]="'Passwort ändern'" iconPath="../assets/home/lock-outline.svg"></nli-menu-item>
		 <nli-menu-item [icon]="'client'" [text]="'Mandant wechseln'" (click)="onClickClient()" iconPath="../assets/home/autorenew.svg"></nli-menu-item>
		 <nli-menu-item [icon]="'logout'" [text]="'Ausloggen'" (click)="onClickLogout()" iconPath="../assets/home/logout.svg"></nli-menu-item>
	</nli-menu>
</div>

##Appendix

  1. Sample app-theme.scss

    @import '~@angular/material/theming';
    // Plus imports for other components in your app.
    // Include the base styles for Angular Material core. We include this here so that you only
    // have to load a single css file for Angular Material in your app.
    @include mat-core();
    // Define the palettes for your theme using the Material Design palettes available in palette.scss
    // (imported above). For each palette, you can optionally specify a default, lighter, and darker
    // hue.
    $app-primary: mat-palette($mat-blue);
    $app-secondary: mat-palette($mat-blue);
    $app-accent:  mat-palette($mat-orange, A200, A100, A400);
    // The warn palette is optional (defaults to red).
    $app-warn:    mat-palette($mat-red);
    // Create the theme object (a Sass map containing all of the palettes).
    $app-theme: mat-light-theme($app-primary, $app-accent, $app-warn);
    // Include theme styles for core and each component used in your app.
    // Alternatively, you can import and @include the theme mixins for each component
    // that you are using.
    @include angular-material-theme($app-theme);	
    //add this line for importing menu scss theme:
    @import '~@next-level-integration/nli-menu-lib/lib/menu/item/item.component.scss';
    @include nli-material-theme($app-theme);
    

Readme

Keywords

none

Package Sidebar

Install

npm i @next-level-integration/nli-menu-lib

Weekly Downloads

1

Version

1.2.3

License

MIT

Unpacked Size

21.1 kB

Total Files

13

Last publish

Collaborators

  • sbienert
  • echeah
  • nagendra.donthi
  • kohl077
  • albertarvato
  • mkorsch-nli
  • sdtyn
  • mzimmermann
  • ykh
  • yousof56
  • hashemnik