# @angular-material-extensions/contacts - Angular Library to manage contacts and users with a material design (Angular V7 supported)
This project has been moved from ngx-material-contacts to @angular-material-extensions/contacts
Do you have any question or suggestion ? Please do not hesitate to contact us! Alternatively, provide a PR | open an appropriate issue here
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
onContactRemoved
onContactAdded
bash
npm i @angular/cdk @angular/material @angular/flex-layout @angular/animations @angular/forms ng2-avatar
index.html
file like below:```html
```bash
npm i -s material-design-icons
angular.json
filejson
"styles": [
"styles.css",
"../node_modules/material-design-icons/iconfont/material-icons.css"
],
Install above dependencies via npm.
Now install @angular-material-extensions/contacts
via:
shell
npm install --save @angular-material-extensions/contacts
Note:If you are using
SystemJS
, you should adjust your configuration to point to the UMD bundle. In your systemjs config file,map
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';
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 MatContactsModule .forRoot()
):
```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
<mat-contacts [contacts]="contacts"
[readonly]="false"
(onContactAdded)="addContact($event)"
(onContactRemoved)="removeContact($event)">
</mat-contacts>
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
or
bash
$ ng serve --open
the app is now hosted by http://localhost:4200/
npm i
npm run build
or gulp build
bash
$ npm run build
4. Link the library
- gulp link
cd demo
_ npm i
_ npm start
Drop an email to: Anthony Nahas
or open an appropriate issue
let us chat on Gitter
Built by and for developers :heart: we will help you :punch:
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)