mirror of
https://gitee.com/ByteDance/flowgram.ai.git
synced 2025-07-07 17:43:29 +08:00
* feat(demo): create group tool * feat(demo): create group shortcut * refactor(core): split group service, controller, utils files * feat(history): free history add group operations * feat(demo): group node render * feat(demo): group node registry * refactor(stack): remove layer computing config * feat(stack): line stackIndex cannot be recalculated by default * feat(demo): group title & color palette acess form * feat(demo): ungroup button & shortcut * feat(demo): create group & ungroup operation register to free history service * refactor(group): group shortcuts move to group-plugin * refactor(group): group node render move to group-plugin * fix(group): undo/redo of create node or ungroup not work * perf(history): free history remove async operation * feat(group): trigger select box inside group * fix(group): container inside group * fix(group): auto layout should not be affected by group node * feat(container): support multi-layer nested containers * fix(group): group css variables overwrite each other * fix(container): node move in or out group shouldn't clear lines * feat(demo): node should follow mouse after move out container button clicked * feat(container): disable group move to non-group container node * fix(container): cross-level node moving causing coord offset * feat(demo): comment node support more button * fix(demo): comment in container fromJSON * feat(container): node into container show move out tips * feat(group): node into group show move out tips * feat(group): delete group when blocks is empty * refactor(group): createFreeGroupPlugin move to container-plugin * refactor(demo): replace disablePorts with defaultPorts * fix(demo): react warning * refactor(group): group plugin built-in GroupNodeRegistry * refactor(group): create free-group-plugin * fix(ci): lock & ts-check & test errors
32 lines
1001 B
TypeScript
32 lines
1001 B
TypeScript
import { ShortcutsHandler } from '@flowgram.ai/shortcuts-plugin';
|
|
import { WorkflowSelectService } from '@flowgram.ai/free-layout-core';
|
|
import { PluginContext } from '@flowgram.ai/core';
|
|
|
|
import { WorkflowGroupService } from '../workflow-group-service';
|
|
import { WorkflowGroupCommand } from '../constant';
|
|
|
|
export class GroupShortcut implements ShortcutsHandler {
|
|
public commandId = WorkflowGroupCommand.Group;
|
|
|
|
public commandDetail: ShortcutsHandler['commandDetail'] = {
|
|
label: 'Group',
|
|
};
|
|
|
|
public shortcuts = ['meta g', 'ctrl g'];
|
|
|
|
private selectService: WorkflowSelectService;
|
|
|
|
private groupService: WorkflowGroupService;
|
|
|
|
constructor(context: PluginContext) {
|
|
this.selectService = context.get(WorkflowSelectService);
|
|
this.groupService = context.get(WorkflowGroupService);
|
|
this.execute = this.execute.bind(this);
|
|
}
|
|
|
|
public async execute(): Promise<void> {
|
|
this.groupService.createGroup(this.selectService.selectedNodes);
|
|
this.selectService.clear();
|
|
}
|
|
}
|