Adds a sidebar component

This commit is contained in:
gloriousCode
2017-10-06 16:52:58 +11:00
parent cf2ca30daa
commit 790130927e
10 changed files with 136 additions and 23 deletions

View File

@@ -0,0 +1,15 @@
import { TestBed, inject } from '@angular/core/testing';
import { SidebarService } from './sidebar.service';
describe('SidebarService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [SidebarService]
});
});
it('should be created', inject([SidebarService], (service: SidebarService) => {
expect(service).toBeTruthy();
}));
});

View File

@@ -0,0 +1,45 @@
import { Injectable } from '@angular/core';
import { MdSidenav, MdDrawerToggleResult } from '@angular/material';
@Injectable()
export class SidebarService {
private sidenav: MdSidenav;
/**
* Setter for sidenav.
*
* @param {MdSidenav} sidenav
*/
public setSidenav(sidenav: MdSidenav) {
this.sidenav = sidenav;
}
/**
* Open this sidenav, and return a Promise that will resolve when it's fully opened (or get rejected if it didn't).
*
* @returns Promise<MdSidenavToggleResult>
*/
public open(): Promise<MdDrawerToggleResult> {
return this.sidenav.open();
}
/**
* Close this sidenav, and return a Promise that will resolve when it's fully closed (or get rejected if it didn't).
*
* @returns Promise<MdSidenavToggleResult>
*/
public close(): Promise<MdDrawerToggleResult> {
return this.sidenav.close();
}
/**
* Toggle this sidenav. This is equivalent to calling open() when it's already opened, or close() when it's closed.
*
* @param {boolean} isOpen Whether the sidenav should be open.
*
* @returns {Promise<MdSidenavToggleResult>}
*/
public toggle(isOpen?: boolean): Promise<MdDrawerToggleResult> {
return this.sidenav.toggle(isOpen);
}
}