All files / src/stories button.component.ts

0% Statements 0/10
0% Branches 0/2
0% Functions 0/2
0% Lines 0/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49                                                                                                 
import { CommonModule } from '@angular/common';
import { Component, Input, Output, EventEmitter } from '@angular/core';
 
@Component({
  selector: 'storybook-button',
  standalone: true,
  imports: [CommonModule],
  template: ` <button
  type="button"
  (click)="onClick.emit($event)"
  [ngClass]="classes"
  [ngStyle]="{ 'background-color': backgroundColor }"
>
  {{ label }}
</button>`,
  styleUrls: ['./button.css'],
})
export class ButtonComponent {
  /** Is this the principal call to action on the page? */
  @Input()
  primary = false;
 
  /** What background color to use */
  @Input()
  backgroundColor?: string;
 
  /** How large should the button be? */
  @Input()
  size: 'small' | 'medium' | 'large' = 'medium';
 
  /**
   * Button contents
   *
   * @required
   */
  @Input()
  label = 'Button';
 
  /** Optional click handler */
  @Output()
  onClick = new EventEmitter<Event>();
 
  public get classes(): string[] {
    const mode = this.primary ? 'storybook-button--primary' : 'storybook-button--secondary';
 
    return ['storybook-button', `storybook-button--${this.size}`, mode];
  }
}