|
| 1 | +import { Parser } from './../../packages/plugin-parser/src/Parser'; |
1 | 2 | import { BasicEditor } from '../../packages/bundle-basic-editor/BasicEditor'; |
2 | 3 | import { FontAwesome } from '../../packages/plugin-fontawesome/src/FontAwesome'; |
3 | 4 | import { DevTools } from '../../packages/plugin-devtools/src/DevTools'; |
4 | 5 | import template from './demo-odoo-fields.xml'; |
5 | 6 | import './demo-odoo-fields.css'; |
6 | | -import { Toolbar } from '../../packages/plugin-toolbar/src/Toolbar'; |
7 | 7 | import { DomLayout } from '../../packages/plugin-dom-layout/src/DomLayout'; |
| 8 | +import { JWEditorConfig, Loadables } from '../../packages/core/src/JWEditor'; |
| 9 | +import { Layout } from '../../packages/plugin-layout/src/Layout'; |
| 10 | +import { VNode } from '../../packages/core/src/VNodes/VNode'; |
| 11 | +import JWEditor from '../../packages/core/src/JWEditor'; |
8 | 12 |
|
| 13 | +import layout from './layout.xml'; |
9 | 14 | import '../utils/fontawesomeAssets'; |
10 | 15 |
|
11 | 16 | const target = document.getElementById('contentToEdit'); |
12 | 17 | target.style.paddingTop = '40px'; |
13 | 18 | target.style.paddingLeft = '8px'; |
14 | 19 | target.innerHTML = template; |
15 | 20 |
|
16 | | -const editor = new BasicEditor(); |
| 21 | +const editor = new BasicEditor({ editable: target }); |
17 | 22 | editor.load(FontAwesome); |
18 | 23 | editor.load(DevTools); |
19 | 24 | editor.configure(DomLayout, { |
20 | 25 | location: [target, 'replace'], |
21 | 26 | }); |
22 | | -editor.configure(Toolbar, { |
23 | | - layout: [ |
24 | | - [ |
25 | | - [ |
26 | | - 'ParagraphButton', |
27 | | - 'Heading1Button', |
28 | | - 'Heading2Button', |
29 | | - 'Heading3Button', |
30 | | - 'Heading4Button', |
31 | | - 'Heading5Button', |
32 | | - 'Heading6Button', |
33 | | - 'PreButton', |
34 | | - ], |
| 27 | +const config: JWEditorConfig & { loadables: Loadables<Layout> } = { |
| 28 | + loadables: { |
| 29 | + components: [ |
| 30 | + { |
| 31 | + id: 'editor', |
| 32 | + render(editor: JWEditor): Promise<VNode[]> { |
| 33 | + return editor.plugins.get(Parser).parse('text/html', layout); |
| 34 | + }, |
| 35 | + }, |
35 | 36 | ], |
36 | | - ['BoldButton', 'ItalicButton', 'UnderlineButton'], |
37 | | - ['AlignLeftButton', 'AlignCenterButton', 'AlignRightButton', 'AlignJustifyButton'], |
38 | | - ['OrderedListButton', 'UnorderedListButton'], |
39 | | - ['IndentButton', 'OutdentButton'], |
40 | | - ], |
41 | | -}); |
| 37 | + componentZones: [['editor', ['root']]], |
| 38 | + }, |
| 39 | +}; |
| 40 | +editor.configure(config); |
42 | 41 |
|
43 | 42 | editor.start(); |
0 commit comments