1.2.3 • Published 6 years ago

@next-level-integration/nli-menu-lib v1.2.3

Weekly downloads
-
License
MIT
Repository
-
Last release
6 years ago

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.

3. 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.

4. 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`
   
5. 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);
	```
1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.2.5

6 years ago

0.2.4

6 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.9

7 years ago

0.1.8

7 years ago

0.1.7

7 years ago

0.1.6

7 years ago

0.1.5

7 years ago