You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.0 KiB
JavaScript
50 lines
1.0 KiB
JavaScript
export class ButtonGroup extends HTMLElement {
|
|
constructor() {
|
|
super()
|
|
this.attachShadow({mode: 'open'})
|
|
}
|
|
|
|
connectedCallback() {
|
|
const style = document.createElement('style')
|
|
style.textContent = `
|
|
:host {
|
|
display: flex;
|
|
flex-direction: row-reverse;
|
|
gap: 5px;
|
|
}
|
|
button {
|
|
font-size: 16px;
|
|
font-family: sans-serif;
|
|
font-weight: normal;
|
|
background: #111;
|
|
color: #eee;
|
|
margin: 0;
|
|
border: none;
|
|
padding: 5px 10px;
|
|
border-radius: 3px;
|
|
}
|
|
`
|
|
this.shadowRoot.appendChild(style)
|
|
}
|
|
|
|
addButton(text, cls, handler) {
|
|
const el = document.createElement('button')
|
|
el.innerText = text
|
|
el.classList.add(cls)
|
|
el.addEventListener('click', handler)
|
|
this.shadowRoot.appendChild(el)
|
|
return el
|
|
}
|
|
|
|
addPrimary(text, handler) {
|
|
this.primary = this.addButton(
|
|
text, 'primary', handler
|
|
)
|
|
}
|
|
|
|
addCancel(text, handler) {
|
|
this.cancel = this.addButton(
|
|
text, 'cancel', handler
|
|
)
|
|
}
|
|
} |