# Alfresco Angular2 Components core

travis
    Status travis
    Status Coverage Status npm downloads license alfresco component angular 2 typescript node version

Core library for other ng2-alfresco components. This should be added as a dependency for any project using the components. ### Node To correctly use this component check that on your machine is running Node version 5.0.0 or higher. ## Install ```sh npm install --save ng2-alfresco-core ``` ## Main components and services ### Components - Context Menu directive #### Context Menu directive _See **Demo Shell** or **DocumentList** implementation for more details and use cases._ ```html ``` ```ts @Component({ selector: 'my-component }) export class MyComponent implements OnInit { menuItems: any[]; constructor() { this.menuItems = [ { title: 'Item 1', subject: new Subject() }, { title: 'Item 2', subject: new Subject() }, { title: 'Item 3', subject: new Subject() } ]; } ngOnInit() { this.menuItems.forEach(l => l.subject.subscribe(item => this.commandCallback(item))); } commandCallback(item) { alert(`Executing ${item.title} command.`); } } ``` ### Services - Authentication Service - Translation Service - Context Menu Service #### Authentication Service The authentication service is used inside the [login component](../ng2-alfresco-login) and is possible to find there an example of how to use it. ```javascript import { Component } from '@angular/core'; import { bootstrap } from '@angular/platform-browser-dynamic'; import { HTTP_PROVIDERS } from '@angular/http'; import { ALFRESCO_CORE_PROVIDERS, AlfrescoSettingsService, AlfrescoAuthenticationService } from 'ng2-alfresco-core'; @Component({ selector: 'my-app', template: `
Authentication failed to ip {{ ecmHost }} with user: admin, admin
Authentication successfull to ip {{ ecmHost }} with user: admin, admin, your token is {{ token }}
` }) class MyDemoApp { authenticated: boolean = false; ecmHost: string = 'http://127.0.0.1:8080'; token: string; constructor(public alfrescoAuthenticationService: AlfrescoAuthenticationService, private alfrescoSettingsService: AlfrescoSettingsService) { alfrescoSettingsService.ecmHost = this.ecmHost; alfrescoSettingsService.setProviders('ECM'); } ngOnInit() { this.login(); } login() { this.alfrescoAuthenticationService.login('admin', 'admin').subscribe( token => { this.token = token.ticket; this.authenticated = true; }, error => { console.log(error); this.authenticated = false; }); } } bootstrap(MyDemoApp, [ HTTP_PROVIDERS, ALFRESCO_CORE_PROVIDERS ]); ``` ## Build from sources Alternatively you can build component from sources with the following commands: ```sh npm install npm run build ``` ### Build the files and keep watching for changes ```sh $ npm run build:w ``` ### Running unit tests ```sh npm test ``` ### Running unit tests in browser ```sh npm test-browser ``` This task rebuilds all the code, runs tslint, license checks and other quality check tools before performing unit testing. ### Code coverage ```sh npm run coverage ```