1 import {el} from "../../../helpers";
2 import {handleDropdown} from "../helpers/dropdowns";
3 import {EditorContainerUiElement, EditorUiElement} from "../core";
4 import {EditorBasicButtonDefinition, EditorButton} from "../buttons";
6 export class EditorDropdownButton extends EditorContainerUiElement {
7 protected button: EditorButton;
8 protected childItems: EditorUiElement[];
9 protected open: boolean = false;
11 constructor(buttonDefinition: EditorBasicButtonDefinition, children: EditorUiElement[]) {
13 this.childItems = children
15 this.button = new EditorButton({
25 this.children.push(this.button);
28 protected buildDOM(): HTMLElement {
29 const button = this.button.getDOMElement();
31 const childElements: HTMLElement[] = this.childItems.map(child => child.getDOMElement());
32 const menu = el('div', {
33 class: 'editor-dropdown-menu',
37 const wrapper = el('div', {
38 class: 'editor-dropdown-menu-container',
41 handleDropdown(button, menu, () => {
43 this.getContext().manager.triggerStateUpdate(this.button);
46 this.getContext().manager.triggerStateUpdate(this.button);