Files
AFFiNE-Mirror/blocksuite/framework/std/src/gfx/index.ts
DarkSky 25227a09f7 feat: improve grouping perf in edgeless (#14442)
fix #14433 

#### PR Dependency Tree


* **PR #14442** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Level-of-detail thumbnails for large images.
  * Adaptive pacing for snapping, distribution and other alignment work.
  * RAF coalescer utility to batch high-frequency updates.
  * Operation timing utility to measure synchronous work.

* **Improvements**
* Batch group/ungroup reparenting that preserves element order and
selection.
  * Coalesced panning and drag updates to reduce jitter.
* Connector/group indexing for more reliable updates, deletions and
sync.
  * Throttled viewport refresh behavior.

* **Documentation**
  * Docs added for RAF coalescer and measureOperation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-15 03:17:22 +08:00

122 lines
3.3 KiB
TypeScript

export { generateKeyBetweenV2 } from '../utils/fractional-indexing.js';
export {
compare as compareLayer,
renderableInEdgeless,
SortOrder,
} from '../utils/layer.js';
export {
batchAddChildren,
batchRemoveChildren,
canSafeAddToContainer,
descendantElementsImpl,
getTopElements,
hasDescendantElementImpl,
} from '../utils/tree.js';
export { GfxController } from './controller.js';
export type { CursorType, StandardCursor } from './cursor.js';
export { GfxExtension, GfxExtensionIdentifier } from './extension.js';
export { GridManager } from './grid.js';
export { GfxControllerIdentifier } from './identifiers.js';
export type {
BoxSelectionContext,
DragEndContext,
DragExtensionInitializeContext,
DragInitializationOption,
DragMoveContext,
DragStartContext,
ExtensionDragEndContext,
ExtensionDragMoveContext,
ExtensionDragStartContext,
GfxInteractivityContext,
GfxViewInteractionConfig,
ResizeConstraint,
ResizeEndContext,
ResizeHandle,
ResizeMoveContext,
ResizeStartContext,
RotateConstraint,
RotateEndContext,
RotateMoveContext,
RotateStartContext,
SelectContext,
} from './interactivity/index.js';
export {
GfxViewEventManager,
GfxViewInteractionExtension,
InteractivityExtension,
InteractivityIdentifier,
InteractivityManager,
} from './interactivity/index.js';
export { LayerManager, type ReorderingDirection } from './layer.js';
export type {
GfxCompatibleInterface,
GfxElementGeometry,
GfxGroupCompatibleInterface,
PointTestOptions,
} from './model/base.js';
export {
gfxGroupCompatibleSymbol,
isGfxGroupCompatibleModel,
} from './model/base.js';
export {
GfxBlockElementModel,
type GfxCommonBlockProps,
GfxCompatibleBlockModel as GfxCompatible,
type GfxCompatibleProps,
} from './model/gfx-block-model.js';
export { type GfxModel, isPrimitiveModel } from './model/model.js';
export {
convert,
convertProps,
derive,
field,
getDerivedProps,
getFieldPropsSet,
initializeObservers,
initializeWatchers,
local,
observe,
updateDerivedProps,
watch,
} from './model/surface/decorators/index.js';
export {
type BaseElementProps,
GfxGroupLikeElementModel,
GfxPrimitiveElementModel,
type SerializedElement,
} from './model/surface/element-model.js';
export {
GfxLocalElementModel,
prop,
} from './model/surface/local-element-model.js';
export {
SURFACE_TEXT_UNIQ_IDENTIFIER,
SURFACE_YMAP_UNIQ_IDENTIFIER,
SurfaceBlockModel,
type SurfaceBlockProps,
type SurfaceMiddleware,
} from './model/surface/surface-model.js';
export { measureOperation } from './perf.js';
export { createRafCoalescer, type RafCoalescer } from './raf-coalescer.js';
export { GfxSelectionManager } from './selection.js';
export {
SurfaceMiddlewareBuilder,
SurfaceMiddlewareExtension,
} from './surface-middleware.js';
export {
BaseTool,
type ToolOptions,
type ToolOptionWithType,
type ToolType,
} from './tool/tool.js';
export { MouseButton, ToolController } from './tool/tool-controller.js';
export {
type EventsHandlerMap,
GfxElementModelView,
type SupportedEvent,
} from './view/view.js';
export { ViewManager } from './view/view-manager.js';
export * from './viewport.js';
export { GfxViewportElement } from './viewport-element.js';
export { generateKeyBetween, generateNKeysBetween } from 'fractional-indexing';