import Conquer from '@burguillosinfo/conquer' import ConquerInterface from '@burguillosinfo/conquer/interface' export default abstract class AbstractTopBarInterface extends ConquerInterface { constructor() { super() const exitButton = this.getExitButton() exitButton.addEventListener('click', () => { this.runCallbacks('close') }) } protected generateNodes(): HTMLElement[] { const newNode = this.getNodeFromTemplateId('conquer-interface-with-top-bar-template') return [newNode] } protected getMainNode(): HTMLElement { return this.getNodes()[0] } protected getExitButton(): HTMLElement { const maybeExitButton = this.getMainNode().querySelector('.conquer-exit-button') if (maybeExitButton === null || !(maybeExitButton instanceof HTMLElement)) { Conquer.fail('No exit button.') } return maybeExitButton } public generateInterfaceElementCentered(): HTMLElement { return this.getNodeFromTemplateId('conquer-interface-element-padded-template') } }