import { Component, Input, OnChanges, ContentChild, TemplateRef, ContentChildren } from '@angular/core'; import { Button } from './button'; export type ButtonDropDownSizes = 'btn-sm' | 'btn-md' | 'btn-lg'; export type ButtonDropDownDirections = 'dropdown' | 'dropup' | 'dropright' | 'dropleft'; @Component({ selector: 'rd-dd-item', template: ` ` }) export class ButtonDropDownItem extends Button { @ContentChild(TemplateRef) template; finalizedStyle = {}; ngOnChanges() { this.finalizedStyle = this.setStyle(); } setStyle() { let color = ""; switch (this.color) { case 'red': color = '#f4516c'; break; case 'green': color = '#34bfa3'; break; case 'blue': color = '#36a3f7'; break; case 'yellow': color = '#ffb822'; break; case 'purple': color = '#716aca'; break; case 'cyan': color = '#00c5dc'; break; case 'darkblue': color = '#5867dd'; break; } return { 'color': color }; } } @Component({ selector: "rd-button-dd", template: `
` }) export class ButtonDropDown extends Button implements OnChanges { @Input("rd-size") _size: ButtonDropDownSizes = 'btn-sm'; @Input("rd-direction") direction: ButtonDropDownDirections = "dropdown"; @ContentChildren(ButtonDropDownItem) items; }