/** * @license * Copyright 2020 Google LLC * SPDX-License-Identifier: Apache-2.0 */ /** * @fileoverview The interface for a selectable toolbox item. */ /** * The interface for a selectable toolbox item. * @namespace Blockly.ISelectableToolboxItem */ import * as goog from '../../closure/goog/goog.js'; import type {FlyoutItemInfoArray} from '../utils/toolbox'; goog.declareModuleId('Blockly.ISelectableToolboxItem'); /* eslint-disable-next-line no-unused-vars */ // Unused import preserved for side-effects. Remove if unneeded. // import '../utils/toolbox.js'; import type {IToolboxItem} from './i_toolbox_item.js'; /** * Interface for an item in the toolbox that can be selected. * @alias Blockly.ISelectableToolboxItem */ export interface ISelectableToolboxItem extends IToolboxItem { /** * Gets the name of the toolbox item. Used for emitting events. * @return The name of the toolbox item. */ getName(): string; /** * Gets the contents of the toolbox item. These are items that are meant to be * displayed in the flyout. * @return The definition of items to be displayed in the flyout. */ getContents(): FlyoutItemInfoArray|string; /** * Sets the current toolbox item as selected. * @param _isSelected True if this category is selected, false otherwise. */ setSelected(_isSelected: boolean): void; /** * Gets the HTML element that is clickable. * The parent toolbox element receives clicks. The parent toolbox will add an * ID to this element so it can pass the onClick event to the correct * toolboxItem. * @return The HTML element that receives clicks. */ getClickTarget(): Element; /** * Handles when the toolbox item is clicked. * @param _e Click event to handle. */ onClick(_e: Event): void; }