Skip to content

Commit 24dfa67

Browse files
Use ts
1 parent 854538a commit 24dfa67

File tree

1 file changed

+180
-0
lines changed

1 file changed

+180
-0
lines changed

src/index.ts

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
import { InterfaceConfig } from '@directus/shared/types';
2+
import InterfaceComponent from './interface.vue';
3+
4+
export default {
5+
id: 'extension-editorjs',
6+
name: 'Editor.js',
7+
description: 'Block-styled editor for rich media stories, outputs clean data in JSON using Editor.js',
8+
icon: 'add_circle',
9+
component: InterfaceComponent,
10+
types: ['json'],
11+
options: [
12+
{
13+
field: 'placeholder',
14+
name: '$t:placeholder',
15+
meta: {
16+
width: 'half',
17+
interface: 'text-input',
18+
options: {
19+
placeholder: '$t:enter_a_placeholder',
20+
},
21+
},
22+
},
23+
{
24+
field: 'font',
25+
name: '$t:font',
26+
type: 'string',
27+
meta: {
28+
width: 'half',
29+
interface: 'select-dropdown',
30+
options: {
31+
choices: [
32+
{
33+
text: '$t:sans_serif',
34+
value: 'sans-serif',
35+
},
36+
{
37+
text: '$t:monospace',
38+
value: 'monospace',
39+
},
40+
{
41+
text: '$t:serif',
42+
value: 'serif',
43+
},
44+
],
45+
},
46+
},
47+
schema: {
48+
default_value: 'sans-serif',
49+
},
50+
},
51+
{
52+
field: 'tools',
53+
name: '$t:interfaces.input-rich-text-html.toolbar',
54+
type: 'json',
55+
schema: {
56+
default_value: ['header', 'list', 'code', 'image', 'paragraph', 'delimiter', 'checklist', 'quote', 'underline'],
57+
},
58+
meta: {
59+
width: 'half',
60+
interface: 'select-multiple-dropdown',
61+
options: {
62+
choices: [
63+
{
64+
value: 'header',
65+
text: 'Header',
66+
},
67+
{
68+
value: 'list',
69+
text: 'List',
70+
},
71+
{
72+
value: 'embed',
73+
text: 'Embed',
74+
},
75+
{
76+
value: 'paragraph',
77+
text: 'Paragraph',
78+
},
79+
{
80+
value: 'code',
81+
text: 'Code',
82+
},
83+
{
84+
value: 'image',
85+
text: 'Image',
86+
},
87+
{
88+
value: 'warning',
89+
text: 'Warning',
90+
},
91+
{
92+
value: 'attaches',
93+
text: 'Attaches',
94+
},
95+
{
96+
value: 'table',
97+
text: 'Table',
98+
},
99+
{
100+
value: 'quote',
101+
text: 'Quote',
102+
},
103+
{
104+
value: 'marker',
105+
text: 'Marker',
106+
},
107+
{
108+
value: 'simpleimage',
109+
text: 'Simple Image',
110+
},
111+
{
112+
value: 'underline',
113+
text: 'Underline',
114+
},
115+
{
116+
value: 'inlinecode',
117+
text: 'Inline Code',
118+
},
119+
{
120+
value: 'textalign',
121+
text: 'Align',
122+
},
123+
{
124+
value: 'alert',
125+
text: 'Alert',
126+
},
127+
{
128+
value: 'strikethrough',
129+
text: 'Strikethrough',
130+
},
131+
{
132+
value: 'delimiter',
133+
text: 'Delimiter',
134+
},
135+
{
136+
value: 'checklist',
137+
text: 'Checklist',
138+
},
139+
{
140+
value: 'personality',
141+
text: 'Personality',
142+
},
143+
{
144+
value: 'raw',
145+
text: 'Raw HTML',
146+
},
147+
],
148+
},
149+
},
150+
},
151+
{
152+
field: 'bordered',
153+
name: 'Border',
154+
type: 'boolean',
155+
meta: {
156+
width: 'half',
157+
interface: 'boolean',
158+
options: {
159+
label: '$t:enabled',
160+
},
161+
},
162+
schema: {
163+
default_value: true,
164+
},
165+
},
166+
{
167+
field: 'folder',
168+
name: '$t:interfaces.system-folder.folder',
169+
type: 'uuid',
170+
meta: {
171+
width: 'full',
172+
interface: 'system-folder',
173+
note: '$t:interfaces.system-folder.field_hint',
174+
},
175+
schema: {
176+
default_value: undefined,
177+
},
178+
},
179+
],
180+
} as InterfaceConfig;

0 commit comments

Comments
 (0)