UNPKG

@intuitionrobotics/thunderstorm

Version:
57 lines 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MenuBuilder = exports.MenuModule = exports.MenuModule_Class = exports.resolveRealPosition = void 0; const ts_common_1 = require("@intuitionrobotics/ts-common"); const thunder_dispatcher_1 = require("../../core/thunder-dispatcher"); const resolveRealPosition = (button) => { const pos = button.getBoundingClientRect(); return { top: pos.top + button.offsetHeight, left: pos.left }; }; exports.resolveRealPosition = resolveRealPosition; class MenuModule_Class extends ts_common_1.Module { constructor() { super("MenuModule"); this.showMenu = new thunder_dispatcher_1.ThunderDispatcher("__onMenuDisplay"); this.hideMenu = new thunder_dispatcher_1.ThunderDispatcher("__onMenuHide"); this.show = (model) => { this.showMenu.dispatchUI(model); }; this.hide = (id) => this.hideMenu.dispatchUI(id); } } exports.MenuModule_Class = MenuModule_Class; exports.MenuModule = new MenuModule_Class(); class MenuBuilder { constructor(menu, position, cssContainer) { this.id = (0, ts_common_1.generateHex)(8); this.adapter = menu; this.position = position; this.cssContainer = cssContainer; } show() { const model = { id: this.id, adapter: this.adapter, pos: this.position, onNodeClicked: this.onNodeClicked, onNodeDoubleClicked: this.onNodeDoubleClicked, css: this.cssContainer }; exports.MenuModule.show(model); } ; setId(id) { this.id = id; return this; } setOnClick(func) { this.onNodeClicked = func; return this; } setOnDoubleClick(func) { this.onNodeDoubleClicked = func; return this; } } exports.MenuBuilder = MenuBuilder; //# sourceMappingURL=MenuModule.js.map