document.ts 889 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // eslint-disable-next-line no-shadow
  2. export enum BlockType {
  3. PageBlock = 'page',
  4. HeadingBlock = 'heading',
  5. ListBlock = 'list',
  6. TextBlock = 'text',
  7. CodeBlock = 'code',
  8. EmbedBlock = 'embed',
  9. QuoteBlock = 'quote',
  10. DividerBlock = 'divider',
  11. MediaBlock = 'media',
  12. TableBlock = 'table',
  13. ColumnBlock = 'column',
  14. }
  15. export interface HeadingBlockData {
  16. level: number;
  17. }
  18. export interface TextBlockData {
  19. delta: TextDelta[];
  20. }
  21. export interface PageBlockData extends TextBlockData {}
  22. export interface NestedBlock {
  23. id: string;
  24. type: BlockType;
  25. data: Record<string, any>;
  26. parent: string | null;
  27. children: string;
  28. }
  29. export interface TextDelta {
  30. insert: string;
  31. attributes?: Record<string, string | boolean>;
  32. }
  33. export interface DocumentData {
  34. rootId: string;
  35. blocks: Record<string, NestedBlock>;
  36. meta: {
  37. childrenMap: Record<string, string[]>;
  38. };
  39. }