1 | import {DocumentListBuilder, DocumentList} from './DocumentList'
|
2 | import {EditorBuilder} from './Editor'
|
3 | import {ListItemBuilder} from './ListItem'
|
4 | import {ListBuilder, List} from './List'
|
5 | import {MenuItemBuilder} from './MenuItem'
|
6 | import {MenuItemGroupBuilder} from './MenuItemGroup'
|
7 | import {Component, ComponentBuilder} from './Component'
|
8 | import {DocumentListItemBuilder} from './DocumentListItem'
|
9 | import {ChildResolver} from './ChildResolver'
|
10 | import {DocumentTypeListBuilder} from './DocumentTypeList'
|
11 |
|
12 | export interface StructureNode {
|
13 | id: string
|
14 | title?: string
|
15 | type?: string
|
16 | }
|
17 |
|
18 | export interface EditorNode extends StructureNode {
|
19 | options: {
|
20 | id: string
|
21 | type?: string
|
22 | }
|
23 | }
|
24 |
|
25 | export interface Divider {
|
26 | id: string
|
27 | type: 'divider'
|
28 | }
|
29 |
|
30 | export type SerializePath = (string | number)[]
|
31 |
|
32 | export interface SerializeOptions {
|
33 | path: SerializePath
|
34 | index?: number
|
35 | hint?: string
|
36 | }
|
37 |
|
38 | export interface Serializable {
|
39 | serialize(options: SerializeOptions): {}
|
40 | }
|
41 |
|
42 | export type Collection = List | DocumentList | EditorNode | Component
|
43 |
|
44 | export type CollectionBuilder =
|
45 | | ListBuilder
|
46 | | DocumentListBuilder
|
47 | | DocumentTypeListBuilder
|
48 | | EditorBuilder
|
49 | | ComponentBuilder
|
50 |
|
51 | export type Child = Collection | CollectionBuilder | ChildResolver
|
52 |
|
53 | export type Builder =
|
54 | | CollectionBuilder
|
55 | | ComponentBuilder
|
56 | | DocumentListBuilder
|
57 | | DocumentListItemBuilder
|
58 | | ListItemBuilder
|
59 | | MenuItemBuilder
|
60 | | MenuItemGroupBuilder
|