Saltar al contenido principal
La API de Selection Toolbox permite a las extensiones agregar botones de acción personalizados que aparecen al seleccionar nodos en el lienzo. Esto brinda acceso rápido a comandos contextuales para los elementos seleccionados (nodos, grupos, etc.).

Uso básico

Para agregar comandos al cuadro de herramientas de selección, tu extensión necesita:
  1. Definir los comandos con la interfaz de comandos estándar
  2. Implementar el método getSelectionToolboxCommands para especificar qué comandos aparecen en el cuadro de herramientas
Nota: el método getSelectionToolboxCommands se llama para cada elemento del conjunto de selección cada vez que haces una nueva selección.

Definición de comandos

Los comandos del cuadro de herramientas de selección usan la interfaz de comandos estándar de ComfyUI:
La function recibe el elemento o los elementos seleccionados como parámetro, lo que te permite realizar acciones sobre la selección actual.

Opciones de iconos

Los botones del cuadro de herramientas de selección usan clases de iconos de Lucide con el formato icon-[lucide--<icon-name>] (por ejemplo, icon-[lucide--star]). El frontend genera estas clases al compilarse, así que solo están disponibles los iconos de Lucide que usa el propio frontend. Si un icono no se muestra, elige otro o define tu propia clase de icono en una hoja de estilos que cargue tu extensión. Las clases de PrimeIcons (pi pi-*) y de Material Design Icons (mdi mdi-*) todavía se muestran por ahora, pero se están retirando gradualmente. No las uses en código nuevo. Consulta la migración por la eliminación de PrimeVue.

Visibilidad dinámica de comandos

Cada vez que cambia la selección se llama al método getSelectionToolboxCommands, lo que te permite mostrar comandos diferentes según lo que esté seleccionado:

Trabajar con elementos seleccionados

Accede a la información sobre los elementos seleccionados a través del objeto canvas de la aplicación. La propiedad selectedItems es un Set que incluye nodos, grupos y otros elementos del lienzo:

Ejemplo completo

Aquí tienes un ejemplo sencillo que muestra varias funciones del cuadro de herramientas de selección:

Notas

  • El cuadro de herramientas de selección debe estar habilitado en las configuraciones: Comfy.Canvas.SelectionToolbox
  • Los comandos deben definirse en el arreglo commands antes de referenciarlos en getSelectionToolboxCommands
  • El cuadro de herramientas se actualiza automáticamente cuando cambia la selección
  • El método getSelectionToolboxCommands se llama para cada elemento del conjunto de selección cada vez que se realiza una nueva selección
  • Usa app.canvas.selectedItems (un Set) para acceder a todos los elementos seleccionados, incluidos nodos, grupos y otros elementos del lienzo
  • Por compatibilidad con versiones anteriores, app.canvas.selected_nodes todavía existe, pero solo contiene nodos