@blocknote/core 0.8.1 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/blocknote.js +1787 -1834
- package/dist/blocknote.js.map +1 -1
- package/dist/blocknote.umd.cjs +4 -4
- package/dist/blocknote.umd.cjs.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +3 -3
- package/src/BlockNoteEditor.ts +102 -38
- package/src/BlockNoteExtensions.ts +1 -58
- package/src/api/formatConversions/__snapshots__/formatConversions.test.ts.snap +10 -10
- package/src/api/formatConversions/formatConversions.test.ts +587 -605
- package/src/api/nodeConversions/__snapshots__/nodeConversions.test.ts.snap +15 -15
- package/src/api/nodeConversions/nodeConversions.test.ts +90 -94
- package/src/extensions/Blocks/api/blockTypes.ts +3 -2
- package/src/extensions/Blocks/helpers/getBlockInfoFromPos.ts +6 -0
- package/src/extensions/Blocks/nodes/BlockContainer.ts +12 -3
- package/src/extensions/FormattingToolbar/FormattingToolbarPlugin.ts +92 -104
- package/src/extensions/HyperlinkToolbar/HyperlinkToolbarPlugin.ts +178 -134
- package/src/extensions/Placeholder/PlaceholderExtension.ts +2 -2
- package/src/extensions/{DraggableBlocks/DraggableBlocksPlugin.ts → SideMenu/SideMenuPlugin.ts} +173 -163
- package/src/extensions/SlashMenu/BaseSlashMenuItem.ts +7 -30
- package/src/extensions/SlashMenu/SlashMenuPlugin.ts +51 -0
- package/src/extensions/SlashMenu/defaultSlashMenuItems.ts +109 -0
- package/src/extensions/UniqueID/UniqueID.ts +29 -30
- package/src/index.ts +9 -8
- package/src/node_modules/.vitest/results.json +1 -0
- package/src/shared/BaseUiElementTypes.ts +8 -0
- package/src/shared/EditorElement.ts +0 -16
- package/src/shared/EventEmitter.ts +58 -0
- package/src/shared/plugins/suggestion/SuggestionItem.ts +3 -6
- package/src/shared/plugins/suggestion/SuggestionPlugin.ts +333 -389
- package/types/src/BlockNoteEditor.d.ts +18 -10
- package/types/src/BlockNoteExtensions.d.ts +0 -19
- package/types/src/EventEmitter.d.ts +11 -0
- package/types/src/extensions/Blocks/api/blockTypes.d.ts +3 -2
- package/types/src/extensions/DraggableBlocks/BlockSideMenuFactoryTypes.d.ts +0 -17
- package/types/src/extensions/DraggableBlocks/DraggableBlocksPlugin.d.ts +25 -19
- package/types/src/extensions/FormattingToolbar/FormattingToolbarFactoryTypes.d.ts +2 -3
- package/types/src/extensions/FormattingToolbar/FormattingToolbarPlugin.d.ts +17 -24
- package/types/src/extensions/HyperlinkToolbar/HyperlinkToolbarFactoryTypes.d.ts +0 -12
- package/types/src/extensions/HyperlinkToolbar/HyperlinkToolbarPlugin.d.ts +37 -10
- package/types/src/extensions/SideMenu/MultipleNodeSelection.d.ts +24 -0
- package/types/src/extensions/SideMenu/SideMenuPlugin.d.ts +79 -0
- package/types/src/extensions/SlashMenu/BaseSlashMenuItem.d.ts +5 -18
- package/types/src/extensions/SlashMenu/SlashMenuPlugin.d.ts +13 -0
- package/types/src/extensions/SlashMenu/defaultSlashMenuItems.d.ts +1 -69
- package/types/src/extensions/SlashMenu/index.d.ts +2 -3
- package/types/src/index.d.ts +9 -8
- package/types/src/shared/BaseUiElementTypes.d.ts +7 -0
- package/types/src/shared/EditorElement.d.ts +0 -10
- package/types/src/shared/EventEmitter.d.ts +11 -0
- package/types/src/shared/plugins/suggestion/SuggestionItem.d.ts +2 -7
- package/types/src/shared/plugins/suggestion/SuggestionPlugin.d.ts +12 -43
- package/types/src/shared/plugins/suggestion/SuggestionsMenuFactoryTypes.d.ts +1 -1
- package/src/extensions/DraggableBlocks/BlockSideMenuFactoryTypes.ts +0 -29
- package/src/extensions/DraggableBlocks/DraggableBlocksExtension.ts +0 -37
- package/src/extensions/FormattingToolbar/FormattingToolbarExtension.ts +0 -37
- package/src/extensions/FormattingToolbar/FormattingToolbarFactoryTypes.ts +0 -20
- package/src/extensions/HyperlinkToolbar/HyperlinkMark.ts +0 -28
- package/src/extensions/HyperlinkToolbar/HyperlinkToolbarFactoryTypes.ts +0 -19
- package/src/extensions/SlashMenu/SlashMenuExtension.ts +0 -53
- package/src/extensions/SlashMenu/defaultSlashMenuItems.tsx +0 -195
- package/src/extensions/SlashMenu/index.ts +0 -5
- package/src/shared/plugins/suggestion/SuggestionsMenuFactoryTypes.ts +0 -21
- package/types/src/CustomBlock.d.ts +0 -15
- package/types/src/extensions/Blocks/nodes/BlockContent/TableContent/TableCol.d.ts +0 -2
- package/types/src/extensions/Blocks/nodes/BlockContent/TableContent/TableContent.d.ts +0 -2
- package/types/src/extensions/Blocks/nodes/BlockContent/TableContent/TableRow.d.ts +0 -2
- package/types/src/extensions/Placeholder/localisation/index.d.ts +0 -2
- package/types/src/extensions/Placeholder/localisation/translation.d.ts +0 -51
- /package/src/extensions/{DraggableBlocks → SideMenu}/MultipleNodeSelection.ts +0 -0
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"homepage": "https://github.com/TypeCellOS/BlockNote",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
|
-
"version": "0.8.
|
|
6
|
+
"version": "0.8.3",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist",
|
|
9
9
|
"types",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"build-bundled": "tsc && vite build --config vite.config.bundled.ts && git checkout tmp-releases && rm -rf ../../release && mv ../../release-tmp ../../release",
|
|
46
46
|
"preview": "vite preview",
|
|
47
47
|
"lint": "eslint src --max-warnings 0",
|
|
48
|
-
"test": "vitest",
|
|
48
|
+
"test": "vitest --run",
|
|
49
49
|
"test-watch": "vitest watch"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
@@ -110,5 +110,5 @@
|
|
|
110
110
|
"access": "public",
|
|
111
111
|
"registry": "https://registry.npmjs.org/"
|
|
112
112
|
},
|
|
113
|
-
"gitHead": "
|
|
113
|
+
"gitHead": "4b0778beb0b0857491273b37eb2cd9405b4d12fd"
|
|
114
114
|
}
|
package/src/BlockNoteEditor.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Editor, EditorOptions } from "@tiptap/core";
|
|
1
|
+
import { Editor, EditorOptions, Extension } from "@tiptap/core";
|
|
2
2
|
import { Node } from "prosemirror-model";
|
|
3
3
|
// import "./blocknote.css";
|
|
4
4
|
import { Editor as TiptapEditor } from "@tiptap/core/dist/packages/core/src/Editor";
|
|
5
5
|
import * as Y from "yjs";
|
|
6
|
+
import { getBlockNoteExtensions } from "./BlockNoteExtensions";
|
|
6
7
|
import {
|
|
7
8
|
insertBlocks,
|
|
8
9
|
removeBlocks,
|
|
@@ -10,14 +11,16 @@ import {
|
|
|
10
11
|
updateBlock,
|
|
11
12
|
} from "./api/blockManipulation/blockManipulation";
|
|
12
13
|
import {
|
|
14
|
+
HTMLToBlocks,
|
|
13
15
|
blocksToHTML,
|
|
14
16
|
blocksToMarkdown,
|
|
15
|
-
HTMLToBlocks,
|
|
16
17
|
markdownToBlocks,
|
|
17
18
|
} from "./api/formatConversions/formatConversions";
|
|
18
|
-
import {
|
|
19
|
+
import {
|
|
20
|
+
blockToNode,
|
|
21
|
+
nodeToBlock,
|
|
22
|
+
} from "./api/nodeConversions/nodeConversions";
|
|
19
23
|
import { getNodeById } from "./api/util/nodeUtil";
|
|
20
|
-
import { getBlockNoteExtensions, UiFactories } from "./BlockNoteExtensions";
|
|
21
24
|
import styles from "./editor.module.css";
|
|
22
25
|
import {
|
|
23
26
|
Block,
|
|
@@ -37,28 +40,25 @@ import {
|
|
|
37
40
|
} from "./extensions/Blocks/api/inlineContentTypes";
|
|
38
41
|
import { Selection } from "./extensions/Blocks/api/selectionTypes";
|
|
39
42
|
import { getBlockInfoFromPos } from "./extensions/Blocks/helpers/getBlockInfoFromPos";
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
} from "./extensions/
|
|
43
|
+
|
|
44
|
+
import { FormattingToolbarProsemirrorPlugin } from "./extensions/FormattingToolbar/FormattingToolbarPlugin";
|
|
45
|
+
import { HyperlinkToolbarProsemirrorPlugin } from "./extensions/HyperlinkToolbar/HyperlinkToolbarPlugin";
|
|
46
|
+
import { SideMenuProsemirrorPlugin } from "./extensions/SideMenu/SideMenuPlugin";
|
|
47
|
+
import { BaseSlashMenuItem } from "./extensions/SlashMenu/BaseSlashMenuItem";
|
|
48
|
+
import { SlashMenuProsemirrorPlugin } from "./extensions/SlashMenu/SlashMenuPlugin";
|
|
49
|
+
import { getDefaultSlashMenuItems } from "./extensions/SlashMenu/defaultSlashMenuItems";
|
|
50
|
+
import { UniqueID } from "./extensions/UniqueID/UniqueID";
|
|
44
51
|
|
|
45
52
|
export type BlockNoteEditorOptions<BSchema extends BlockSchema> = {
|
|
46
53
|
// TODO: Figure out if enableBlockNoteExtensions/disableHistoryExtension are needed and document them.
|
|
47
54
|
enableBlockNoteExtensions: boolean;
|
|
48
|
-
|
|
49
55
|
/**
|
|
50
|
-
* UI element factories for creating a custom UI, including custom positioning
|
|
51
|
-
* & rendering.
|
|
52
|
-
*/
|
|
53
|
-
uiFactories: UiFactories<BSchema>;
|
|
54
|
-
/**
|
|
55
|
-
* TODO: why is this called slashCommands and not slashMenuItems?
|
|
56
56
|
*
|
|
57
57
|
* (couldn't fix any type, see https://github.com/TypeCellOS/BlockNote/pull/191#discussion_r1210708771)
|
|
58
58
|
*
|
|
59
59
|
* @default defaultSlashMenuItems from `./extensions/SlashMenu`
|
|
60
60
|
*/
|
|
61
|
-
|
|
61
|
+
slashMenuItems: BaseSlashMenuItem<any>[];
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
64
|
* The HTML element that should be used as the parent element for the editor.
|
|
@@ -149,18 +149,12 @@ export class BlockNoteEditor<BSchema extends BlockSchema = DefaultBlockSchema> {
|
|
|
149
149
|
public readonly _tiptapEditor: TiptapEditor & { contentComponent: any };
|
|
150
150
|
public blockCache = new WeakMap<Node, Block<BSchema>>();
|
|
151
151
|
public readonly schema: BSchema;
|
|
152
|
+
public ready = false;
|
|
152
153
|
|
|
153
|
-
public
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
public isFocused() {
|
|
158
|
-
return this._tiptapEditor.view.hasFocus();
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
public focus() {
|
|
162
|
-
this._tiptapEditor.view.focus();
|
|
163
|
-
}
|
|
154
|
+
public readonly sideMenu: SideMenuProsemirrorPlugin<BSchema>;
|
|
155
|
+
public readonly formattingToolbar: FormattingToolbarProsemirrorPlugin<BSchema>;
|
|
156
|
+
public readonly slashMenu: SlashMenuProsemirrorPlugin<BSchema, any>;
|
|
157
|
+
public readonly hyperlinkToolbar: HyperlinkToolbarProsemirrorPlugin<BSchema>;
|
|
164
158
|
|
|
165
159
|
constructor(
|
|
166
160
|
private readonly options: Partial<BlockNoteEditorOptions<BSchema>> = {}
|
|
@@ -180,35 +174,81 @@ export class BlockNoteEditor<BSchema extends BlockSchema = DefaultBlockSchema> {
|
|
|
180
174
|
...options,
|
|
181
175
|
};
|
|
182
176
|
|
|
177
|
+
this.sideMenu = new SideMenuProsemirrorPlugin(this);
|
|
178
|
+
this.formattingToolbar = new FormattingToolbarProsemirrorPlugin(this);
|
|
179
|
+
this.slashMenu = new SlashMenuProsemirrorPlugin(
|
|
180
|
+
this,
|
|
181
|
+
newOptions.slashMenuItems ||
|
|
182
|
+
getDefaultSlashMenuItems(newOptions.blockSchema)
|
|
183
|
+
);
|
|
184
|
+
this.hyperlinkToolbar = new HyperlinkToolbarProsemirrorPlugin(this);
|
|
185
|
+
|
|
183
186
|
const extensions = getBlockNoteExtensions<BSchema>({
|
|
184
187
|
editor: this,
|
|
185
|
-
uiFactories: newOptions.uiFactories || {},
|
|
186
|
-
slashCommands: newOptions.slashCommands || defaultSlashMenuItems,
|
|
187
188
|
blockSchema: newOptions.blockSchema,
|
|
188
189
|
collaboration: newOptions.collaboration,
|
|
189
190
|
});
|
|
190
191
|
|
|
192
|
+
const blockNoteUIExtension = Extension.create({
|
|
193
|
+
name: "BlockNoteUIExtension",
|
|
194
|
+
|
|
195
|
+
addProseMirrorPlugins: () => {
|
|
196
|
+
return [
|
|
197
|
+
this.sideMenu.plugin,
|
|
198
|
+
this.formattingToolbar.plugin,
|
|
199
|
+
this.slashMenu.plugin,
|
|
200
|
+
this.hyperlinkToolbar.plugin,
|
|
201
|
+
];
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
extensions.push(blockNoteUIExtension);
|
|
205
|
+
|
|
191
206
|
this.schema = newOptions.blockSchema;
|
|
192
207
|
|
|
208
|
+
const initialContent = newOptions.initialContent || [
|
|
209
|
+
{
|
|
210
|
+
type: "paragraph",
|
|
211
|
+
id: UniqueID.options.generateID(),
|
|
212
|
+
},
|
|
213
|
+
];
|
|
214
|
+
|
|
193
215
|
const tiptapOptions: EditorOptions = {
|
|
194
|
-
// TODO: This approach to setting initial content is "cleaner" but requires the PM editor schema, which is only
|
|
195
|
-
// created after initializing the TipTap editor. Not sure it's feasible.
|
|
196
|
-
// content:
|
|
197
|
-
// options.initialContent &&
|
|
198
|
-
// options.initialContent.map((block) =>
|
|
199
|
-
// blockToNode(block, this._tiptapEditor.schema).toJSON()
|
|
200
|
-
// ),
|
|
201
216
|
...blockNoteTipTapOptions,
|
|
202
217
|
...newOptions._tiptapOptions,
|
|
203
218
|
onCreate: () => {
|
|
204
219
|
newOptions.onEditorReady?.(this);
|
|
205
|
-
|
|
206
|
-
|
|
220
|
+
this.ready = true;
|
|
221
|
+
},
|
|
222
|
+
onBeforeCreate(editor) {
|
|
223
|
+
// we have to set the initial content here, because now we can use the editor schema
|
|
224
|
+
// which has been created at this point
|
|
225
|
+
const schema = editor.editor.schema;
|
|
226
|
+
const ic = initialContent.map((block) => blockToNode(block, schema));
|
|
227
|
+
|
|
228
|
+
const root = schema.node(
|
|
229
|
+
"doc",
|
|
230
|
+
undefined,
|
|
231
|
+
schema.node("blockGroup", undefined, ic)
|
|
232
|
+
);
|
|
233
|
+
// override the initialcontent
|
|
234
|
+
editor.editor.options.content = root.toJSON();
|
|
207
235
|
},
|
|
208
236
|
onUpdate: () => {
|
|
237
|
+
// This seems to be necessary due to a bug in TipTap:
|
|
238
|
+
// https://github.com/ueberdosis/tiptap/issues/2583
|
|
239
|
+
if (!this.ready) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
|
|
209
243
|
newOptions.onEditorContentChange?.(this);
|
|
210
244
|
},
|
|
211
245
|
onSelectionUpdate: () => {
|
|
246
|
+
// This seems to be necessary due to a bug in TipTap:
|
|
247
|
+
// https://github.com/ueberdosis/tiptap/issues/2583
|
|
248
|
+
if (!this.ready) {
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
|
|
212
252
|
newOptions.onTextCursorPositionChange?.(this);
|
|
213
253
|
},
|
|
214
254
|
editable: options.editable === undefined ? true : options.editable,
|
|
@@ -239,6 +279,22 @@ export class BlockNoteEditor<BSchema extends BlockSchema = DefaultBlockSchema> {
|
|
|
239
279
|
};
|
|
240
280
|
}
|
|
241
281
|
|
|
282
|
+
public get prosemirrorView() {
|
|
283
|
+
return this._tiptapEditor.view;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
public get domElement() {
|
|
287
|
+
return this._tiptapEditor.view.dom as HTMLDivElement;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
public isFocused() {
|
|
291
|
+
return this._tiptapEditor.view.hasFocus();
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
public focus() {
|
|
295
|
+
this._tiptapEditor.view.focus();
|
|
296
|
+
}
|
|
297
|
+
|
|
242
298
|
/**
|
|
243
299
|
* Gets a snapshot of all top-level (non-nested) blocks in the editor.
|
|
244
300
|
* @returns A snapshot of all top-level (non-nested) blocks in the editor.
|
|
@@ -330,6 +386,14 @@ export class BlockNoteEditor<BSchema extends BlockSchema = DefaultBlockSchema> {
|
|
|
330
386
|
this._tiptapEditor.on("update", callback);
|
|
331
387
|
}
|
|
332
388
|
|
|
389
|
+
/**
|
|
390
|
+
* Executes a callback whenever the editor's selection changes.
|
|
391
|
+
* @param callback The callback to execute.
|
|
392
|
+
*/
|
|
393
|
+
public onEditorSelectionChange(callback: () => void) {
|
|
394
|
+
this._tiptapEditor.on("selectionUpdate", callback);
|
|
395
|
+
}
|
|
396
|
+
|
|
333
397
|
/**
|
|
334
398
|
* Gets a snapshot of the current text cursor position.
|
|
335
399
|
* @returns A snapshot of the current text cursor position.
|
|
@@ -23,38 +23,18 @@ import { blocks } from "./extensions/Blocks";
|
|
|
23
23
|
import { BlockSchema } from "./extensions/Blocks/api/blockTypes";
|
|
24
24
|
import { CustomBlockSerializerExtension } from "./extensions/Blocks/api/serialization";
|
|
25
25
|
import blockStyles from "./extensions/Blocks/nodes/Block.module.css";
|
|
26
|
-
import { BlockSideMenuFactory } from "./extensions/DraggableBlocks/BlockSideMenuFactoryTypes";
|
|
27
|
-
import { createDraggableBlocksExtension } from "./extensions/DraggableBlocks/DraggableBlocksExtension";
|
|
28
|
-
import { createFormattingToolbarExtension } from "./extensions/FormattingToolbar/FormattingToolbarExtension";
|
|
29
|
-
import { FormattingToolbarFactory } from "./extensions/FormattingToolbar/FormattingToolbarFactoryTypes";
|
|
30
|
-
import HyperlinkMark from "./extensions/HyperlinkToolbar/HyperlinkMark";
|
|
31
|
-
import { HyperlinkToolbarFactory } from "./extensions/HyperlinkToolbar/HyperlinkToolbarFactoryTypes";
|
|
32
26
|
import { Placeholder } from "./extensions/Placeholder/PlaceholderExtension";
|
|
33
|
-
import {
|
|
34
|
-
BaseSlashMenuItem,
|
|
35
|
-
createSlashMenuExtension,
|
|
36
|
-
} from "./extensions/SlashMenu";
|
|
37
27
|
import { TextAlignmentExtension } from "./extensions/TextAlignment/TextAlignmentExtension";
|
|
38
28
|
import { TextColorExtension } from "./extensions/TextColor/TextColorExtension";
|
|
39
29
|
import { TextColorMark } from "./extensions/TextColor/TextColorMark";
|
|
40
30
|
import { TrailingNode } from "./extensions/TrailingNode/TrailingNodeExtension";
|
|
41
31
|
import UniqueID from "./extensions/UniqueID/UniqueID";
|
|
42
|
-
import { SuggestionsMenuFactory } from "./shared/plugins/suggestion/SuggestionsMenuFactoryTypes";
|
|
43
|
-
|
|
44
|
-
export type UiFactories<BSchema extends BlockSchema> = Partial<{
|
|
45
|
-
formattingToolbarFactory: FormattingToolbarFactory<BSchema>;
|
|
46
|
-
hyperlinkToolbarFactory: HyperlinkToolbarFactory;
|
|
47
|
-
slashMenuFactory: SuggestionsMenuFactory<BaseSlashMenuItem<BSchema>>;
|
|
48
|
-
blockSideMenuFactory: BlockSideMenuFactory<BSchema>;
|
|
49
|
-
}>;
|
|
50
32
|
|
|
51
33
|
/**
|
|
52
34
|
* Get all the Tiptap extensions BlockNote is configured with by default
|
|
53
35
|
*/
|
|
54
36
|
export const getBlockNoteExtensions = <BSchema extends BlockSchema>(opts: {
|
|
55
37
|
editor: BlockNoteEditor<BSchema>;
|
|
56
|
-
uiFactories: UiFactories<BSchema>;
|
|
57
|
-
slashCommands: BaseSlashMenuItem<any>[]; // couldn't fix type, see https://github.com/TypeCellOS/BlockNote/pull/191#discussion_r1210708771
|
|
58
38
|
blockSchema: BSchema;
|
|
59
39
|
collaboration?: {
|
|
60
40
|
fragment: Y.XmlFragment;
|
|
@@ -99,6 +79,7 @@ export const getBlockNoteExtensions = <BSchema extends BlockSchema>(opts: {
|
|
|
99
79
|
Italic,
|
|
100
80
|
Strike,
|
|
101
81
|
Underline,
|
|
82
|
+
Link,
|
|
102
83
|
TextColorMark,
|
|
103
84
|
TextColorExtension,
|
|
104
85
|
BackgroundColorMark,
|
|
@@ -155,43 +136,5 @@ export const getBlockNoteExtensions = <BSchema extends BlockSchema>(opts: {
|
|
|
155
136
|
ret.push(History);
|
|
156
137
|
}
|
|
157
138
|
|
|
158
|
-
if (opts.uiFactories.blockSideMenuFactory) {
|
|
159
|
-
ret.push(
|
|
160
|
-
createDraggableBlocksExtension<BSchema>().configure({
|
|
161
|
-
editor: opts.editor,
|
|
162
|
-
blockSideMenuFactory: opts.uiFactories.blockSideMenuFactory,
|
|
163
|
-
})
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
if (opts.uiFactories.formattingToolbarFactory) {
|
|
168
|
-
ret.push(
|
|
169
|
-
createFormattingToolbarExtension<BSchema>().configure({
|
|
170
|
-
editor: opts.editor,
|
|
171
|
-
formattingToolbarFactory: opts.uiFactories.formattingToolbarFactory,
|
|
172
|
-
})
|
|
173
|
-
);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
if (opts.uiFactories.hyperlinkToolbarFactory) {
|
|
177
|
-
ret.push(
|
|
178
|
-
HyperlinkMark.configure({
|
|
179
|
-
hyperlinkToolbarFactory: opts.uiFactories.hyperlinkToolbarFactory,
|
|
180
|
-
})
|
|
181
|
-
);
|
|
182
|
-
} else {
|
|
183
|
-
ret.push(Link);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
if (opts.uiFactories.slashMenuFactory) {
|
|
187
|
-
ret.push(
|
|
188
|
-
createSlashMenuExtension<BSchema>().configure({
|
|
189
|
-
editor: opts.editor,
|
|
190
|
-
commands: opts.slashCommands,
|
|
191
|
-
slashMenuFactory: opts.uiFactories.slashMenuFactory,
|
|
192
|
-
})
|
|
193
|
-
);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
139
|
return ret;
|
|
197
140
|
};
|
|
@@ -65,7 +65,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested HTML to
|
|
|
65
65
|
"type": "text",
|
|
66
66
|
},
|
|
67
67
|
],
|
|
68
|
-
"id": "
|
|
68
|
+
"id": "1",
|
|
69
69
|
"props": {
|
|
70
70
|
"backgroundColor": "default",
|
|
71
71
|
"level": "1",
|
|
@@ -83,7 +83,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested HTML to
|
|
|
83
83
|
"type": "text",
|
|
84
84
|
},
|
|
85
85
|
],
|
|
86
|
-
"id": "
|
|
86
|
+
"id": "2",
|
|
87
87
|
"props": {
|
|
88
88
|
"backgroundColor": "default",
|
|
89
89
|
"textAlignment": "left",
|
|
@@ -100,7 +100,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested HTML to
|
|
|
100
100
|
"type": "text",
|
|
101
101
|
},
|
|
102
102
|
],
|
|
103
|
-
"id": "
|
|
103
|
+
"id": "3",
|
|
104
104
|
"props": {
|
|
105
105
|
"backgroundColor": "default",
|
|
106
106
|
"textAlignment": "left",
|
|
@@ -117,7 +117,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested HTML to
|
|
|
117
117
|
"type": "text",
|
|
118
118
|
},
|
|
119
119
|
],
|
|
120
|
-
"id": "
|
|
120
|
+
"id": "4",
|
|
121
121
|
"props": {
|
|
122
122
|
"backgroundColor": "default",
|
|
123
123
|
"textAlignment": "left",
|
|
@@ -139,7 +139,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested Markdow
|
|
|
139
139
|
"type": "text",
|
|
140
140
|
},
|
|
141
141
|
],
|
|
142
|
-
"id": "
|
|
142
|
+
"id": "1",
|
|
143
143
|
"props": {
|
|
144
144
|
"backgroundColor": "default",
|
|
145
145
|
"level": "1",
|
|
@@ -157,7 +157,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested Markdow
|
|
|
157
157
|
"type": "text",
|
|
158
158
|
},
|
|
159
159
|
],
|
|
160
|
-
"id": "
|
|
160
|
+
"id": "2",
|
|
161
161
|
"props": {
|
|
162
162
|
"backgroundColor": "default",
|
|
163
163
|
"textAlignment": "left",
|
|
@@ -174,7 +174,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested Markdow
|
|
|
174
174
|
"type": "text",
|
|
175
175
|
},
|
|
176
176
|
],
|
|
177
|
-
"id": "
|
|
177
|
+
"id": "3",
|
|
178
178
|
"props": {
|
|
179
179
|
"backgroundColor": "default",
|
|
180
180
|
"textAlignment": "left",
|
|
@@ -191,7 +191,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested Markdow
|
|
|
191
191
|
"type": "text",
|
|
192
192
|
},
|
|
193
193
|
],
|
|
194
|
-
"id": "
|
|
194
|
+
"id": "4",
|
|
195
195
|
"props": {
|
|
196
196
|
"backgroundColor": "default",
|
|
197
197
|
"textAlignment": "left",
|
|
@@ -271,7 +271,7 @@ exports[`Styled Block/HTML/Markdown Conversions > Convert styled HTML to blocks
|
|
|
271
271
|
"type": "text",
|
|
272
272
|
},
|
|
273
273
|
],
|
|
274
|
-
"id": "
|
|
274
|
+
"id": "1",
|
|
275
275
|
"props": {
|
|
276
276
|
"backgroundColor": "default",
|
|
277
277
|
"textAlignment": "left",
|
|
@@ -327,7 +327,7 @@ exports[`Styled Block/HTML/Markdown Conversions > Convert styled Markdown to blo
|
|
|
327
327
|
"type": "text",
|
|
328
328
|
},
|
|
329
329
|
],
|
|
330
|
-
"id": "
|
|
330
|
+
"id": "1",
|
|
331
331
|
"props": {
|
|
332
332
|
"backgroundColor": "default",
|
|
333
333
|
"textAlignment": "left",
|