ngx-material-contacts v2.0.0
ngx-material-contacts - Angular Library to manage contacts and users with a material design (Angular V6 supported)
This project has been moved to @angular-material-extensions/contacts
Demo
View all the directives in action at https://anthonynahas.github.io/ngx-material-contacts
Features
- Display contacts in a table including name, email, phone number and photo
- Delete a contact via event
onContactRemoved
- Add a contact via event
onContactAdded
- Validation for adding a new contact incl. name, email and phone number form controls
Dependencies
- Angular (requires Angular 2 or higher)
Requirements (peer dependencies) - please instsall the packages before using ngx-material-contacts:
- angular flex-layout v6.0.0-beta.16
- angular material v6.2.1
- angular material theme
- angular cdk v6.2.1
- angular animations v6.2.1
- angular forms v6.2.1
- ng2-avatar
- if you need a built in theme --> please let me know
npm i @angular/cdk @angular/material @angular/flex-layout @angular/animations @angular/forms ng2-avatar
Installation
Install above dependencies via npm.
Now install ngx-material-contacts
via:
npm install --save ngx-material-contacts
SystemJS
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 forngx-material-contacts
:map: { 'ngx-material-contacts': 'node_modules/ngx-material-contacts/bundles/ngx-material-contacts.umd.js', }
Once installed you need to import the main module:
import { NgxMaterialPagesModule } from 'ngx-material-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 NgxMaterialPagesModule .forRoot()
):
import { NgxMaterialPagesModule } from 'ngx-material-contacts';
@NgModule({
declarations: [AppComponent, ...],
imports: [NgxMaterialPagesModule.forRoot(), ...],
bootstrap: [AppComponent]
})
export class AppModule {
}
Other modules in your application can simply import NgxMaterialPagesModule
:
import { NgxMaterialPagesModule } from 'ngx-material-contacts';
@NgModule({
declarations: [OtherComponent, ...],
imports: [NgxMaterialPagesModule, ...],
})
export class OtherModule {
}
Usage
add the ngx-material-contacts
element to your template:
<ngx-material-contacts [contacts]="contacts"
[readonly]="false"
(onContactAdded)="addContact($event)"
(onContactRemoved)="removeContact($event)">
</ngx-material-contacts>
in your component -->
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@ngx-material-contacts.de',
photoURL: '../../../assets/profiles/1p60.png',
phoneNumber: '+1-502-555-0156'
}
]
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
}
}
Contact's interface
export interface Contact {
id?: string;
name: string;
email: string;
photoURL?: string;
phoneNumber?: string;
}
Please checkout the full documentation here or follow the official tutorial
Development
- clone this repo
- Install the dependencies by running
npm i
- build the library
npm run build
orgulp build
To generate all*.js
,*.d.ts
and*.metadata.json
files:
$ npm run build
- Link the library
- on windows
gulp link
orlocally npx gulp link
on mac/linux
sudo gulp link
or locallysudo npx gulp link
- Navigate to the demo app
cd demo
npm i
npm start
extras
To lint all *.ts
files:
$ npm run lint
Other Angular Libraries
- ngx-auth-firebaseui
- ngx-material-pages
- ngx-material-password-strength
- @angular-material-extensions/faq
- @angular-material-extensions/combination-generator
License
Copyright (c) 2018 anthonynahas. Licensed under the MIT License (MIT)