UNPKG

@dbp-toolkit/common

Version:

You can provide attributes (e.g. `global-name`) for components inside the provider:

134 lines (124 loc) 4.93 kB
import {createInstance} from '../i18n.js'; import {css, html} from 'lit'; import DBPLitElement from '../dbp-lit-element.js'; import {ScopedElementsMixin} from '../scoped/ScopedElementsMixin.js'; import * as commonStyles from '../styles.js'; import {Button, IconButton, LoadingButton, LangMixin} from '../index.js'; export class DbpButtonDemo extends LangMixin(ScopedElementsMixin(DBPLitElement), createInstance) { static get scopedElements() { return { 'dbp-button': Button, 'dbp-icon-button': IconButton, 'dbp-loading-button': LoadingButton, }; } static get styles() { return css` ${commonStyles.getThemeCSS()} .content h2 { color: var(--dbp-content); font-weight: 600; line-height: 1.125; margin-top: 2em; font-size: 1.5em; margin-bottom: 0.75em; } .control { margin-bottom: 1.5rem; } .control:not(:last-child) { margin-bottom: 0.5rem; } `; } buttonClickHandler(e) { // add class to button to end2end test if button was clicked e.target.classList.add('button-clicked'); setTimeout(() => { this.shadowRoot.querySelectorAll('dbp-button').forEach((element) => { element.stop(); }); }, 1000); } loadingButtonClickHandler(e) { let button = e.target; button.start(); setTimeout(() => { button.stop(); }, 1000); } render() { return html` <div class="content"> <h2>Button</h2> <div class="control"> <dbp-button value="Primary" @click="${this.buttonClickHandler}" type="is-primary"></dbp-button> <dbp-button value="No type" @click="${this.buttonClickHandler}"></dbp-button> <dbp-button value="Secondary" @click="${this.buttonClickHandler}" type="is-secondary"></dbp-button> <dbp-button value="Danger" @click="${this.buttonClickHandler}" type="is-danger"></dbp-button> <dbp-button value="Warning" @click="${this.buttonClickHandler}" type="is-warning"></dbp-button> <dbp-button value="Success" @click="${this.buttonClickHandler}" type="is-success"></dbp-button> <dbp-button value="Info" @click="${this.buttonClickHandler}" type="is-info"></dbp-button> <br /> <br /> <dbp-button value="Small primary" @click="${this.buttonClickHandler}" type="is-small is-primary"></dbp-button> <dbp-button value="Small secondary" @click="${this.buttonClickHandler}" type="is-small is-secondary"></dbp-button> <br /> <br /> <dbp-loading-button @click="${this.loadingButtonClickHandler}" type="is-primary"> Loading Button </dbp-loading-button> <dbp-loading-button @click="${this.loadingButtonClickHandler}" type="is-primary" disabled> Loading Button Disabled </dbp-loading-button> <br /> <br /> <dbp-icon-button icon-name="checkmark-circle" aria-label="Click to approve this changes" title="Enter input"></dbp-icon-button> <dbp-icon-button icon-name="chrome" aria-label="Select your browser" title="Enter input"></dbp-icon-button> <dbp-icon-button icon-name="steam" aria-label="Play games by pressing this button" title="Enter input"></dbp-icon-button> <dbp-icon-button icon-name="bug" title="No aria-label defined"></dbp-icon-button> </div> </div> `; } }