dragon-editor 2.0.0-beta.1.4 → 2.0.0-beta.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -147
- package/README_en.md +14 -62
- package/dist/module.json +1 -1
- package/dist/module.mjs +8 -0
- package/dist/runtime/core/components/SvgIcon.vue +30 -21
- package/dist/runtime/core/components/editor/ImageBlock.vue +175 -0
- package/dist/runtime/core/components/editor/OlBlock.vue +135 -0
- package/dist/runtime/core/components/editor/TextBlock.vue +77 -31
- package/dist/runtime/core/components/icon/Accept.vue +5 -0
- package/dist/runtime/core/components/icon/ArrowDown.vue +3 -0
- package/dist/runtime/core/components/icon/ArrowUp.vue +3 -0
- package/dist/runtime/core/components/icon/Cancel.vue +5 -0
- package/dist/runtime/core/components/icon/Delete.vue +3 -0
- package/dist/runtime/core/style/common.css +320 -31
- package/dist/runtime/core/style/viewer.css +191 -0
- package/dist/runtime/core/utils/cursor.d.ts +1 -1
- package/dist/runtime/core/utils/cursor.mjs +16 -4
- package/dist/runtime/core/utils/element.d.ts +2 -1
- package/dist/runtime/core/utils/element.mjs +19 -4
- package/dist/runtime/core/utils/index.d.ts +2 -3
- package/dist/runtime/core/utils/index.mjs +62 -5
- package/dist/runtime/core/utils/keyboard.d.ts +1 -1
- package/dist/runtime/core/utils/keyboard.mjs +500 -41
- package/dist/runtime/core/utils/style.d.ts +6 -2
- package/dist/runtime/core/utils/style.mjs +140 -30
- package/dist/runtime/shared/components/DragonEditor.vue +488 -159
- package/dist/runtime/shared/components/DragonEditorComment.vue +42 -32
- package/dist/runtime/shared/components/DragonEditorViewer.vue +30 -2
- package/package.json +1 -1
- package/dist/runtime/core/style/main.d.ts +0 -1
- package/dist/runtime/core/style/main.mjs +0 -24
|
@@ -2,35 +2,70 @@
|
|
|
2
2
|
position: relative;
|
|
3
3
|
width: 100%;
|
|
4
4
|
padding: 10px 10px 50px;
|
|
5
|
+
background: #fff;
|
|
6
|
+
border-radius: 10px;
|
|
5
7
|
line-height: 1.6;
|
|
8
|
+
box-sizing: border-box;
|
|
6
9
|
}
|
|
7
|
-
.dragon-editor
|
|
10
|
+
.dragon-editor.--comment {
|
|
11
|
+
padding: 10px;
|
|
12
|
+
}
|
|
13
|
+
.dragon-editor h1,
|
|
14
|
+
.dragon-editor h2,
|
|
15
|
+
.dragon-editor h3,
|
|
16
|
+
.dragon-editor h4,
|
|
17
|
+
.dragon-editor h5,
|
|
18
|
+
.dragon-editor h6,
|
|
19
|
+
.dragon-editor p,
|
|
20
|
+
.dragon-editor blockquote,
|
|
21
|
+
.dragon-editor pre,
|
|
22
|
+
.dragon-editor dl,
|
|
23
|
+
.dragon-editor dd,
|
|
24
|
+
.dragon-editor ol,
|
|
25
|
+
.dragon-editor ul,
|
|
26
|
+
.dragon-editor fieldset,
|
|
27
|
+
.dragon-editor legend,
|
|
28
|
+
.dragon-editor figure,
|
|
29
|
+
.dragon-editor menu {
|
|
8
30
|
margin: 0;
|
|
9
31
|
padding: 0;
|
|
10
32
|
border: 0;
|
|
11
33
|
}
|
|
12
|
-
.dragon-editor table,
|
|
34
|
+
.dragon-editor table,
|
|
35
|
+
.dragon-editor th,
|
|
36
|
+
.dragon-editor td {
|
|
13
37
|
border-spacing: 0;
|
|
14
38
|
border-collapse: collapse;
|
|
15
39
|
}
|
|
16
|
-
.dragon-editor ol,
|
|
40
|
+
.dragon-editor ol,
|
|
41
|
+
.dragon-editor ul,
|
|
42
|
+
.dragon-editor li {
|
|
17
43
|
list-style: none;
|
|
18
44
|
}
|
|
19
|
-
.dragon-editor h1,
|
|
45
|
+
.dragon-editor h1,
|
|
46
|
+
.dragon-editor h2,
|
|
47
|
+
.dragon-editor h3,
|
|
48
|
+
.dragon-editor h4,
|
|
49
|
+
.dragon-editor h5,
|
|
50
|
+
.dragon-editor h6 {
|
|
20
51
|
font-size: 1em;
|
|
21
52
|
font-weight: normal;
|
|
22
53
|
}
|
|
23
|
-
.dragon-editor input,
|
|
54
|
+
.dragon-editor input,
|
|
55
|
+
.dragon-editor textarea,
|
|
56
|
+
.dragon-editor select,
|
|
57
|
+
.dragon-editor button {
|
|
24
58
|
margin: 0;
|
|
25
59
|
padding: 0;
|
|
26
60
|
border-radius: 0;
|
|
27
61
|
outline: 0;
|
|
28
62
|
vertical-align: middle;
|
|
29
63
|
}
|
|
30
|
-
.dragon-editor a
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
.dragon-editor
|
|
64
|
+
.dragon-editor a,
|
|
65
|
+
.dragon-editor button,
|
|
66
|
+
.dragon-editor input[type=submit],
|
|
67
|
+
.dragon-editor input[type=button],
|
|
68
|
+
.dragon-editor input[type=reset] {
|
|
34
69
|
border: 0;
|
|
35
70
|
background: transparent;
|
|
36
71
|
cursor: pointer;
|
|
@@ -63,9 +98,217 @@
|
|
|
63
98
|
.dragon-editor .d-deco-through {
|
|
64
99
|
text-decoration: line-through;
|
|
65
100
|
}
|
|
66
|
-
.dragon-editor .d-deco-through.d-deco-underline {
|
|
101
|
+
.dragon-editor .d-deco-through.d-deco-underline, .dragon-editor .d-deco-through.d-deco-link {
|
|
67
102
|
text-decoration: line-through underline;
|
|
68
103
|
}
|
|
104
|
+
.dragon-editor .d-deco-code {
|
|
105
|
+
padding: 2px 5px;
|
|
106
|
+
margin: 0 2px;
|
|
107
|
+
background: #f1f1f1;
|
|
108
|
+
color: #c52e2e;
|
|
109
|
+
border-radius: 2px;
|
|
110
|
+
font-family: Inconsolata, monospace, sans-serif;
|
|
111
|
+
}
|
|
112
|
+
.dragon-editor .d-deco-link {
|
|
113
|
+
color: inherit;
|
|
114
|
+
}
|
|
115
|
+
.dragon-editor .d-h1 {
|
|
116
|
+
font-size: 2em;
|
|
117
|
+
}
|
|
118
|
+
.dragon-editor .d-h2 {
|
|
119
|
+
font-size: 1.5em;
|
|
120
|
+
}
|
|
121
|
+
.dragon-editor .d-h3 {
|
|
122
|
+
font-size: 1.17em;
|
|
123
|
+
}
|
|
124
|
+
.dragon-editor .d-h4 {
|
|
125
|
+
font-size: 1em;
|
|
126
|
+
}
|
|
127
|
+
.dragon-editor .d-h5 {
|
|
128
|
+
font-size: 0.83em;
|
|
129
|
+
}
|
|
130
|
+
.dragon-editor .d-h6 {
|
|
131
|
+
font-size: 0.67em;
|
|
132
|
+
}
|
|
133
|
+
.dragon-editor .d-row-block {
|
|
134
|
+
padding-left: 50px;
|
|
135
|
+
border-radius: 5px;
|
|
136
|
+
background: transparent;
|
|
137
|
+
transition: background 0.25s ease;
|
|
138
|
+
}
|
|
139
|
+
.dragon-editor .d-row-block:hover {
|
|
140
|
+
background: #fafafa;
|
|
141
|
+
}
|
|
142
|
+
.dragon-editor .d-text-block {
|
|
143
|
+
cursor: text;
|
|
144
|
+
outline: 0;
|
|
145
|
+
}
|
|
146
|
+
.dragon-editor .d-text-block:empty {
|
|
147
|
+
min-height: 1.6em;
|
|
148
|
+
}
|
|
149
|
+
.dragon-editor .d-text-block:empty::after {
|
|
150
|
+
display: inline;
|
|
151
|
+
content: "Write text";
|
|
152
|
+
color: #ccc;
|
|
153
|
+
}
|
|
154
|
+
.dragon-editor .d-ol-block {
|
|
155
|
+
padding-left: 30px;
|
|
156
|
+
cursor: text;
|
|
157
|
+
list-style: decimal;
|
|
158
|
+
}
|
|
159
|
+
.dragon-editor .d-ol-block .d-li-item {
|
|
160
|
+
list-style: inherit;
|
|
161
|
+
outline: 0;
|
|
162
|
+
}
|
|
163
|
+
.dragon-editor .d-ol-block .d-li-item:empty {
|
|
164
|
+
min-height: 1.6em;
|
|
165
|
+
}
|
|
166
|
+
.dragon-editor .d-ol-block .d-li-item:empty::after {
|
|
167
|
+
display: inline;
|
|
168
|
+
content: "Write text";
|
|
169
|
+
color: #ccc;
|
|
170
|
+
}
|
|
171
|
+
.dragon-editor .d-image-block {
|
|
172
|
+
display: flex;
|
|
173
|
+
flex-direction: column;
|
|
174
|
+
align-items: center;
|
|
175
|
+
row-gap: 5px;
|
|
176
|
+
}
|
|
177
|
+
.dragon-editor .d-image-block.d-align-left {
|
|
178
|
+
align-items: flex-start;
|
|
179
|
+
}
|
|
180
|
+
.dragon-editor .d-image-block.d-align-right {
|
|
181
|
+
align-items: flex-end;
|
|
182
|
+
}
|
|
183
|
+
.dragon-editor .d-image-block.--1 .d-image-area {
|
|
184
|
+
width: 5%;
|
|
185
|
+
}
|
|
186
|
+
.dragon-editor .d-image-block.--2 .d-image-area {
|
|
187
|
+
width: 10%;
|
|
188
|
+
}
|
|
189
|
+
.dragon-editor .d-image-block.--3 .d-image-area {
|
|
190
|
+
width: 15%;
|
|
191
|
+
}
|
|
192
|
+
.dragon-editor .d-image-block.--4 .d-image-area {
|
|
193
|
+
width: 20%;
|
|
194
|
+
}
|
|
195
|
+
.dragon-editor .d-image-block.--5 .d-image-area {
|
|
196
|
+
width: 25%;
|
|
197
|
+
}
|
|
198
|
+
.dragon-editor .d-image-block.--6 .d-image-area {
|
|
199
|
+
width: 30%;
|
|
200
|
+
}
|
|
201
|
+
.dragon-editor .d-image-block.--7 .d-image-area {
|
|
202
|
+
width: 35%;
|
|
203
|
+
}
|
|
204
|
+
.dragon-editor .d-image-block.--8 .d-image-area {
|
|
205
|
+
width: 40%;
|
|
206
|
+
}
|
|
207
|
+
.dragon-editor .d-image-block.--9 .d-image-area {
|
|
208
|
+
width: 45%;
|
|
209
|
+
}
|
|
210
|
+
.dragon-editor .d-image-block.--10 .d-image-area {
|
|
211
|
+
width: 50%;
|
|
212
|
+
}
|
|
213
|
+
.dragon-editor .d-image-block.--11 .d-image-area {
|
|
214
|
+
width: 55%;
|
|
215
|
+
}
|
|
216
|
+
.dragon-editor .d-image-block.--12 .d-image-area {
|
|
217
|
+
width: 60%;
|
|
218
|
+
}
|
|
219
|
+
.dragon-editor .d-image-block.--13 .d-image-area {
|
|
220
|
+
width: 65%;
|
|
221
|
+
}
|
|
222
|
+
.dragon-editor .d-image-block.--14 .d-image-area {
|
|
223
|
+
width: 70%;
|
|
224
|
+
}
|
|
225
|
+
.dragon-editor .d-image-block.--15 .d-image-area {
|
|
226
|
+
width: 75%;
|
|
227
|
+
}
|
|
228
|
+
.dragon-editor .d-image-block.--16 .d-image-area {
|
|
229
|
+
width: 80%;
|
|
230
|
+
}
|
|
231
|
+
.dragon-editor .d-image-block.--17 .d-image-area {
|
|
232
|
+
width: 85%;
|
|
233
|
+
}
|
|
234
|
+
.dragon-editor .d-image-block.--18 .d-image-area {
|
|
235
|
+
width: 90%;
|
|
236
|
+
}
|
|
237
|
+
.dragon-editor .d-image-block.--19 .d-image-area {
|
|
238
|
+
width: 95%;
|
|
239
|
+
}
|
|
240
|
+
.dragon-editor .d-image-block.--20 .d-image-area {
|
|
241
|
+
width: 100%;
|
|
242
|
+
}
|
|
243
|
+
.dragon-editor .d-image-block .d-image-area {
|
|
244
|
+
position: relative;
|
|
245
|
+
}
|
|
246
|
+
.dragon-editor .d-image-block .d-image-area .d-img {
|
|
247
|
+
width: 100%;
|
|
248
|
+
height: auto;
|
|
249
|
+
}
|
|
250
|
+
.dragon-editor .d-image-block .d-image-area .d-btn-size-left,
|
|
251
|
+
.dragon-editor .d-image-block .d-image-area .d-btn-size-right {
|
|
252
|
+
position: absolute;
|
|
253
|
+
top: 50%;
|
|
254
|
+
width: 8px;
|
|
255
|
+
height: 60px;
|
|
256
|
+
background: #fff;
|
|
257
|
+
border: 2px solid #555;
|
|
258
|
+
border-radius: 6px;
|
|
259
|
+
cursor: col-resize;
|
|
260
|
+
}
|
|
261
|
+
.dragon-editor .d-image-block .d-image-area .d-btn-size-left {
|
|
262
|
+
left: 0;
|
|
263
|
+
transform: translate(-50%, -50%);
|
|
264
|
+
}
|
|
265
|
+
.dragon-editor .d-image-block .d-image-area .d-btn-size-right {
|
|
266
|
+
right: 0;
|
|
267
|
+
transform: translate(50%, -50%);
|
|
268
|
+
}
|
|
269
|
+
.dragon-editor .d-image-block .d-caption {
|
|
270
|
+
width: 100%;
|
|
271
|
+
color: #ccc;
|
|
272
|
+
font-size: 1rem;
|
|
273
|
+
cursor: text;
|
|
274
|
+
outline: 0;
|
|
275
|
+
}
|
|
276
|
+
.dragon-editor .d-image-block .d-caption:empty {
|
|
277
|
+
min-height: 1.6em;
|
|
278
|
+
}
|
|
279
|
+
.dragon-editor .d-image-block .d-caption:empty::after {
|
|
280
|
+
display: inline;
|
|
281
|
+
content: "Write caption";
|
|
282
|
+
}
|
|
283
|
+
.dragon-editor .d-block-list {
|
|
284
|
+
display: flex;
|
|
285
|
+
flex-direction: column;
|
|
286
|
+
row-gap: 5px;
|
|
287
|
+
position: absolute;
|
|
288
|
+
top: 100%;
|
|
289
|
+
left: 0;
|
|
290
|
+
width: 100px;
|
|
291
|
+
padding: 5px;
|
|
292
|
+
background: #fff;
|
|
293
|
+
border-radius: 5px;
|
|
294
|
+
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
|
295
|
+
opacity: 0;
|
|
296
|
+
visibility: hidden;
|
|
297
|
+
transition: all 0.25s ease;
|
|
298
|
+
}
|
|
299
|
+
.dragon-editor .d-block-list.--active {
|
|
300
|
+
opacity: 1;
|
|
301
|
+
visibility: visible;
|
|
302
|
+
}
|
|
303
|
+
.dragon-editor .d-block-list .d-btn-block {
|
|
304
|
+
display: flex;
|
|
305
|
+
align-items: center;
|
|
306
|
+
column-gap: 10px;
|
|
307
|
+
font-size: 14px;
|
|
308
|
+
}
|
|
309
|
+
.dragon-editor .d-block-list .d-btn-block .d-icon {
|
|
310
|
+
width: 20px;
|
|
311
|
+
}
|
|
69
312
|
.dragon-editor .d-left-menu {
|
|
70
313
|
display: flex;
|
|
71
314
|
column-gap: 4px;
|
|
@@ -75,6 +318,7 @@
|
|
|
75
318
|
opacity: 0;
|
|
76
319
|
visibility: hidden;
|
|
77
320
|
transition: all 0.25s ease;
|
|
321
|
+
z-index: 100;
|
|
78
322
|
}
|
|
79
323
|
.dragon-editor .d-left-menu.--active {
|
|
80
324
|
opacity: 1;
|
|
@@ -104,7 +348,7 @@
|
|
|
104
348
|
background: #757575;
|
|
105
349
|
}
|
|
106
350
|
.dragon-editor .d-left-menu .d-btn-menu-pop::before, .dragon-editor .d-left-menu .d-btn-menu-pop::after {
|
|
107
|
-
|
|
351
|
+
display: block;
|
|
108
352
|
content: "";
|
|
109
353
|
position: absolute;
|
|
110
354
|
top: 50%;
|
|
@@ -133,38 +377,21 @@
|
|
|
133
377
|
border-radius: 50%;
|
|
134
378
|
box-shadow: 0 5px 0 #837c7c, 0 10px 0 #837c7c, 5px 0 0 #837c7c, 5px 5px 0 #837c7c, 5px 10px 0 #837c7c;
|
|
135
379
|
}
|
|
136
|
-
.dragon-editor .d-row-block {
|
|
137
|
-
padding-left: 50px;
|
|
138
|
-
border-radius: 5px;
|
|
139
|
-
background: transparent;
|
|
140
|
-
transition: background 0.25s ease;
|
|
141
|
-
}
|
|
142
|
-
.dragon-editor .d-row-block:hover {
|
|
143
|
-
background: #fafafa;
|
|
144
|
-
}
|
|
145
|
-
.dragon-editor .d-text-block {
|
|
146
|
-
cursor: text;
|
|
147
|
-
outline: 0;
|
|
148
|
-
}
|
|
149
|
-
.dragon-editor .d-text-block:empty {
|
|
150
|
-
min-height: 1.6em;
|
|
151
|
-
}
|
|
152
|
-
.dragon-editor .d-block-list {
|
|
153
|
-
display: none;
|
|
154
|
-
}
|
|
155
380
|
.dragon-editor .d-style-menu {
|
|
156
381
|
display: flex;
|
|
157
382
|
align-items: center;
|
|
158
383
|
position: absolute;
|
|
159
384
|
top: 0;
|
|
160
|
-
left:
|
|
385
|
+
left: 50%;
|
|
161
386
|
height: 30px;
|
|
162
387
|
background: #fff;
|
|
163
388
|
border-radius: 5px;
|
|
164
389
|
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
|
165
390
|
opacity: 0;
|
|
166
391
|
visibility: hidden;
|
|
392
|
+
transform: translateX(calc(-50% + 25px));
|
|
167
393
|
transition: all 0.25s ease;
|
|
394
|
+
z-index: 100;
|
|
168
395
|
}
|
|
169
396
|
.dragon-editor .d-style-menu.--active {
|
|
170
397
|
opacity: 1;
|
|
@@ -173,6 +400,7 @@
|
|
|
173
400
|
.dragon-editor .d-style-menu .d-column {
|
|
174
401
|
display: flex;
|
|
175
402
|
column-gap: 2px;
|
|
403
|
+
position: relative;
|
|
176
404
|
padding: 5px;
|
|
177
405
|
border-right: 1px solid #eee;
|
|
178
406
|
box-sizing: border-box;
|
|
@@ -180,6 +408,9 @@
|
|
|
180
408
|
.dragon-editor .d-style-menu .d-column:last-child {
|
|
181
409
|
border-right: 0;
|
|
182
410
|
}
|
|
411
|
+
.dragon-editor .d-style-menu .d-column:empty {
|
|
412
|
+
display: none;
|
|
413
|
+
}
|
|
183
414
|
.dragon-editor .d-style-menu .d-btn {
|
|
184
415
|
width: 20px;
|
|
185
416
|
height: 20px;
|
|
@@ -188,3 +419,61 @@
|
|
|
188
419
|
.dragon-editor .d-style-menu .d-btn.--active {
|
|
189
420
|
fill: blue;
|
|
190
421
|
}
|
|
422
|
+
.dragon-editor .d-style-menu .d-btn.--hug {
|
|
423
|
+
width: auto;
|
|
424
|
+
min-width: 60px;
|
|
425
|
+
}
|
|
426
|
+
.dragon-editor .d-style-menu .d-child-list {
|
|
427
|
+
display: none;
|
|
428
|
+
flex-direction: column;
|
|
429
|
+
row-gap: 4px;
|
|
430
|
+
position: absolute;
|
|
431
|
+
top: 100%;
|
|
432
|
+
left: 0;
|
|
433
|
+
right: 0;
|
|
434
|
+
padding: 4px 0;
|
|
435
|
+
background: #fff;
|
|
436
|
+
border: 1px solid #f1f1f1;
|
|
437
|
+
border-top: 0;
|
|
438
|
+
border-radius: 0 0 5px 5px;
|
|
439
|
+
}
|
|
440
|
+
.dragon-editor .d-style-menu .d-child-list.--active {
|
|
441
|
+
display: flex;
|
|
442
|
+
}
|
|
443
|
+
.dragon-editor .d-link-box {
|
|
444
|
+
display: flex;
|
|
445
|
+
justify-content: space-between;
|
|
446
|
+
align-items: center;
|
|
447
|
+
column-gap: 10px;
|
|
448
|
+
position: absolute;
|
|
449
|
+
top: 0;
|
|
450
|
+
left: 0;
|
|
451
|
+
width: 250px;
|
|
452
|
+
height: 30px;
|
|
453
|
+
padding: 0 5px;
|
|
454
|
+
background: #fff;
|
|
455
|
+
border-radius: 5px;
|
|
456
|
+
box-sizing: border-box;
|
|
457
|
+
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
|
458
|
+
opacity: 0;
|
|
459
|
+
visibility: hidden;
|
|
460
|
+
transition: all 0.25s ease;
|
|
461
|
+
}
|
|
462
|
+
.dragon-editor .d-link-box.--active {
|
|
463
|
+
opacity: 1;
|
|
464
|
+
visibility: visible;
|
|
465
|
+
}
|
|
466
|
+
.dragon-editor .d-link-box .d-input {
|
|
467
|
+
flex: 1;
|
|
468
|
+
border: 0;
|
|
469
|
+
border-bottom: 2px solid #f1f1f1;
|
|
470
|
+
}
|
|
471
|
+
.dragon-editor .d-link-box .d-btn-link {
|
|
472
|
+
display: flex;
|
|
473
|
+
justify-content: center;
|
|
474
|
+
align-items: center;
|
|
475
|
+
width: 30px;
|
|
476
|
+
}
|
|
477
|
+
.dragon-editor .d-link-box .d-btn-link .d-icon {
|
|
478
|
+
height: 16px;
|
|
479
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
.dragon-editor-viewer {
|
|
2
|
+
width: 100%;
|
|
3
|
+
padding: 10px;
|
|
4
|
+
line-height: 1.6;
|
|
5
|
+
}
|
|
6
|
+
.dragon-editor-viewer h1,
|
|
7
|
+
.dragon-editor-viewer h2,
|
|
8
|
+
.dragon-editor-viewer h3,
|
|
9
|
+
.dragon-editor-viewer h4,
|
|
10
|
+
.dragon-editor-viewer h5,
|
|
11
|
+
.dragon-editor-viewer h6,
|
|
12
|
+
.dragon-editor-viewer p,
|
|
13
|
+
.dragon-editor-viewer blockquote,
|
|
14
|
+
.dragon-editor-viewer pre,
|
|
15
|
+
.dragon-editor-viewer dl,
|
|
16
|
+
.dragon-editor-viewer dd,
|
|
17
|
+
.dragon-editor-viewer ol,
|
|
18
|
+
.dragon-editor-viewer ul,
|
|
19
|
+
.dragon-editor-viewer fieldset,
|
|
20
|
+
.dragon-editor-viewer legend,
|
|
21
|
+
.dragon-editor-viewer figure,
|
|
22
|
+
.dragon-editor-viewer menu {
|
|
23
|
+
margin: 0;
|
|
24
|
+
padding: 0;
|
|
25
|
+
border: 0;
|
|
26
|
+
}
|
|
27
|
+
.dragon-editor-viewer table,
|
|
28
|
+
.dragon-editor-viewer th,
|
|
29
|
+
.dragon-editor-viewer td {
|
|
30
|
+
border-spacing: 0;
|
|
31
|
+
border-collapse: collapse;
|
|
32
|
+
}
|
|
33
|
+
.dragon-editor-viewer ol,
|
|
34
|
+
.dragon-editor-viewer ul,
|
|
35
|
+
.dragon-editor-viewer li {
|
|
36
|
+
list-style: none;
|
|
37
|
+
}
|
|
38
|
+
.dragon-editor-viewer h1,
|
|
39
|
+
.dragon-editor-viewer h2,
|
|
40
|
+
.dragon-editor-viewer h3,
|
|
41
|
+
.dragon-editor-viewer h4,
|
|
42
|
+
.dragon-editor-viewer h5,
|
|
43
|
+
.dragon-editor-viewer h6 {
|
|
44
|
+
font-size: 1em;
|
|
45
|
+
font-weight: normal;
|
|
46
|
+
}
|
|
47
|
+
.dragon-editor-viewer input,
|
|
48
|
+
.dragon-editor-viewer textarea,
|
|
49
|
+
.dragon-editor-viewer select,
|
|
50
|
+
.dragon-editor-viewer button {
|
|
51
|
+
margin: 0;
|
|
52
|
+
padding: 0;
|
|
53
|
+
border-radius: 0;
|
|
54
|
+
outline: 0;
|
|
55
|
+
vertical-align: middle;
|
|
56
|
+
}
|
|
57
|
+
.dragon-editor-viewer a,
|
|
58
|
+
.dragon-editor-viewer button,
|
|
59
|
+
.dragon-editor-viewer input[type=submit],
|
|
60
|
+
.dragon-editor-viewer input[type=button],
|
|
61
|
+
.dragon-editor-viewer input[type=reset] {
|
|
62
|
+
border: 0;
|
|
63
|
+
background: transparent;
|
|
64
|
+
cursor: pointer;
|
|
65
|
+
}
|
|
66
|
+
.dragon-editor-viewer img {
|
|
67
|
+
border: 0;
|
|
68
|
+
vertical-align: top;
|
|
69
|
+
}
|
|
70
|
+
.dragon-editor-viewer .d-align-left {
|
|
71
|
+
text-align: left;
|
|
72
|
+
}
|
|
73
|
+
.dragon-editor-viewer .d-align-center {
|
|
74
|
+
text-align: center;
|
|
75
|
+
}
|
|
76
|
+
.dragon-editor-viewer .d-align-right {
|
|
77
|
+
text-align: right;
|
|
78
|
+
}
|
|
79
|
+
.dragon-editor-viewer .d-deco-bold {
|
|
80
|
+
font-weight: bold;
|
|
81
|
+
}
|
|
82
|
+
.dragon-editor-viewer .d-deco-italic {
|
|
83
|
+
font-style: italic;
|
|
84
|
+
}
|
|
85
|
+
.dragon-editor-viewer .d-deco-underline {
|
|
86
|
+
text-decoration: underline;
|
|
87
|
+
}
|
|
88
|
+
.dragon-editor-viewer .d-deco-underline.d-deco-through {
|
|
89
|
+
text-decoration: underline line-through;
|
|
90
|
+
}
|
|
91
|
+
.dragon-editor-viewer .d-deco-through {
|
|
92
|
+
text-decoration: line-through;
|
|
93
|
+
}
|
|
94
|
+
.dragon-editor-viewer .d-deco-through.d-deco-underline, .dragon-editor-viewer .d-deco-through.d-deco-link {
|
|
95
|
+
text-decoration: line-through underline;
|
|
96
|
+
}
|
|
97
|
+
.dragon-editor-viewer .d-deco-code {
|
|
98
|
+
padding: 2px 5px;
|
|
99
|
+
margin: 0 2px;
|
|
100
|
+
background: #f1f1f1;
|
|
101
|
+
color: #c52e2e;
|
|
102
|
+
border-radius: 2px;
|
|
103
|
+
font-family: Inconsolata, monospace, sans-serif;
|
|
104
|
+
}
|
|
105
|
+
.dragon-editor-viewer .d-deco-link {
|
|
106
|
+
color: inherit;
|
|
107
|
+
}
|
|
108
|
+
.dragon-editor-viewer .d-text-block:empty {
|
|
109
|
+
min-height: 1.6em;
|
|
110
|
+
}
|
|
111
|
+
.dragon-editor-viewer .d-image-block {
|
|
112
|
+
display: flex;
|
|
113
|
+
flex-direction: column;
|
|
114
|
+
align-items: center;
|
|
115
|
+
row-gap: 5px;
|
|
116
|
+
}
|
|
117
|
+
.dragon-editor-viewer .d-image-block.d-align-left {
|
|
118
|
+
align-items: flex-start;
|
|
119
|
+
}
|
|
120
|
+
.dragon-editor-viewer .d-image-block.d-align-right {
|
|
121
|
+
align-items: flex-end;
|
|
122
|
+
}
|
|
123
|
+
.dragon-editor-viewer .d-image-block.--1 .d-image-area {
|
|
124
|
+
width: 5%;
|
|
125
|
+
}
|
|
126
|
+
.dragon-editor-viewer .d-image-block.--2 .d-image-area {
|
|
127
|
+
width: 10%;
|
|
128
|
+
}
|
|
129
|
+
.dragon-editor-viewer .d-image-block.--3 .d-image-area {
|
|
130
|
+
width: 15%;
|
|
131
|
+
}
|
|
132
|
+
.dragon-editor-viewer .d-image-block.--4 .d-image-area {
|
|
133
|
+
width: 20%;
|
|
134
|
+
}
|
|
135
|
+
.dragon-editor-viewer .d-image-block.--5 .d-image-area {
|
|
136
|
+
width: 25%;
|
|
137
|
+
}
|
|
138
|
+
.dragon-editor-viewer .d-image-block.--6 .d-image-area {
|
|
139
|
+
width: 30%;
|
|
140
|
+
}
|
|
141
|
+
.dragon-editor-viewer .d-image-block.--7 .d-image-area {
|
|
142
|
+
width: 35%;
|
|
143
|
+
}
|
|
144
|
+
.dragon-editor-viewer .d-image-block.--8 .d-image-area {
|
|
145
|
+
width: 40%;
|
|
146
|
+
}
|
|
147
|
+
.dragon-editor-viewer .d-image-block.--9 .d-image-area {
|
|
148
|
+
width: 45%;
|
|
149
|
+
}
|
|
150
|
+
.dragon-editor-viewer .d-image-block.--10 .d-image-area {
|
|
151
|
+
width: 50%;
|
|
152
|
+
}
|
|
153
|
+
.dragon-editor-viewer .d-image-block.--11 .d-image-area {
|
|
154
|
+
width: 55%;
|
|
155
|
+
}
|
|
156
|
+
.dragon-editor-viewer .d-image-block.--12 .d-image-area {
|
|
157
|
+
width: 60%;
|
|
158
|
+
}
|
|
159
|
+
.dragon-editor-viewer .d-image-block.--13 .d-image-area {
|
|
160
|
+
width: 65%;
|
|
161
|
+
}
|
|
162
|
+
.dragon-editor-viewer .d-image-block.--14 .d-image-area {
|
|
163
|
+
width: 70%;
|
|
164
|
+
}
|
|
165
|
+
.dragon-editor-viewer .d-image-block.--15 .d-image-area {
|
|
166
|
+
width: 75%;
|
|
167
|
+
}
|
|
168
|
+
.dragon-editor-viewer .d-image-block.--16 .d-image-area {
|
|
169
|
+
width: 80%;
|
|
170
|
+
}
|
|
171
|
+
.dragon-editor-viewer .d-image-block.--17 .d-image-area {
|
|
172
|
+
width: 85%;
|
|
173
|
+
}
|
|
174
|
+
.dragon-editor-viewer .d-image-block.--18 .d-image-area {
|
|
175
|
+
width: 90%;
|
|
176
|
+
}
|
|
177
|
+
.dragon-editor-viewer .d-image-block.--19 .d-image-area {
|
|
178
|
+
width: 95%;
|
|
179
|
+
}
|
|
180
|
+
.dragon-editor-viewer .d-image-block.--20 .d-image-area {
|
|
181
|
+
width: 100%;
|
|
182
|
+
}
|
|
183
|
+
.dragon-editor-viewer .d-image-block .d-image-area .d-img {
|
|
184
|
+
width: 100%;
|
|
185
|
+
height: auto;
|
|
186
|
+
}
|
|
187
|
+
.dragon-editor-viewer .d-image-block .d-caption {
|
|
188
|
+
width: 100%;
|
|
189
|
+
color: #ccc;
|
|
190
|
+
font-size: 1rem;
|
|
191
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { cursorSelection, arrangementCursorData } from "../../../types";
|
|
2
2
|
export declare function setCursor(target: Node, idx: number): void;
|
|
3
3
|
export declare function getCursor(): cursorSelection;
|
|
4
|
-
export declare function getArrangementCursorData(): arrangementCursorData;
|
|
4
|
+
export declare function getArrangementCursorData(parentCursorData: any): arrangementCursorData;
|
|
@@ -9,6 +9,10 @@ export function setCursor(target, idx) {
|
|
|
9
9
|
}
|
|
10
10
|
const select = window.getSelection();
|
|
11
11
|
const range = document.createRange();
|
|
12
|
+
const realLength = $target.textContent?.length;
|
|
13
|
+
if (realLength < idx) {
|
|
14
|
+
idx = realLength;
|
|
15
|
+
}
|
|
12
16
|
range.setStart($target, idx);
|
|
13
17
|
range.collapse(true);
|
|
14
18
|
select.removeAllRanges();
|
|
@@ -25,10 +29,18 @@ export function getCursor() {
|
|
|
25
29
|
endOffset: select.focusOffset
|
|
26
30
|
};
|
|
27
31
|
}
|
|
28
|
-
export function getArrangementCursorData() {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
export function getArrangementCursorData(parentCursorData) {
|
|
33
|
+
let cursorData = getCursor();
|
|
34
|
+
if (cursorData.startNode === null) {
|
|
35
|
+
cursorData = parentCursorData;
|
|
36
|
+
}
|
|
37
|
+
let startNode = cursorData.startNode;
|
|
38
|
+
let editableElement = findEditableElement(startNode);
|
|
39
|
+
if (editableElement === null) {
|
|
40
|
+
cursorData = parentCursorData;
|
|
41
|
+
startNode = cursorData.startNode;
|
|
42
|
+
editableElement = findEditableElement(startNode);
|
|
43
|
+
}
|
|
32
44
|
let childNode;
|
|
33
45
|
let childIdx = -1;
|
|
34
46
|
let fixIdx = 0;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export declare function findEditableElement(node: Node):
|
|
1
|
+
export declare function findEditableElement(node: Node): HTMLElement | null;
|
|
2
|
+
export declare function findLiElement(node: Node): HTMLElement | null;
|
|
2
3
|
export declare function findChildNumber(parent: HTMLElement, child: Node): number;
|
|
@@ -3,17 +3,32 @@ export function findEditableElement(node) {
|
|
|
3
3
|
if (node.constructor.name === "Text") {
|
|
4
4
|
return findEditableElement(node.parentNode);
|
|
5
5
|
} else {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
if (node.getAttribute) {
|
|
7
|
+
const hasAttr = node.getAttribute("contenteditable") !== null;
|
|
8
|
+
if (hasAttr) {
|
|
9
|
+
return node;
|
|
10
|
+
} else {
|
|
11
|
+
return findEditableElement(node.parentNode);
|
|
12
|
+
}
|
|
9
13
|
} else {
|
|
10
|
-
return
|
|
14
|
+
return null;
|
|
11
15
|
}
|
|
12
16
|
}
|
|
13
17
|
} else {
|
|
14
18
|
return null;
|
|
15
19
|
}
|
|
16
20
|
}
|
|
21
|
+
export function findLiElement(node) {
|
|
22
|
+
if (node) {
|
|
23
|
+
if (node.constructor.name !== "HTMLLIElement") {
|
|
24
|
+
return findLiElement(node.parentNode);
|
|
25
|
+
} else {
|
|
26
|
+
return node;
|
|
27
|
+
}
|
|
28
|
+
} else {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
17
32
|
export function findChildNumber(parent, child) {
|
|
18
33
|
let idx = 0;
|
|
19
34
|
parent.childNodes.forEach((item, count) => {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function createBlock(name: string): textBlock;
|
|
1
|
+
import { allBlock } from "../../../types/index";
|
|
2
|
+
export declare function createBlock(name: string, value?: object): allBlock;
|
|
4
3
|
export * from "./keyboard";
|
|
5
4
|
export * from "./cursor";
|
|
6
5
|
export * from "./style";
|