BookStack/resources/js/wysiwyg/ui/framework/blocks/button-with-menu.ts

32 lines
1.0 KiB
TypeScript
Raw Normal View History

import {EditorContainerUiElement, EditorUiElement} from "../core";
import {el} from "../../../utils/dom";
import {EditorButton} from "../buttons";
import {EditorDropdownButton} from "./dropdown-button";
import caretDownIcon from "@icons/caret-down-large.svg";
export class EditorButtonWithMenu extends EditorContainerUiElement {
protected button: EditorButton;
protected dropdownButton: EditorDropdownButton;
constructor(button: EditorButton, menuItems: EditorUiElement[]) {
super([button]);
this.button = button;
this.dropdownButton = new EditorDropdownButton({
button: {label: 'Menu', icon: caretDownIcon},
showOnHover: false,
direction: 'vertical',
}, menuItems);
this.addChildren(this.dropdownButton);
}
buildDOM(): HTMLElement {
return el('div', {
class: 'editor-button-with-menu-container',
}, [
this.button.getDOMElement(),
this.dropdownButton.getDOMElement()
]);
}
}