Angular Library to manage contacts and users with a material design
npm install @angular-material-extensions/contacts
height="256px" width="256px" style="text-align: center;"
src="https://cdn.rawgit.com/angular-material-extensions/contacts/master/assets/angular-material-extensions-logo.svg">










> This project has been moved from ngx-material-contacts to @angular-material-extensions/contacts
src="https://raw.githubusercontent.com/angular-material-extensions/contacts/HEAD/assets/demo2.gif">
src="https://raw.githubusercontent.com/angular-material-extensions/contacts/HEAD/assets/demo3.gif">
If did you like this project, support angular-material-extensions
by starring :star: and sharing it :loudspeaker:
View all the directives and components in action at https://angular-material-extensions.github.io/contacts
onContactRemovedonContactAdded
``bash`
npm i @angular/cdk @angular/material @angular/flex-layout @angular/animations @angular/forms ng2-avatar
- The easiest way to import material design icons is to provide a link in your index.html file like below:
`html`
- alternative solution:
1. Install of the official npm module of the material design icons
`bash`
npm i -s material-design-icons
2. Import them in your angular.json file
`json`
"styles": [
"styles.css",
"../node_modules/material-design-icons/iconfont/material-icons.css"
],
----
Now install @angular-material-extensions/contacts via:`shell`
npm install --save @angular-material-extensions/contacts
---
##### SystemJS
>Note:If you are using SystemJS, you should adjust your configuration to point to the UMD bundle.map
In your systemjs config file, needs to tell the System loader where to look for @angular-material-extensions/contacts:`js`
map: {
'@angular-material-extensions/contacts': 'node_modules/@angular-material-extensions/contacts/bundles/@angular-material-extensions/contacts.umd.js',
}
---
Once installed you need to import the main module:
`js`
import { MatContactsModule } from '@angular-material-extensions/contacts'; MatContactsModule .forRoot()
The only remaining part is to list the imported module in your application module. The exact method will be slightly
different for the root (top-level) module for which you should end up with the code similar to (notice ):`js
import { MatContactsModule } from '@angular-material-extensions/contacts';
@NgModule({
declarations: [AppComponent, ...],
imports: [MatContactsModule.forRoot(), ...],
bootstrap: [AppComponent]
})
export class AppModule {
}
`
Other modules in your application can simply import MatContactsModule :
`js
import { MatContactsModule } from '@angular-material-extensions/contacts';
@NgModule({
declarations: [OtherComponent, ...],
imports: [MatContactsModule, ...],
})
export class OtherModule {
}
`
add the @angular-material-extensions/contacts element to your template:
`html`
(onContactAdded)="addContact($event)"
(onContactRemoved)="removeContact($event)">
in your component -->
`typescript`
const CONTACT_DATA: Contact[] = [
{
id: 'RnCSW7Y88iTx',
name: 'Anthony Nahas',
email: 'anthony.na@your_domain.com',
photoURL: '../../../assets/profiles/17p60.png',
phoneNumber: '+1-202-555-0169'
},
{
id: 'KXgJviXd4EL9',
name: 'Amanda Lee',
email: 'amanda.lee@@angular-material-extensions/contacts.de',
photoURL: '../../../assets/profiles/1p60.png',
phoneNumber: '+1-502-555-0156'
}
]
`typescript
export class HomeComponent implements OnInit {
contacts = CONTACT_DATA;
ngOnInit() {
console.log('my contacts: ', this.contacts);
}
addContact(contact: Contact) {
console.log('on new contact: ', contact);
// do whatever you want with the added contact
}
removeContact(contact: Contact) {
console.log('on removed contact: ', contact);
// do whatever you want with the deleted contact
}
}
`
`typescript`
export interface Contact {
id?: string;
name: string;
email: string;
photoURL?: string;
phoneNumber?: string;
}
Please checkout the full documentation here
or follow the official tutorial
- clone this repo by running
`bash`
$ git clone https://github.com/angular-material-extensions/contacts.git
- link the @angular-material-extensions/contacts package
`bash`
$ gulp link
- navigate to the demo app directory
`bash`
$ cd demo
- install the dependencies
`bash`
$ npm i
- run/start/serve the app
`bash`
$ npm run start`
orbash`
$ ng serve --openhttp://localhost:4200/
- the app is now hosted by
1. clone this repo
2. Install the dependencies by running npm inpm run build
3. build the library or gulp build
`bash`
$ npm run buildgulp link
4. Link the library
- cd demo
5. Navigate to the demo app
- npm i
_ npm start`
_
---
This project is supported by jetbrains with 1 ALL PRODUCTS PACK OS LICENSE incl. webstorm
---
Copyright (c) 2018 Anthony Nahas. Licensed under the MIT License (MIT)