UNPKG

@eclipse-glsp/client

Version:

A sprotty-based client for GLSP

124 lines 6.17 kB
"use strict"; 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; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.CursorCSS = exports.CSS_HIDDEN = exports.CSS_GHOST_ELEMENT = exports.ModifyCssFeedbackCommand = exports.ModifyCSSFeedbackAction = void 0; exports.cursorFeedbackAction = cursorFeedbackAction; exports.applyCssClasses = applyCssClasses; exports.deleteCssClasses = deleteCssClasses; exports.toggleCssClasses = toggleCssClasses; /******************************************************************************** * Copyright (c) 2019-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 ********************************************************************************/ const sprotty_1 = require("@eclipse-glsp/sprotty"); const inversify_1 = require("inversify"); const gmodel_util_1 = require("../../utils/gmodel-util"); const feedback_command_1 = require("./feedback-command"); var ModifyCSSFeedbackAction; (function (ModifyCSSFeedbackAction) { ModifyCSSFeedbackAction.KIND = 'modifyCSSFeedback'; function is(object) { return sprotty_1.Action.hasKind(object, ModifyCSSFeedbackAction.KIND) && (0, sprotty_1.hasArrayProp)(object, 'elementIds'); } ModifyCSSFeedbackAction.is = is; function create(options) { const { elements, ...rest } = options; const elementIds = elements ? elements.map(element => (typeof element === 'string' ? element : element.id)) : undefined; return { kind: ModifyCSSFeedbackAction.KIND, elementIds, ...rest }; } ModifyCSSFeedbackAction.create = create; })(ModifyCSSFeedbackAction || (exports.ModifyCSSFeedbackAction = ModifyCSSFeedbackAction = {})); let ModifyCssFeedbackCommand = class ModifyCssFeedbackCommand extends feedback_command_1.FeedbackCommand { constructor(action) { super(); this.action = action; } execute(context) { const elements = this.action.elementIds ? (0, gmodel_util_1.getElements)(context.root.index, this.action.elementIds) : [context.root]; elements.forEach(e => { if (this.action.remove) { (0, gmodel_util_1.removeCssClasses)(e, this.action.remove); } if (this.action.add) { (0, gmodel_util_1.addCssClasses)(e, this.action.add); } }); return context.root; } }; exports.ModifyCssFeedbackCommand = ModifyCssFeedbackCommand; ModifyCssFeedbackCommand.KIND = ModifyCSSFeedbackAction.KIND; exports.ModifyCssFeedbackCommand = ModifyCssFeedbackCommand = __decorate([ (0, inversify_1.injectable)(), __param(0, (0, inversify_1.inject)(sprotty_1.TYPES.Action)), __metadata("design:paramtypes", [Object]) ], ModifyCssFeedbackCommand); exports.CSS_GHOST_ELEMENT = 'ghost-element'; exports.CSS_HIDDEN = 'hidden'; var CursorCSS; (function (CursorCSS) { CursorCSS["DEFAULT"] = "default-mode"; CursorCSS["OVERLAP_FORBIDDEN"] = "overlap-forbidden-mode"; CursorCSS["NODE_CREATION"] = "node-creation-mode"; CursorCSS["EDGE_CREATION_SOURCE"] = "edge-creation-select-source-mode"; CursorCSS["EDGE_CREATION_TARGET"] = "edge-creation-select-target-mode"; CursorCSS["EDGE_RECONNECT"] = "edge-reconnect-select-target-mode"; CursorCSS["EDGE_CHECK_PENDING"] = "edge-check-pending-mode"; CursorCSS["OPERATION_NOT_ALLOWED"] = "edge-modification-not-allowed-mode"; CursorCSS["ELEMENT_DELETION"] = "element-deletion-mode"; CursorCSS["RESIZE_NESW"] = "resize-nesw-mode"; CursorCSS["RESIZE_NWSE"] = "resize-nwse-mode"; CursorCSS["RESIZE_NW"] = "resize-nw-mode"; CursorCSS["RESIZE_N"] = "resize-n-mode"; CursorCSS["RESIZE_NE"] = "resize-ne-mode"; CursorCSS["RESIZE_E"] = "resize-e-mode"; CursorCSS["RESIZE_SE"] = "resize-se-mode"; CursorCSS["RESIZE_S"] = "resize-s-mode"; CursorCSS["RESIZE_SW"] = "resize-sw-mode"; CursorCSS["RESIZE_W"] = "resize-w-mode"; CursorCSS["MOVE"] = "move-mode"; CursorCSS["MARQUEE"] = "marquee-mode"; })(CursorCSS || (exports.CursorCSS = CursorCSS = {})); function cursorFeedbackAction(cursorCss) { const add = []; if (cursorCss) { add.push(cursorCss); } return ModifyCSSFeedbackAction.create({ add, remove: Object.values(CursorCSS) }); } function applyCssClasses(element, ...add) { return ModifyCSSFeedbackAction.create({ elements: [element], add }); } function deleteCssClasses(element, ...remove) { return ModifyCSSFeedbackAction.create({ elements: [element], remove }); } function toggleCssClasses(element, add, ...cssClasses) { return add ? applyCssClasses(element, ...cssClasses) : deleteCssClasses(element, ...cssClasses); } //# sourceMappingURL=css-feedback.js.map