import {OOElement} from '../../oo-element' import {html} from '../../../lib/html' type Size = 'small' | 'medium' const ATTR = { DATA_SIZE: 'data-size' } const asValidString = (data: string): Size => { if (data === 'small' || data === 'medium') { return data } return 'medium' } const size: WeakMap = new WeakMap() export default class extends OOElement { static get observedAttributes() { return [ATTR.DATA_SIZE] } constructor() { super() size.set(this, asValidString(this.getAttribute(ATTR.DATA_SIZE))) } attributeChangedCallback(attr, prev, next) { if (prev === next) { return } size.set(this, asValidString(next)) if (this.connected) { this.update() } } render() { const s = size.get(this) const prefix = 'oo-atoms-badge' return html`
` } }