@@ -112,7 +112,9 @@
|
|||||||
"./blocks/edgeless-text": "./src/blocks/edgeless-text/index.ts",
|
"./blocks/edgeless-text": "./src/blocks/edgeless-text/index.ts",
|
||||||
"./blocks/edgeless-text/store": "./src/blocks/edgeless-text/store.ts",
|
"./blocks/edgeless-text/store": "./src/blocks/edgeless-text/store.ts",
|
||||||
"./blocks/edgeless-text/view": "./src/blocks/edgeless-text/view.ts",
|
"./blocks/edgeless-text/view": "./src/blocks/edgeless-text/view.ts",
|
||||||
"./blocks/embed": "./src/blocks/embed.ts",
|
"./blocks/embed": "./src/blocks/embed/index.ts",
|
||||||
|
"./blocks/embed/store": "./src/blocks/embed/store.ts",
|
||||||
|
"./blocks/embed/view": "./src/blocks/embed/view.ts",
|
||||||
"./blocks/frame": "./src/blocks/frame.ts",
|
"./blocks/frame": "./src/blocks/frame.ts",
|
||||||
"./blocks/image": "./src/blocks/image.ts",
|
"./blocks/image": "./src/blocks/image.ts",
|
||||||
"./blocks/latex": "./src/blocks/latex.ts",
|
"./blocks/latex": "./src/blocks/latex.ts",
|
||||||
|
|||||||
1
blocksuite/affine/all/src/blocks/embed/store.ts
Normal file
1
blocksuite/affine/all/src/blocks/embed/store.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export * from '@blocksuite/affine-block-embed/store';
|
||||||
1
blocksuite/affine/all/src/blocks/embed/view.ts
Normal file
1
blocksuite/affine/all/src/blocks/embed/view.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export * from '@blocksuite/affine-block-embed/view';
|
||||||
@@ -12,6 +12,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@blocksuite/affine-block-surface": "workspace:*",
|
"@blocksuite/affine-block-surface": "workspace:*",
|
||||||
"@blocksuite/affine-components": "workspace:*",
|
"@blocksuite/affine-components": "workspace:*",
|
||||||
|
"@blocksuite/affine-ext-loader": "workspace:*",
|
||||||
"@blocksuite/affine-inline-reference": "workspace:*",
|
"@blocksuite/affine-inline-reference": "workspace:*",
|
||||||
"@blocksuite/affine-model": "workspace:*",
|
"@blocksuite/affine-model": "workspace:*",
|
||||||
"@blocksuite/affine-rich-text": "workspace:*",
|
"@blocksuite/affine-rich-text": "workspace:*",
|
||||||
@@ -38,7 +39,9 @@
|
|||||||
},
|
},
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.ts",
|
".": "./src/index.ts",
|
||||||
"./effects": "./src/effects.ts"
|
"./effects": "./src/effects.ts",
|
||||||
|
"./view": "./src/view.ts",
|
||||||
|
"./store": "./src/store.ts"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"src",
|
"src",
|
||||||
|
|||||||
@@ -24,3 +24,15 @@ export const EmbedFigmaBlockSpec: ExtensionType[] = [
|
|||||||
createBuiltinToolbarConfigExtension(flavour, EmbedFigmaBlockComponent),
|
createBuiltinToolbarConfigExtension(flavour, EmbedFigmaBlockComponent),
|
||||||
SlashMenuConfigExtension(flavour, embedFigmaSlashMenuConfig),
|
SlashMenuConfigExtension(flavour, embedFigmaSlashMenuConfig),
|
||||||
].flat();
|
].flat();
|
||||||
|
|
||||||
|
export const EmbedFigmaViewExtensions: ExtensionType[] = [
|
||||||
|
FlavourExtension(flavour),
|
||||||
|
BlockViewExtension(flavour, model => {
|
||||||
|
return model.parent?.flavour === 'affine:surface'
|
||||||
|
? literal`affine-embed-edgeless-figma-block`
|
||||||
|
: literal`affine-embed-figma-block`;
|
||||||
|
}),
|
||||||
|
EmbedFigmaBlockOptionConfig,
|
||||||
|
createBuiltinToolbarConfigExtension(flavour, EmbedFigmaBlockComponent),
|
||||||
|
SlashMenuConfigExtension(flavour, embedFigmaSlashMenuConfig),
|
||||||
|
].flat();
|
||||||
|
|||||||
@@ -28,3 +28,16 @@ export const EmbedGithubBlockSpec: ExtensionType[] = [
|
|||||||
createBuiltinToolbarConfigExtension(flavour, EmbedGithubBlockComponent),
|
createBuiltinToolbarConfigExtension(flavour, EmbedGithubBlockComponent),
|
||||||
SlashMenuConfigExtension(flavour, embedGithubSlashMenuConfig),
|
SlashMenuConfigExtension(flavour, embedGithubSlashMenuConfig),
|
||||||
].flat();
|
].flat();
|
||||||
|
|
||||||
|
export const EmbedGithubViewExtensions: ExtensionType[] = [
|
||||||
|
FlavourExtension(flavour),
|
||||||
|
EmbedGithubBlockService,
|
||||||
|
BlockViewExtension(flavour, model => {
|
||||||
|
return model.parent?.flavour === 'affine:surface'
|
||||||
|
? literal`affine-embed-edgeless-github-block`
|
||||||
|
: literal`affine-embed-github-block`;
|
||||||
|
}),
|
||||||
|
EmbedGithubBlockOptionConfig,
|
||||||
|
createBuiltinToolbarConfigExtension(flavour, EmbedGithubBlockComponent),
|
||||||
|
SlashMenuConfigExtension(flavour, embedGithubSlashMenuConfig),
|
||||||
|
].flat();
|
||||||
|
|||||||
@@ -15,3 +15,12 @@ export const EmbedHtmlBlockSpec: ExtensionType[] = [
|
|||||||
}),
|
}),
|
||||||
createBuiltinToolbarConfigExtension(flavour),
|
createBuiltinToolbarConfigExtension(flavour),
|
||||||
].flat();
|
].flat();
|
||||||
|
|
||||||
|
export const EmbedHtmlViewExtensions: ExtensionType[] = [
|
||||||
|
BlockViewExtension(flavour, model => {
|
||||||
|
return model.parent?.flavour === 'affine:surface'
|
||||||
|
? literal`affine-embed-edgeless-html-block`
|
||||||
|
: literal`affine-embed-html-block`;
|
||||||
|
}),
|
||||||
|
createBuiltinToolbarConfigExtension(flavour),
|
||||||
|
].flat();
|
||||||
|
|||||||
@@ -21,3 +21,14 @@ export const EmbedIframeBlockSpec: ExtensionType[] = [
|
|||||||
createBuiltinToolbarConfigExtension(flavour),
|
createBuiltinToolbarConfigExtension(flavour),
|
||||||
SlashMenuConfigExtension(flavour, embedIframeSlashMenuConfig),
|
SlashMenuConfigExtension(flavour, embedIframeSlashMenuConfig),
|
||||||
].flat();
|
].flat();
|
||||||
|
|
||||||
|
export const EmbedIframeViewExtensions: ExtensionType[] = [
|
||||||
|
FlavourExtension(flavour),
|
||||||
|
BlockViewExtension(flavour, model => {
|
||||||
|
return model.parent?.flavour === 'affine:surface'
|
||||||
|
? literal`affine-embed-edgeless-iframe-block`
|
||||||
|
: literal`affine-embed-iframe-block`;
|
||||||
|
}),
|
||||||
|
createBuiltinToolbarConfigExtension(flavour),
|
||||||
|
SlashMenuConfigExtension(flavour, embedIframeSlashMenuConfig),
|
||||||
|
].flat();
|
||||||
|
|||||||
@@ -19,3 +19,13 @@ export const EmbedLinkedDocBlockSpec: ExtensionType[] = [
|
|||||||
createBuiltinToolbarConfigExtension(flavour),
|
createBuiltinToolbarConfigExtension(flavour),
|
||||||
LinkedDocSlashMenuConfigExtension,
|
LinkedDocSlashMenuConfigExtension,
|
||||||
].flat();
|
].flat();
|
||||||
|
|
||||||
|
export const EmbedLinkedDocViewExtensions: ExtensionType[] = [
|
||||||
|
BlockViewExtension(flavour, model => {
|
||||||
|
return model.parent?.flavour === 'affine:surface'
|
||||||
|
? literal`affine-embed-edgeless-linked-doc-block`
|
||||||
|
: literal`affine-embed-linked-doc-block`;
|
||||||
|
}),
|
||||||
|
createBuiltinToolbarConfigExtension(flavour),
|
||||||
|
LinkedDocSlashMenuConfigExtension,
|
||||||
|
].flat();
|
||||||
|
|||||||
@@ -28,3 +28,16 @@ export const EmbedLoomBlockSpec: ExtensionType[] = [
|
|||||||
createBuiltinToolbarConfigExtension(flavour, EmbedLoomBlockComponent),
|
createBuiltinToolbarConfigExtension(flavour, EmbedLoomBlockComponent),
|
||||||
SlashMenuConfigExtension(flavour, embedLoomSlashMenuConfig),
|
SlashMenuConfigExtension(flavour, embedLoomSlashMenuConfig),
|
||||||
].flat();
|
].flat();
|
||||||
|
|
||||||
|
export const EmbedLoomViewExtensions: ExtensionType[] = [
|
||||||
|
FlavourExtension(flavour),
|
||||||
|
EmbedLoomBlockService,
|
||||||
|
BlockViewExtension(flavour, model => {
|
||||||
|
return model.parent?.flavour === 'affine:surface'
|
||||||
|
? literal`affine-embed-edgeless-loom-block`
|
||||||
|
: literal`affine-embed-loom-block`;
|
||||||
|
}),
|
||||||
|
EmbedLoomBlockOptionConfig,
|
||||||
|
createBuiltinToolbarConfigExtension(flavour, EmbedLoomBlockComponent),
|
||||||
|
SlashMenuConfigExtension(flavour, embedLoomSlashMenuConfig),
|
||||||
|
].flat();
|
||||||
|
|||||||
@@ -18,3 +18,13 @@ export const EmbedSyncedDocBlockSpec: ExtensionType[] = [
|
|||||||
EmbedSyncedDocBlockAdapterExtensions,
|
EmbedSyncedDocBlockAdapterExtensions,
|
||||||
createBuiltinToolbarConfigExtension(flavour),
|
createBuiltinToolbarConfigExtension(flavour),
|
||||||
].flat();
|
].flat();
|
||||||
|
|
||||||
|
export const EmbedSyncedDocViewExtensions: ExtensionType[] = [
|
||||||
|
FlavourExtension(flavour),
|
||||||
|
BlockViewExtension(flavour, model => {
|
||||||
|
return model.parent?.flavour === 'affine:surface'
|
||||||
|
? literal`affine-embed-edgeless-synced-doc-block`
|
||||||
|
: literal`affine-embed-synced-doc-block`;
|
||||||
|
}),
|
||||||
|
createBuiltinToolbarConfigExtension(flavour),
|
||||||
|
].flat();
|
||||||
|
|||||||
@@ -28,3 +28,16 @@ export const EmbedYoutubeBlockSpec: ExtensionType[] = [
|
|||||||
createBuiltinToolbarConfigExtension(flavour, EmbedYoutubeBlockComponent),
|
createBuiltinToolbarConfigExtension(flavour, EmbedYoutubeBlockComponent),
|
||||||
SlashMenuConfigExtension('affine:embed-youtube', embedYoutubeSlashMenuConfig),
|
SlashMenuConfigExtension('affine:embed-youtube', embedYoutubeSlashMenuConfig),
|
||||||
].flat();
|
].flat();
|
||||||
|
|
||||||
|
export const EmbedYoutubeViewExtensions: ExtensionType[] = [
|
||||||
|
FlavourExtension(flavour),
|
||||||
|
EmbedYoutubeBlockService,
|
||||||
|
BlockViewExtension(flavour, model => {
|
||||||
|
return model.parent?.flavour === 'affine:surface'
|
||||||
|
? literal`affine-embed-edgeless-youtube-block`
|
||||||
|
: literal`affine-embed-youtube-block`;
|
||||||
|
}),
|
||||||
|
EmbedYoutubeBlockOptionConfig,
|
||||||
|
createBuiltinToolbarConfigExtension(flavour, EmbedYoutubeBlockComponent),
|
||||||
|
SlashMenuConfigExtension('affine:embed-youtube', embedYoutubeSlashMenuConfig),
|
||||||
|
].flat();
|
||||||
|
|||||||
47
blocksuite/affine/blocks/embed/src/store.ts
Normal file
47
blocksuite/affine/blocks/embed/src/store.ts
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
import {
|
||||||
|
type StoreExtensionContext,
|
||||||
|
StoreExtensionProvider,
|
||||||
|
} from '@blocksuite/affine-ext-loader';
|
||||||
|
import {
|
||||||
|
EmbedFigmaBlockSchemaExtension,
|
||||||
|
EmbedGithubBlockSchemaExtension,
|
||||||
|
EmbedHtmlBlockSchemaExtension,
|
||||||
|
EmbedIframeBlockSchemaExtension,
|
||||||
|
EmbedLinkedDocBlockSchemaExtension,
|
||||||
|
EmbedLoomBlockSchemaExtension,
|
||||||
|
EmbedSyncedDocBlockSchemaExtension,
|
||||||
|
EmbedYoutubeBlockSchemaExtension,
|
||||||
|
} from '@blocksuite/affine-model';
|
||||||
|
|
||||||
|
import { EmbedFigmaBlockAdapterExtensions } from './embed-figma-block/adapters/extension';
|
||||||
|
import { EmbedGithubBlockAdapterExtensions } from './embed-github-block/adapters/extension';
|
||||||
|
import { EmbedIframeBlockAdapterExtensions } from './embed-iframe-block/adapters';
|
||||||
|
import { EmbedLinkedDocBlockAdapterExtensions } from './embed-linked-doc-block/adapters/extension';
|
||||||
|
import { EmbedLoomBlockAdapterExtensions } from './embed-loom-block/adapters/extension';
|
||||||
|
import { EmbedSyncedDocBlockAdapterExtensions } from './embed-synced-doc-block/adapters/extension';
|
||||||
|
import { EmbedYoutubeBlockAdapterExtensions } from './embed-youtube-block/adapters/extension';
|
||||||
|
|
||||||
|
export class EmbedStoreExtension extends StoreExtensionProvider {
|
||||||
|
override name = 'affine-embed-block';
|
||||||
|
|
||||||
|
override setup(context: StoreExtensionContext) {
|
||||||
|
super.setup(context);
|
||||||
|
context.register([
|
||||||
|
EmbedSyncedDocBlockSchemaExtension,
|
||||||
|
EmbedLinkedDocBlockSchemaExtension,
|
||||||
|
EmbedHtmlBlockSchemaExtension,
|
||||||
|
EmbedIframeBlockSchemaExtension,
|
||||||
|
EmbedGithubBlockSchemaExtension,
|
||||||
|
EmbedFigmaBlockSchemaExtension,
|
||||||
|
EmbedLoomBlockSchemaExtension,
|
||||||
|
EmbedYoutubeBlockSchemaExtension,
|
||||||
|
]);
|
||||||
|
context.register(EmbedFigmaBlockAdapterExtensions);
|
||||||
|
context.register(EmbedGithubBlockAdapterExtensions);
|
||||||
|
context.register(EmbedYoutubeBlockAdapterExtensions);
|
||||||
|
context.register(EmbedLoomBlockAdapterExtensions);
|
||||||
|
context.register(EmbedIframeBlockAdapterExtensions);
|
||||||
|
context.register(EmbedLinkedDocBlockAdapterExtensions);
|
||||||
|
context.register(EmbedSyncedDocBlockAdapterExtensions);
|
||||||
|
}
|
||||||
|
}
|
||||||
34
blocksuite/affine/blocks/embed/src/view.ts
Normal file
34
blocksuite/affine/blocks/embed/src/view.ts
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
import {
|
||||||
|
type ViewExtensionContext,
|
||||||
|
ViewExtensionProvider,
|
||||||
|
} from '@blocksuite/affine-ext-loader';
|
||||||
|
|
||||||
|
import { effects } from './effects';
|
||||||
|
import { EmbedFigmaViewExtensions } from './embed-figma-block';
|
||||||
|
import { EmbedGithubViewExtensions } from './embed-github-block';
|
||||||
|
import { EmbedHtmlViewExtensions } from './embed-html-block';
|
||||||
|
import { EmbedIframeViewExtensions } from './embed-iframe-block';
|
||||||
|
import { EmbedLinkedDocViewExtensions } from './embed-linked-doc-block';
|
||||||
|
import { EmbedLoomViewExtensions } from './embed-loom-block';
|
||||||
|
import { EmbedSyncedDocViewExtensions } from './embed-synced-doc-block';
|
||||||
|
import { EmbedYoutubeViewExtensions } from './embed-youtube-block';
|
||||||
|
export class EmbedViewExtension extends ViewExtensionProvider {
|
||||||
|
override name = 'affine-embed-block';
|
||||||
|
|
||||||
|
override effect(): void {
|
||||||
|
super.effect();
|
||||||
|
effects();
|
||||||
|
}
|
||||||
|
|
||||||
|
override setup(context: ViewExtensionContext) {
|
||||||
|
super.setup(context);
|
||||||
|
context.register(EmbedFigmaViewExtensions);
|
||||||
|
context.register(EmbedGithubViewExtensions);
|
||||||
|
context.register(EmbedLoomViewExtensions);
|
||||||
|
context.register(EmbedYoutubeViewExtensions);
|
||||||
|
context.register(EmbedHtmlViewExtensions);
|
||||||
|
context.register(EmbedLinkedDocViewExtensions);
|
||||||
|
context.register(EmbedSyncedDocViewExtensions);
|
||||||
|
context.register(EmbedIframeViewExtensions);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
"references": [
|
"references": [
|
||||||
{ "path": "../surface" },
|
{ "path": "../surface" },
|
||||||
{ "path": "../../components" },
|
{ "path": "../../components" },
|
||||||
|
{ "path": "../../ext-loader" },
|
||||||
{ "path": "../../inlines/reference" },
|
{ "path": "../../inlines/reference" },
|
||||||
{ "path": "../../model" },
|
{ "path": "../../model" },
|
||||||
{ "path": "../../rich-text" },
|
{ "path": "../../rich-text" },
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { DataViewStoreExtension } from '@blocksuite/affine/blocks/data-view/stor
|
|||||||
import { DatabaseStoreExtension } from '@blocksuite/affine/blocks/database/store';
|
import { DatabaseStoreExtension } from '@blocksuite/affine/blocks/database/store';
|
||||||
import { DividerStoreExtension } from '@blocksuite/affine/blocks/divider/store';
|
import { DividerStoreExtension } from '@blocksuite/affine/blocks/divider/store';
|
||||||
import { EdgelessTextStoreExtension } from '@blocksuite/affine/blocks/edgeless-text/store';
|
import { EdgelessTextStoreExtension } from '@blocksuite/affine/blocks/edgeless-text/store';
|
||||||
|
import { EmbedStoreExtension } from '@blocksuite/affine/blocks/embed/store';
|
||||||
import { StoreExtensionManager } from '@blocksuite/affine/ext-loader';
|
import { StoreExtensionManager } from '@blocksuite/affine/ext-loader';
|
||||||
|
|
||||||
export function createStoreManager() {
|
export function createStoreManager() {
|
||||||
@@ -18,6 +19,7 @@ export function createStoreManager() {
|
|||||||
DatabaseStoreExtension,
|
DatabaseStoreExtension,
|
||||||
DividerStoreExtension,
|
DividerStoreExtension,
|
||||||
EdgelessTextStoreExtension,
|
EdgelessTextStoreExtension,
|
||||||
|
EmbedStoreExtension,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return manager;
|
return manager;
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { DataViewViewExtension } from '@blocksuite/affine/blocks/data-view/view'
|
|||||||
import { DatabaseViewExtension } from '@blocksuite/affine/blocks/database/view';
|
import { DatabaseViewExtension } from '@blocksuite/affine/blocks/database/view';
|
||||||
import { DividerViewExtension } from '@blocksuite/affine/blocks/divider/view';
|
import { DividerViewExtension } from '@blocksuite/affine/blocks/divider/view';
|
||||||
import { EdgelessTextViewExtension } from '@blocksuite/affine/blocks/edgeless-text/view';
|
import { EdgelessTextViewExtension } from '@blocksuite/affine/blocks/edgeless-text/view';
|
||||||
|
import { EmbedViewExtension } from '@blocksuite/affine/blocks/embed/view';
|
||||||
import { ViewExtensionManager } from '@blocksuite/affine/ext-loader';
|
import { ViewExtensionManager } from '@blocksuite/affine/ext-loader';
|
||||||
|
|
||||||
export function createViewManager() {
|
export function createViewManager() {
|
||||||
@@ -18,6 +19,7 @@ export function createViewManager() {
|
|||||||
DatabaseViewExtension,
|
DatabaseViewExtension,
|
||||||
DividerViewExtension,
|
DividerViewExtension,
|
||||||
EdgelessTextViewExtension,
|
EdgelessTextViewExtension,
|
||||||
|
EmbedViewExtension,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return manager;
|
return manager;
|
||||||
|
|||||||
@@ -203,6 +203,7 @@ export const PackageList = [
|
|||||||
workspaceDependencies: [
|
workspaceDependencies: [
|
||||||
'blocksuite/affine/blocks/surface',
|
'blocksuite/affine/blocks/surface',
|
||||||
'blocksuite/affine/components',
|
'blocksuite/affine/components',
|
||||||
|
'blocksuite/affine/ext-loader',
|
||||||
'blocksuite/affine/inlines/reference',
|
'blocksuite/affine/inlines/reference',
|
||||||
'blocksuite/affine/model',
|
'blocksuite/affine/model',
|
||||||
'blocksuite/affine/rich-text',
|
'blocksuite/affine/rich-text',
|
||||||
|
|||||||
@@ -2598,6 +2598,7 @@ __metadata:
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@blocksuite/affine-block-surface": "workspace:*"
|
"@blocksuite/affine-block-surface": "workspace:*"
|
||||||
"@blocksuite/affine-components": "workspace:*"
|
"@blocksuite/affine-components": "workspace:*"
|
||||||
|
"@blocksuite/affine-ext-loader": "workspace:*"
|
||||||
"@blocksuite/affine-inline-reference": "workspace:*"
|
"@blocksuite/affine-inline-reference": "workspace:*"
|
||||||
"@blocksuite/affine-model": "workspace:*"
|
"@blocksuite/affine-model": "workspace:*"
|
||||||
"@blocksuite/affine-rich-text": "workspace:*"
|
"@blocksuite/affine-rich-text": "workspace:*"
|
||||||
|
|||||||
Reference in New Issue
Block a user