chore: merge blocksuite source code (#9213)

This commit is contained in:
Mirone
2024-12-20 15:38:06 +08:00
committed by GitHub
parent 2c9ef916f4
commit 30200ff86d
2031 changed files with 238888 additions and 229 deletions
@@ -0,0 +1,39 @@
import type { RootBlockModel } from '@blocksuite/affine-model';
import { BLOCK_ID_ATTR, type BlockComponent } from '@blocksuite/block-std';
import type { BlockModel } from '@blocksuite/store';
const ATTR_SELECTOR = `[${BLOCK_ID_ATTR}]`;
export function getModelByElement<Model extends BlockModel>(
element: Element
): Model | null {
const closestBlock = element.closest<BlockComponent>(ATTR_SELECTOR);
if (!closestBlock) {
return null;
}
return closestBlock.model as Model;
}
export function getRootByElement(
element: Element
): BlockComponent<RootBlockModel> | null {
const pageRoot = getPageRootByElement(element);
if (pageRoot) return pageRoot;
const edgelessRoot = getEdgelessRootByElement(element);
if (edgelessRoot) return edgelessRoot;
return null;
}
export function getPageRootByElement(
element: Element
): BlockComponent<RootBlockModel> | null {
return element.closest('affine-page-root');
}
export function getEdgelessRootByElement(
element: Element
): BlockComponent<RootBlockModel> | null {
return element.closest('affine-edgeless-root');
}