import { EdgelessAutoCompletePanel } from './edgeless/components/auto-complete/auto-complete-panel.js'; import { EdgelessAutoComplete } from './edgeless/components/auto-complete/edgeless-auto-complete.js'; import { NOTE_SLICER_WIDGET, NoteSlicer, } from './edgeless/components/note-slicer/index.js'; import { EDGELESS_DRAGGING_AREA_WIDGET, EdgelessDraggingAreaRectWidget, } from './edgeless/components/rects/edgeless-dragging-area-rect.js'; import { EDGELESS_SELECTED_RECT_WIDGET, EdgelessSelectedRectWidget, } from './edgeless/components/rects/edgeless-selected-rect.js'; import { EdgelessRootBlockComponent, EdgelessRootPreviewBlockComponent, PageRootBlockComponent, PreviewRootBlockComponent, } from './index.js'; export function effects() { // Register components by category registerRootComponents(); registerMiscComponents(); } function registerRootComponents() { customElements.define('affine-page-root', PageRootBlockComponent); customElements.define('affine-preview-root', PreviewRootBlockComponent); customElements.define('affine-edgeless-root', EdgelessRootBlockComponent); customElements.define( 'affine-edgeless-root-preview', EdgelessRootPreviewBlockComponent ); } function registerMiscComponents() { // Auto-complete components customElements.define( 'edgeless-auto-complete-panel', EdgelessAutoCompletePanel ); customElements.define('edgeless-auto-complete', EdgelessAutoComplete); // Note and template components customElements.define(NOTE_SLICER_WIDGET, NoteSlicer); // Dragging area components customElements.define( EDGELESS_DRAGGING_AREA_WIDGET, EdgelessDraggingAreaRectWidget ); customElements.define( EDGELESS_SELECTED_RECT_WIDGET, EdgelessSelectedRectWidget ); } declare global { interface HTMLElementTagNameMap { 'affine-edgeless-root': EdgelessRootBlockComponent; 'affine-edgeless-root-preview': EdgelessRootPreviewBlockComponent; 'edgeless-auto-complete-panel': EdgelessAutoCompletePanel; 'edgeless-auto-complete': EdgelessAutoComplete; 'note-slicer': NoteSlicer; 'edgeless-dragging-area-rect': EdgelessDraggingAreaRectWidget; 'edgeless-selected-rect': EdgelessSelectedRectWidget; 'affine-page-root': PageRootBlockComponent; } }