UNPKG

@eclipse-glsp/protocol

Version:

The protocol definition for client-server communication in GLSP

86 lines 3.91 kB
/******************************************************************************** * Copyright (c) 2021-2025 STMicroelectronics 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 ********************************************************************************/ import * as sprotty from 'sprotty-protocol/lib/actions'; import { Action } from './base-protocol'; /** * Triggered when the user changes the selection, e.g. by clicking on a selectable element. The action should trigger a change in the * selected state accordingly, so the elements can be rendered differently. The server can send such an action to the client in order to * change the selection remotely. * The corresponding namespace declares the action kind as constant and offers helper functions for type guard checks * and creating new `SelectActions`. */ export interface SelectAction extends Action, sprotty.SelectAction { kind: typeof SelectAction.KIND; /** * The identifiers of the elements to mark as selected. */ selectedElementsIDs: string[]; /** * The identifiers of the elements to mark as not selected. */ deselectedElementsIDs: string[]; /** * Whether all currently selected elements should be deselected. */ deselectAll?: boolean; } export declare namespace SelectAction { const KIND = "elementSelected"; function is(object: unknown): object is SelectAction; function create(options?: { selectedElementsIDs?: string[]; deselectedElementsIDs?: string[] | boolean; }): SelectAction; /** * Creates a new {@link SelectAction} to add the given elements to the existing selection. * @param selectedElementsIDs The identifiers of the elements to add to the selection. * @returns the corresponding {@link SelectAction} */ function addSelection(selectedElementsIDs: string[]): SelectAction; /** * Creates a new {@link SelectAction} * to remove the given elements from the existing selection. * @param deselectedElementsIDs The identifiers of the elements to remove from the selection. * @return the corresponding {@link SelectAction} */ function removeSelection(deselectedElementsIDs: string[]): SelectAction; /** * Creates a new {@link SelectAction} * to set the selection to the given elements. * This replaces the current selection with the given elements. * @param selectedElementsIDs The identifiers of the elements to select. * @returns the corresponding {@link SelectAction} */ function setSelection(selectedElementsIDs: string[]): SelectAction; } /** * Programmatic action for selecting or deselecting all elements. * The corresponding namespace declares the action kind as constant and offers helper functions for type guard checks * and creating new `SelectAllActions`. */ export interface SelectAllAction extends Action, sprotty.SelectAllAction { kind: typeof SelectAllAction.KIND; /** * If `select` is true, all elements are selected, otherwise they are deselected. */ select: boolean; } export declare namespace SelectAllAction { const KIND = "allSelected"; function is(object: unknown): object is SelectAllAction; function create(select?: boolean): SelectAllAction; } //# sourceMappingURL=element-selection.d.ts.map