mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 20:38:52 +00:00
refactor(editor): separate lit and slot in global (#10666)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { SignalWatcher, WithDisposable } from '@blocksuite/global/utils';
|
||||
import { SignalWatcher, WithDisposable } from '@blocksuite/global/lit';
|
||||
import type { ExtensionType, Store } from '@blocksuite/store';
|
||||
import { html } from 'lit';
|
||||
import { customElement, property } from 'lit/decorators.js';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { IS_ANDROID, IS_MAC } from '@blocksuite/global/env';
|
||||
import { DisposableGroup } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup } from '@blocksuite/global/slot';
|
||||
|
||||
import {
|
||||
type UIEventHandler,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import { DisposableGroup } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup } from '@blocksuite/global/slot';
|
||||
|
||||
import { LifeCycleWatcher } from '../extension/index.js';
|
||||
import { KeymapIdentifier } from '../identifier.js';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { Container } from '@blocksuite/global/di';
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import { DisposableGroup } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup } from '@blocksuite/global/slot';
|
||||
import { Extension } from '@blocksuite/store';
|
||||
|
||||
import type { EventName, UIEventHandler } from '../event/index.js';
|
||||
|
||||
@@ -4,7 +4,8 @@ import {
|
||||
getCommonBoundWithRotation,
|
||||
type IBound,
|
||||
} from '@blocksuite/global/gfx';
|
||||
import { assertType, DisposableGroup } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup } from '@blocksuite/global/slot';
|
||||
import { assertType } from '@blocksuite/global/utils';
|
||||
import type { BlockModel } from '@blocksuite/store';
|
||||
import { Signal } from '@preact/signals-core';
|
||||
import last from 'lodash-es/last';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { DisposableGroup } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup } from '@blocksuite/global/slot';
|
||||
import { Signal } from '@preact/signals-core';
|
||||
|
||||
import type { BlockStdScope } from '../scope/block-std-scope.js';
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Bound } from '@blocksuite/global/gfx';
|
||||
import { assertType, DisposableGroup, Slot } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup, Slot } from '@blocksuite/global/slot';
|
||||
import { assertType } from '@blocksuite/global/utils';
|
||||
import type { Store } from '@blocksuite/store';
|
||||
import { generateKeyBetween } from 'fractional-indexing';
|
||||
import last from 'lodash-es/last';
|
||||
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
type SerializedXYWH,
|
||||
type XYWH,
|
||||
} from '@blocksuite/global/gfx';
|
||||
import { DisposableGroup, Slot } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup, Slot } from '@blocksuite/global/slot';
|
||||
import { createMutex } from 'lib0/mutex';
|
||||
import isEqual from 'lodash-es/isEqual';
|
||||
import * as Y from 'yjs';
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
import {
|
||||
assertType,
|
||||
type Constructor,
|
||||
DisposableGroup,
|
||||
Slot,
|
||||
} from '@blocksuite/global/utils';
|
||||
import { DisposableGroup, Slot } from '@blocksuite/global/slot';
|
||||
import { assertType, type Constructor } from '@blocksuite/global/utils';
|
||||
import type { Boxed } from '@blocksuite/store';
|
||||
import { BlockModel, nanoid } from '@blocksuite/store';
|
||||
import { signal } from '@preact/signals-core';
|
||||
|
||||
@@ -2,7 +2,8 @@ import {
|
||||
getCommonBoundWithRotation,
|
||||
type IPoint,
|
||||
} from '@blocksuite/global/gfx';
|
||||
import { assertType, DisposableGroup, Slot } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup, Slot } from '@blocksuite/global/slot';
|
||||
import { assertType } from '@blocksuite/global/utils';
|
||||
import groupBy from 'lodash-es/groupBy';
|
||||
|
||||
import {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { ServiceIdentifier } from '@blocksuite/global/di';
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import type { IBound, IPoint } from '@blocksuite/global/gfx';
|
||||
import { DisposableGroup, Slot } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup, Slot } from '@blocksuite/global/slot';
|
||||
import { Signal } from '@preact/signals-core';
|
||||
|
||||
import type { PointerEventState } from '../../event/index.js';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { type Container, createIdentifier } from '@blocksuite/global/di';
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import { DisposableGroup } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup } from '@blocksuite/global/slot';
|
||||
import { Extension } from '@blocksuite/store';
|
||||
|
||||
import type { PointerEventState } from '../../event/index.js';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { DisposableGroup } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup } from '@blocksuite/global/slot';
|
||||
|
||||
import { onSurfaceAdded } from '../../utils/gfx.js';
|
||||
import type { GfxController } from '../controller.js';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { type Container, createIdentifier } from '@blocksuite/global/di';
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import type { Bound, IVec } from '@blocksuite/global/gfx';
|
||||
import { DisposableGroup } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup } from '@blocksuite/global/slot';
|
||||
import type { Extension } from '@blocksuite/store';
|
||||
|
||||
import type { PointerEventState } from '../../event/index.js';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { WithDisposable } from '@blocksuite/global/utils';
|
||||
import { WithDisposable } from '@blocksuite/global/lit';
|
||||
import { css, html } from 'lit';
|
||||
import { property } from 'lit/decorators.js';
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
type IVec,
|
||||
Vec,
|
||||
} from '@blocksuite/global/gfx';
|
||||
import { Slot } from '@blocksuite/global/utils';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
import { signal } from '@preact/signals-core';
|
||||
import debounce from 'lodash-es/debounce';
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Slot } from '@blocksuite/global/utils';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
|
||||
import type { BlockService } from '../extension/service.js';
|
||||
import type { BlockComponent, WidgetComponent } from '../view/index.js';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import { SignalWatcher, WithDisposable } from '@blocksuite/global/utils';
|
||||
import { SignalWatcher, WithDisposable } from '@blocksuite/global/lit';
|
||||
import { type BlockModel, type BlockViewType, Store } from '@blocksuite/store';
|
||||
import { consume, provide } from '@lit/context';
|
||||
import { computed } from '@preact/signals-core';
|
||||
|
||||
@@ -3,7 +3,8 @@ import {
|
||||
ErrorCode,
|
||||
handleError,
|
||||
} from '@blocksuite/global/exceptions';
|
||||
import { SignalWatcher, Slot, WithDisposable } from '@blocksuite/global/utils';
|
||||
import { SignalWatcher, WithDisposable } from '@blocksuite/global/lit';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
import {
|
||||
type BlockModel,
|
||||
Store,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { SignalWatcher, WithDisposable } from '@blocksuite/global/utils';
|
||||
import { SignalWatcher, WithDisposable } from '@blocksuite/global/lit';
|
||||
import type { BlockModel, Store } from '@blocksuite/store';
|
||||
import { consume } from '@lit/context';
|
||||
import { LitElement } from 'lit';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Slot } from '@blocksuite/global/utils';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
|
||||
import { LifeCycleWatcher } from '../extension/index.js';
|
||||
import type { BlockComponent, WidgetComponent } from './element/index.js';
|
||||
|
||||
@@ -16,7 +16,9 @@
|
||||
"./exceptions": "./src/exceptions/index.ts",
|
||||
"./di": "./src/di/index.ts",
|
||||
"./types": "./src/types/index.ts",
|
||||
"./gfx": "./src/gfx/index.ts"
|
||||
"./gfx": "./src/gfx/index.ts",
|
||||
"./slot": "./src/slot/index.ts",
|
||||
"./lit": "./src/lit/index.ts"
|
||||
},
|
||||
"typesVersions": {
|
||||
"*": {
|
||||
@@ -37,6 +39,12 @@
|
||||
],
|
||||
"gfx": [
|
||||
"dist/gfx/index.d.ts"
|
||||
],
|
||||
"slot": [
|
||||
"dist/slot/index.d.ts"
|
||||
],
|
||||
"lit": [
|
||||
"dist/lit/index.d.ts"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, test, vi } from 'vitest';
|
||||
|
||||
import { Slot } from '../utils/slot.js';
|
||||
import { Slot } from '../slot/slot.js';
|
||||
|
||||
describe('slot', () => {
|
||||
test('init', () => {
|
||||
|
||||
2
blocksuite/framework/global/src/lit/index.ts
Normal file
2
blocksuite/framework/global/src/lit/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * from './signal-watcher.js';
|
||||
export * from './with-disposable.js';
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { LitElement } from 'lit';
|
||||
|
||||
import { DisposableGroup } from './disposable.js';
|
||||
import type { Constructor } from './types.js';
|
||||
import { DisposableGroup } from '../slot/disposable.js';
|
||||
import type { Constructor } from '../utils/types.js';
|
||||
|
||||
// See https://lit.dev/docs/composition/mixins/#mixins-in-typescript
|
||||
// This definition should be exported, see https://github.com/microsoft/TypeScript/issues/30355#issuecomment-839834550
|
||||
2
blocksuite/framework/global/src/slot/index.ts
Normal file
2
blocksuite/framework/global/src/slot/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * from './disposable.js';
|
||||
export * from './slot.js';
|
||||
@@ -1,8 +1,4 @@
|
||||
export * from './crypto.js';
|
||||
export * from './disposable.js';
|
||||
export * from './function.js';
|
||||
export * from './logger.js';
|
||||
export * from './signal-watcher.js';
|
||||
export * from './slot.js';
|
||||
export * from './types.js';
|
||||
export * from './with-disposable.js';
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import { DisposableGroup, SignalWatcher } from '@blocksuite/global/utils';
|
||||
import { SignalWatcher } from '@blocksuite/global/lit';
|
||||
import { DisposableGroup } from '@blocksuite/global/slot';
|
||||
import { effect, signal } from '@preact/signals-core';
|
||||
import { html, LitElement } from 'lit';
|
||||
import { property } from 'lit/decorators.js';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import { DisposableGroup, Slot } from '@blocksuite/global/utils';
|
||||
import { DisposableGroup, Slot } from '@blocksuite/global/slot';
|
||||
import { type Signal, signal } from '@preact/signals-core';
|
||||
import { nothing, render, type TemplateResult } from 'lit';
|
||||
import type * as Y from 'yjs';
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
// checkout https://vitest.dev/guide/debugging.html for debugging tests
|
||||
|
||||
import type { Slot } from '@blocksuite/global/utils';
|
||||
import type { Slot } from '@blocksuite/global/slot';
|
||||
import { assert, beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import { applyUpdate, type Doc, encodeStateAsUpdate } from 'yjs';
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Slot } from '@blocksuite/global/utils';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
import { describe, expect, test } from 'vitest';
|
||||
import * as Y from 'yjs';
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import { Slot } from '@blocksuite/global/utils';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
import { computed, signal } from '@preact/signals-core';
|
||||
|
||||
import type { Store } from '../../model';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { type Disposable, Slot } from '@blocksuite/global/utils';
|
||||
import { type Disposable, Slot } from '@blocksuite/global/slot';
|
||||
import { computed, type Signal, signal } from '@preact/signals-core';
|
||||
|
||||
import type { Text } from '../../reactive/index.js';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { Slot } from '@blocksuite/global/utils';
|
||||
import type { Slot } from '@blocksuite/global/slot';
|
||||
import type * as Y from 'yjs';
|
||||
|
||||
import type { AwarenessStore } from '../yjs/awareness.js';
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Container, type ServiceProvider } from '@blocksuite/global/di';
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import { type Disposable, Slot } from '@blocksuite/global/utils';
|
||||
import type { Disposable } from '@blocksuite/global/slot';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
import { computed, signal } from '@preact/signals-core';
|
||||
|
||||
import type { ExtensionType } from '../../extension/extension.js';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { Slot } from '@blocksuite/global/utils';
|
||||
import type { Slot } from '@blocksuite/global/slot';
|
||||
|
||||
export type Tag = {
|
||||
id: string;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { Slot } from '@blocksuite/global/utils';
|
||||
import type { Slot } from '@blocksuite/global/slot';
|
||||
import type { BlobEngine } from '@blocksuite/sync';
|
||||
import type { Awareness } from 'y-protocols/awareness.js';
|
||||
import type * as Y from 'yjs';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import { type Slot } from '@blocksuite/global/utils';
|
||||
import type { Slot } from '@blocksuite/global/slot';
|
||||
import { signal } from '@preact/signals-core';
|
||||
import {
|
||||
Array as YArray,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Slot } from '@blocksuite/global/utils';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
import { signal } from '@preact/signals-core';
|
||||
import * as Y from 'yjs';
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Slot } from '@blocksuite/global/utils';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
import type * as Y from 'yjs';
|
||||
|
||||
import type {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import { NoopLogger, Slot } from '@blocksuite/global/utils';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
import { NoopLogger } from '@blocksuite/global/utils';
|
||||
import {
|
||||
AwarenessEngine,
|
||||
type AwarenessSource,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { Slot } from '@blocksuite/global/utils';
|
||||
import type { Slot } from '@blocksuite/global/slot';
|
||||
|
||||
import type { BlockModel, DraftModel, Store } from '../model/index.js';
|
||||
import type { AssetsManager } from './assets.js';
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
|
||||
import { nextTick, Slot } from '@blocksuite/global/utils';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
import { nextTick } from '@blocksuite/global/utils';
|
||||
|
||||
import {
|
||||
BlockModel,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { type Logger, Slot } from '@blocksuite/global/utils';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
import type { Logger } from '@blocksuite/global/utils';
|
||||
import type { Doc } from 'yjs';
|
||||
|
||||
import { SharedPriorityTarget } from '../utils/async-queue.js';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { type Logger, Slot } from '@blocksuite/global/utils';
|
||||
import { Slot } from '@blocksuite/global/slot';
|
||||
import type { Logger } from '@blocksuite/global/utils';
|
||||
import isEqual from 'lodash-es/isEqual';
|
||||
import type { Doc } from 'yjs';
|
||||
import {
|
||||
|
||||
Reference in New Issue
Block a user