返回 presentation-ai
visualization-list-plugin.tsx
根目录 / src / components / notebook / presentation / editor / plugins / legacy / visualization-list-plugin.tsx
1 import { type TElement } from "platejs";
2 import { createTPlatePlugin } from "platejs/react";
3
4 import { VisualizationItemElement } from "../../custom-elements/legacy/visualization-item";
5 import { VisualizationListElement } from "../../custom-elements/legacy/visualization-list";
6
7 const VISUALIZATION_LIST = "visualization-list";
8 const VISUALIZATION_LIST_ITEM = "visualization-item";
9 export const VisualizationListPlugin = createTPlatePlugin({
10 key: VISUALIZATION_LIST,
11 node: {
12 isElement: true,
13 type: VISUALIZATION_LIST,
14 component: VisualizationListElement,
15 },
16 options: {
17 visualizationType: "arrow",
18 },
19 });
20
21 // Create plugin for visualization item
22 export const VisualizationItemPlugin = createTPlatePlugin({
23 key: VISUALIZATION_LIST_ITEM,
24 node: {
25 isElement: true,
26 isStrictSiblings: true,
27 type: VISUALIZATION_LIST_ITEM,
28 component: VisualizationItemElement,
29 },
30 });
31 export interface TVisualizationListElement extends TElement {
32 type: typeof VISUALIZATION_LIST;
33 visualizationType: "arrow" | "pyramid" | "timeline";
34 totalChildren: number;
35 }
36
36 lines Plain Text