All files / src/components/button button.ts

0% Statements 0/15
0% Branches 0/6
0% Functions 0/2
0% Lines 0/10

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                                                           
import { html, property, TemplateResult } from 'lit-element';
import { RootElement, htmlElement } from '../../core';
 
import './style.scss';
 
@htmlElement(`button`)
export class Button extends RootElement {
  @property({ type: Boolean }) public pending = false;
  @property({ type: String }) public text = '';
  @property({ type: Boolean }) public disabled = false;
 
  public constructor() {
    super();
    this.theme = 'light';
  }
 
  public render(): TemplateResult {
    return html`
      <button class="btn btn-${this.theme} ${this.pending ? 'pending' : ''}" type="button" ?disabled=${this.pending || this.disabled}>
        ${this.pending
          ? html`
              <div class="loading"><span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span></div>
            `
          : ''}
        <div class="text">${this.text}</div>
      </button>
    `;
  }
}