import {Component, Input} from "ng-forward"; @Component({ selector: 'sidebar-section', templateUrl: 'app/layout/sidebar/sidebar-section.html' }) /** * @ngdoc object * @name sidebar.SidebarSectionComponent * @description * This is a widget to render sections to * SidebarComponent. * * Usage example: * @example *
* let section: SidebarSectionComponent = new SidebarSectionComponent('MySection'); * section.addItem({ * title: 'Friends', * count: 0, * url: '#', * className: 'active', * icon: 'fa-users', //A font-awesome icon class * subitems: [ * { title: 'Example' } * ] * }); **/ export class SidebarSectionComponent { /** * @ngdoc property * @name name * @propertyOf sidebar.SidebarComponent * @description * The name of the section */ @Input() public name: string; /** * @ngdoc property * @name items * @propertyOf sidebar.SidebarComponent * @description * Array of items to render into this sidebar menu */ @Input() public items: any[] = [ { title: 'Friends', count: 0, url: '#', className: 'active', icon: 'fa-users' } ]; /** * @ngdoc method * @name constructor * @methodOf sidebar.SidebarSectionComponent * @param {string} name The name of the section (optional) * @description * The constructor for this component. The name of section * can be assigned here, optionally */ constructor(name?: string) { this.name = name; } /** * @ngdoc method * @name addItem * @methodOf sidebar.SidebarSectionComponent * @param {Object} item Literal object with properties to render a menu item * @returns {SidebarSectionComponent} This own component type, using the "Fluent Interface" pattern * @description * Use this method to add new items for a section instance * * Usage example: * @example *
* section.addItem({ * title: 'Friends', * count: 0, * url: '#', * className: 'active', * icon: 'fa-users', //A font-awesome icon class * subitems: [ * { title: 'Example' } //A subitem literal object * ] * }); **/ addItem(item: any): SidebarSectionComponent { this.items.push(item); return this; } /** * @ngdoc method * @name setName * @methodOf sidebar.SidebarSectionComponent * @param {string} name The name of the section * @returns {SidebarSectionComponent} This own component type, using the "Fluent Interface" pattern * @description * Change the name of the section assigned on constructor * * Usage example: * @example *
* section.setName('MyAnotherSection') * .addItem({ * //Item here * ... * }); **/ setName(name: string): SidebarSectionComponent { this.name = name; return this; } }