refactor(editor): move mindmap transform to its package (#11115)

This commit is contained in:
Saul-Mirone
2025-03-24 05:19:30 +00:00
parent 83a2e3bcba
commit b8df65a2b0
13 changed files with 43 additions and 36 deletions

View File

@@ -0,0 +1,39 @@
import { ConnectorElementModel } from '@blocksuite/affine-model';
import {
type DragExtensionInitializeContext,
TransformExtension,
} from '@blocksuite/block-std/gfx';
export class ConnectorFilter extends TransformExtension {
static override key = 'connector-filter';
override onDragInitialize(context: DragExtensionInitializeContext) {
let hasConnectorFlag = false;
const elementSet = new Set(context.elements.map(elem => elem.id));
const elements = context.elements.filter(elem => {
if (elem instanceof ConnectorElementModel) {
const sourceElemNotFound =
elem.source.id && !elementSet.has(elem.source.id);
const targetElemNotFound =
elem.target.id && !elementSet.has(elem.target.id);
// If either source or target element is not found, then remove the connector
if (sourceElemNotFound || targetElemNotFound) {
return false;
}
hasConnectorFlag = true;
return true;
}
return true;
});
if (hasConnectorFlag) {
// connector needs to be updated first
elements.sort((a, _) => (a instanceof ConnectorElementModel ? -1 : 1));
}
return {};
}
}

View File

@@ -0,0 +1 @@
export * from './connector-filter';

View File

@@ -1,4 +1,5 @@
export * from './connector-tool';
export * from './element-transform';
export * from './text';
export * from './toolbar/config';
export * from './toolbar/quick-tool';