mj-context-menu
Version:
A generic context menu
42 lines • 1.11 kB
JavaScript
import { AbstractNavigatable } from './abstract_navigatable.js';
export class MenuElement extends AbstractNavigatable {
addAttributes(attributes) {
for (const attr in attributes) {
this.html.setAttribute(attr, attributes[attr]);
}
}
get html() {
if (!this._html) {
this.generateHtml();
}
return this._html;
}
set html(html) {
this._html = html;
this.addEvents(html);
}
generateHtml() {
const html = document.createElement('div');
html.classList.add(this.className);
html.setAttribute('role', this.role);
this.html = html;
}
focus() {
const html = this.html;
html.setAttribute('tabindex', '0');
setTimeout(() => html.focus(), 50);
}
unfocus() {
const html = this.html;
if (html.hasAttribute('tabindex')) {
html.setAttribute('tabindex', '-1');
}
try {
html.blur();
}
catch (e) {
}
html.blur();
}
}
//# sourceMappingURL=menu_element.js.map