UNPKG

@eclipse-glsp/client

Version:

A sprotty-based client for GLSP

84 lines 4.04 kB
"use strict"; /******************************************************************************** * Copyright (c) 2024 EclipseSource and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at * http://www.eclipse.org/legal/epl-2.0. * * This Source Code may also be made available under the following Secondary * Licenses when the conditions for such availability set forth in the Eclipse * Public License v. 2.0 are satisfied: GNU General Public License, version 2 * with the GNU Classpath Exception which is available at * https://www.gnu.org/software/classpath/license.html. * * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 ********************************************************************************/ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GlspCommandPalette = void 0; const sprotty_1 = require("@eclipse-glsp/sprotty"); const inversify_1 = require("inversify"); const ui_extension_1 = require("../../base/ui-extension/ui-extension"); const gmodel_util_1 = require("../../utils/gmodel-util"); let GlspCommandPalette = class GlspCommandPalette extends sprotty_1.CommandPalette { initializeContents(containerElement) { super.initializeContents(containerElement); containerElement.style.position = ''; containerElement.classList.add(ui_extension_1.CSS_UI_EXTENSION_CLASS); } setContainerVisible(visible) { var _a, _b; if (visible) { (_a = this.containerElement) === null || _a === void 0 ? void 0 : _a.classList.remove(ui_extension_1.CSS_HIDDEN_EXTENSION_CLASS); } else { (_b = this.containerElement) === null || _b === void 0 ? void 0 : _b.classList.add(ui_extension_1.CSS_HIDDEN_EXTENSION_CLASS); } } onBeforeShow(containerElement, root, ...selectedElementIds) { let x = this.xOffset; let y = this.yOffset; const selectedElements = (0, gmodel_util_1.getElements)(root.index, selectedElementIds, gmodel_util_1.isSelectableAndBoundsAware); if (selectedElements.length === 1) { const bounds = this.getAbsoluteBounds(selectedElements[0]); x += bounds.x + bounds.width; y += bounds.y; } else { const bounds = this.getAbsoluteBounds(root); x += bounds.x; y += bounds.y; } containerElement.style.left = `${x}px`; containerElement.style.top = `${y}px`; containerElement.style.width = `${this.defaultWidth}px`; } getAbsoluteBounds(element) { let x = 0; let y = 0; let width = 0; let height = 0; const svgElementId = this.domHelper.createUniqueDOMElementId(element); const svgElement = document.getElementById(svgElementId); if (svgElement) { const rect = svgElement.getBoundingClientRect(); const scroll = (0, sprotty_1.getWindowScroll)(); x = rect.left + scroll.x; y = rect.top + scroll.y; width = rect.width; height = rect.height; } return { x, y, width, height }; } }; exports.GlspCommandPalette = GlspCommandPalette; exports.GlspCommandPalette = GlspCommandPalette = __decorate([ (0, inversify_1.injectable)() ], GlspCommandPalette); //# sourceMappingURL=command-palette.js.map