vue-editify 0.1.43 → 0.1.45
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/examples/App.vue +57 -3
- package/lib/core/function.d.ts +83 -43
- package/lib/core/rule.d.ts +14 -2
- package/lib/editify/editify.vue.d.ts +1 -1
- package/lib/editify/props.d.ts +1 -1
- package/lib/editify.es.js +989 -230
- package/lib/editify.umd.js +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/style.css +1 -1
- package/package.json +2 -2
- package/src/components/toolbar/toolbar.vue +539 -50
- package/src/core/function.ts +219 -43
- package/src/core/rule.ts +281 -42
- package/src/core/tool.ts +6 -6
- package/src/editify/editify.less +10 -0
- package/src/editify/editify.vue +144 -59
- package/src/editify/props.ts +1 -1
- package/src/icon/iconfont.css +16 -0
- package/src/icon/iconfont.ttf +0 -0
- package/src/icon/iconfont.woff +0 -0
- package/src/index.ts +3 -3
- package/src/locale/en_US.ts +4 -0
- package/src/locale/zh_CN.ts +4 -0
- package/vite.config.ts.timestamp-1715686169942-5a15122e86ee2.mjs +0 -48
package/src/core/rule.ts
CHANGED
@@ -1,8 +1,175 @@
|
|
1
1
|
import { AlexEditor, AlexElement } from 'alex-editor'
|
2
2
|
import { LanguagesItemType, getHljsHtml } from '../hljs'
|
3
|
-
import { isList, isTask } from './function'
|
3
|
+
import { isList, isTask, getTableSize, getCellSpanNumber } from './function'
|
4
4
|
import { common as DapCommon } from 'dap-util'
|
5
5
|
|
6
|
+
/**
|
7
|
+
* 自动补全表格行和列
|
8
|
+
* @param editor
|
9
|
+
* @param rowElements
|
10
|
+
* @param rowNumber
|
11
|
+
* @param columnNumber
|
12
|
+
*/
|
13
|
+
const autocompleteTableCells = (editor: AlexEditor, rowElements: AlexElement[], rowNumber: number, columnNumber: number) => {
|
14
|
+
//遍历所有的单元格
|
15
|
+
AlexElement.flatElements(rowElements).forEach(item => {
|
16
|
+
if (item.parsedom == 'td' && item.hasMarks()) {
|
17
|
+
//删除被合并的标识
|
18
|
+
if (item.marks!['data-editify-merged']) {
|
19
|
+
delete item.marks!['data-editify-merged']
|
20
|
+
}
|
21
|
+
//获取colspan
|
22
|
+
const colspan = isNaN(Number(item.marks!['colspan'])) ? 1 : Number(item.marks!['colspan'])
|
23
|
+
//获取rowspan
|
24
|
+
const rowspan = isNaN(Number(item.marks!['rowspan'])) ? 1 : Number(item.marks!['rowspan'])
|
25
|
+
//针对colspan>1的单元格在后面补全隐藏的单元格
|
26
|
+
if (colspan > 1) {
|
27
|
+
let i = 1
|
28
|
+
//补全的数量小于需要补全的数量并且列总数量小于理论数量
|
29
|
+
while (i < colspan && item.parent!.children!.length < columnNumber) {
|
30
|
+
const column = new AlexElement(
|
31
|
+
'inblock',
|
32
|
+
'td',
|
33
|
+
{
|
34
|
+
'data-editify-merged': 'true'
|
35
|
+
},
|
36
|
+
null,
|
37
|
+
null
|
38
|
+
)
|
39
|
+
const breakElement = new AlexElement('closed', 'br', null, null, null)
|
40
|
+
editor.addElementTo(breakElement, column)
|
41
|
+
editor.addElementAfter(column, item)
|
42
|
+
i++
|
43
|
+
}
|
44
|
+
}
|
45
|
+
//针对rowspan>1的单元格在后面的行中对应位置补全隐藏的单元格
|
46
|
+
if (rowspan > 1) {
|
47
|
+
let el = item
|
48
|
+
let i = 1
|
49
|
+
while (i < rowspan && editor.getNextElement(el.parent!) && editor.getNextElement(el.parent!)!.children!.length < columnNumber) {
|
50
|
+
//下一行
|
51
|
+
const nextRow = editor.getNextElement(el.parent!)!
|
52
|
+
//单元格在行中的序列
|
53
|
+
const index = el.parent!.children!.findIndex(item => item.isEqual(el))
|
54
|
+
//下一行对应的单元格
|
55
|
+
const nextCell = nextRow.children![index]
|
56
|
+
//根据当前单元格的跨列数补充符合跨列数的隐藏单元格
|
57
|
+
for (let j = 0; j < colspan; j++) {
|
58
|
+
const column = new AlexElement(
|
59
|
+
'inblock',
|
60
|
+
'td',
|
61
|
+
{
|
62
|
+
'data-editify-merged': 'true'
|
63
|
+
},
|
64
|
+
null,
|
65
|
+
null
|
66
|
+
)
|
67
|
+
const breakElement = new AlexElement('closed', 'br', null, null, null)
|
68
|
+
editor.addElementTo(breakElement, column)
|
69
|
+
if (nextCell) {
|
70
|
+
editor.addElementBefore(column, nextCell)
|
71
|
+
} else {
|
72
|
+
editor.addElementTo(column, nextRow, nextRow.children!.length)
|
73
|
+
}
|
74
|
+
}
|
75
|
+
el = nextRow.children![index]
|
76
|
+
i++
|
77
|
+
}
|
78
|
+
}
|
79
|
+
}
|
80
|
+
})
|
81
|
+
//遍历每一行,如果还缺少列则在后面补全列
|
82
|
+
rowElements.forEach(rowElement => {
|
83
|
+
//遍历该行的单元格获取总列数
|
84
|
+
const number = rowElement.children!.length
|
85
|
+
if (number < columnNumber) {
|
86
|
+
for (let i = 0; i < columnNumber - number; i++) {
|
87
|
+
const column = new AlexElement('inblock', 'td', null, null, null)
|
88
|
+
const breakElement = new AlexElement('closed', 'br', null, null, null)
|
89
|
+
editor.addElementTo(breakElement, column)
|
90
|
+
editor.addElementTo(column, rowElement, rowElement.children!.length)
|
91
|
+
}
|
92
|
+
}
|
93
|
+
})
|
94
|
+
//获取总行数
|
95
|
+
const length = rowElements.length
|
96
|
+
//判断总行数是否小于实际行数则补全行
|
97
|
+
if (length < rowNumber) {
|
98
|
+
for (let i = 0; i < rowNumber - length; i++) {
|
99
|
+
const row = new AlexElement('inblock', 'tr', null, null, null)
|
100
|
+
for (let j = 0; j < columnNumber; j++) {
|
101
|
+
const column = new AlexElement('inblock', 'td', null, null, null)
|
102
|
+
const breakElement = new AlexElement('closed', 'br', null, null, null)
|
103
|
+
editor.addElementTo(breakElement, column)
|
104
|
+
editor.addElementTo(column, row)
|
105
|
+
}
|
106
|
+
rowElements.push(row)
|
107
|
+
}
|
108
|
+
}
|
109
|
+
}
|
110
|
+
|
111
|
+
/**
|
112
|
+
* 自动隐藏被合并的单元格
|
113
|
+
* @param editor
|
114
|
+
* @param rowElements
|
115
|
+
*/
|
116
|
+
const autoHideMergedTableCells = (editor: AlexEditor, rowElements: AlexElement[]) => {
|
117
|
+
const cells = AlexElement.flatElements(rowElements).filter(item => item.parsedom == 'td')
|
118
|
+
cells.forEach(cell => {
|
119
|
+
if (cell.hasMarks() && !cell.marks!['data-editify-merged']) {
|
120
|
+
//获取colspan
|
121
|
+
const colspan = isNaN(Number(cell.marks!['colspan'])) ? 1 : Number(cell.marks!['colspan'])
|
122
|
+
//获取rowspan
|
123
|
+
const rowspan = isNaN(Number(cell.marks!['rowspan'])) ? 1 : Number(cell.marks!['rowspan'])
|
124
|
+
//如果是跨列单元格,隐藏该单元格同行后的colspan-1个单元格
|
125
|
+
if (colspan > 1) {
|
126
|
+
let el = cell
|
127
|
+
let i = 1
|
128
|
+
while (i < colspan) {
|
129
|
+
const nextCell = editor.getNextElement(el)!
|
130
|
+
if (nextCell) {
|
131
|
+
if (nextCell.hasMarks()) {
|
132
|
+
nextCell.marks!['data-editify-merged'] = 'true'
|
133
|
+
} else {
|
134
|
+
nextCell.marks = {
|
135
|
+
'data-editify-merged': 'true'
|
136
|
+
}
|
137
|
+
}
|
138
|
+
el = nextCell
|
139
|
+
i++
|
140
|
+
} else {
|
141
|
+
break
|
142
|
+
}
|
143
|
+
}
|
144
|
+
}
|
145
|
+
//如果是跨行单元格,隐藏该单元格同列后的rowspan-1行单元格
|
146
|
+
if (rowspan > 1) {
|
147
|
+
const index = cell.parent!.children!.findIndex(item => item.isEqual(cell))
|
148
|
+
let el = cell
|
149
|
+
let i = 1
|
150
|
+
while (i < rowspan && el && editor.getNextElement(el.parent!)) {
|
151
|
+
const nextRow = editor.getNextElement(el.parent!)!
|
152
|
+
//根据跨行单元格占据的列数,在后的rowspan-1行中隐藏colspan个单元格
|
153
|
+
for (let j = index; j < index + colspan; j++) {
|
154
|
+
const current = nextRow.children![j]
|
155
|
+
if (current) {
|
156
|
+
if (current.hasMarks()) {
|
157
|
+
current.marks!['data-editify-merged'] = 'true'
|
158
|
+
} else {
|
159
|
+
current.marks = {
|
160
|
+
'data-editify-merged': 'true'
|
161
|
+
}
|
162
|
+
}
|
163
|
+
}
|
164
|
+
}
|
165
|
+
el = nextRow.children![index]
|
166
|
+
i++
|
167
|
+
}
|
168
|
+
}
|
169
|
+
}
|
170
|
+
})
|
171
|
+
}
|
172
|
+
|
6
173
|
/**
|
7
174
|
* 更新代码块内的光标位置
|
8
175
|
* @param editor
|
@@ -94,7 +261,7 @@ export const parseList = (editor: AlexEditor, element: AlexElement) => {
|
|
94
261
|
* @param editor
|
95
262
|
* @param element
|
96
263
|
*/
|
97
|
-
export const orderdListHandle =
|
264
|
+
export const orderdListHandle = (editor: AlexEditor, element: AlexElement) => {
|
98
265
|
//有序列表的序号处理
|
99
266
|
if (isList(element, true)) {
|
100
267
|
//获取前一个元素
|
@@ -116,7 +283,7 @@ export const orderdListHandle = function (editor: AlexEditor, element: AlexEleme
|
|
116
283
|
* @param editor
|
117
284
|
* @param element
|
118
285
|
*/
|
119
|
-
export const commonElementHandle =
|
286
|
+
export const commonElementHandle = (editor: AlexEditor, element: AlexElement) => {
|
120
287
|
//图片、视频和链接设置marks
|
121
288
|
if (element.parsedom == 'img' || element.parsedom == 'video' || element.parsedom == 'a') {
|
122
289
|
const marks = {
|
@@ -167,11 +334,22 @@ export const commonElementHandle = function (editor: AlexEditor, element: AlexEl
|
|
167
334
|
}
|
168
335
|
|
169
336
|
/**
|
170
|
-
*
|
337
|
+
* 元素格式化时处理表格:th转为td
|
338
|
+
* @param editor
|
339
|
+
* @param element
|
340
|
+
*/
|
341
|
+
export const tableThTdHandle = (_editor: AlexEditor, element: AlexElement) => {
|
342
|
+
if (element.parsedom == 'th') {
|
343
|
+
element.parsedom = 'td'
|
344
|
+
}
|
345
|
+
}
|
346
|
+
|
347
|
+
/**
|
348
|
+
* 元素格式化时处理表格:格式化表格
|
171
349
|
* @param editor
|
172
350
|
* @param element
|
173
351
|
*/
|
174
|
-
export const
|
352
|
+
export const tableFormatHandle = (editor: AlexEditor, element: AlexElement) => {
|
175
353
|
if (element.parsedom == 'table') {
|
176
354
|
const marks = {
|
177
355
|
'data-editify-element': element.key
|
@@ -195,16 +373,12 @@ export const tableHandle = function (editor: AlexEditor, element: AlexElement) {
|
|
195
373
|
const rows = elements.filter(el => {
|
196
374
|
return el.parsedom == 'tr'
|
197
375
|
})
|
376
|
+
//获取表格实际应该的规格
|
377
|
+
const { rowNumber, columnNumber } = getTableSize(rows)
|
198
378
|
//colgroup元素
|
199
379
|
let colgroup = elements.find(el => {
|
200
380
|
return el.parsedom == 'colgroup'
|
201
381
|
})
|
202
|
-
//理论上的col的数量:取最多列数
|
203
|
-
const colNumber = Math.max(
|
204
|
-
...rows.map(row => {
|
205
|
-
return row.children!.length
|
206
|
-
})
|
207
|
-
)
|
208
382
|
//如果colgroup元素存在
|
209
383
|
if (colgroup) {
|
210
384
|
//遍历每个col元素设置默认的width:'auto
|
@@ -222,8 +396,8 @@ export const tableHandle = function (editor: AlexEditor, element: AlexElement) {
|
|
222
396
|
})
|
223
397
|
//对缺少的col元素进行补全
|
224
398
|
const length = colgroup.children!.length
|
225
|
-
if (length <
|
226
|
-
for (let i = 0; i <
|
399
|
+
if (length < columnNumber) {
|
400
|
+
for (let i = 0; i < columnNumber - length; i++) {
|
227
401
|
const col = new AlexElement(
|
228
402
|
'closed',
|
229
403
|
'col',
|
@@ -240,7 +414,7 @@ export const tableHandle = function (editor: AlexEditor, element: AlexElement) {
|
|
240
414
|
//如果colgroup元素不存在则新建
|
241
415
|
else {
|
242
416
|
colgroup = new AlexElement('inblock', 'colgroup', null, null, null)
|
243
|
-
for (let i =
|
417
|
+
for (let i = columnNumber - 1; i >= 0; i--) {
|
244
418
|
const col = new AlexElement(
|
245
419
|
'closed',
|
246
420
|
'col',
|
@@ -253,41 +427,106 @@ export const tableHandle = function (editor: AlexEditor, element: AlexElement) {
|
|
253
427
|
editor.addElementTo(col, colgroup)
|
254
428
|
}
|
255
429
|
}
|
430
|
+
//自动补全表格的单元格
|
431
|
+
autocompleteTableCells(editor, rows, rowNumber, columnNumber)
|
432
|
+
//清空表格
|
256
433
|
element.children = []
|
434
|
+
//创建tbody元素
|
257
435
|
const tbody = new AlexElement('inblock', 'tbody', null, null, null)
|
258
|
-
rows
|
259
|
-
|
260
|
-
const
|
261
|
-
|
262
|
-
for (let i = 0; i < colNumber - length; i++) {
|
263
|
-
const column = new AlexElement('inblock', 'td', null, null, null)
|
264
|
-
const breakElement = new AlexElement('closed', 'br', null, null, null)
|
265
|
-
editor.addElementTo(breakElement, column)
|
266
|
-
editor.addElementTo(column, row, row.children!.length)
|
267
|
-
}
|
268
|
-
}
|
269
|
-
editor.addElementTo(row, tbody)
|
436
|
+
//将rows全部加入表格中
|
437
|
+
rows.forEach(row => {
|
438
|
+
const index = tbody.hasChildren() ? tbody.children!.length : 0
|
439
|
+
editor.addElementTo(row, tbody, index)
|
270
440
|
})
|
271
441
|
editor.addElementTo(tbody, element)
|
272
442
|
editor.addElementTo(colgroup, element)
|
443
|
+
//对表格单元格合并状态进行处理
|
444
|
+
autoHideMergedTableCells(editor, rows)
|
273
445
|
}
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
446
|
+
}
|
447
|
+
|
448
|
+
/**
|
449
|
+
* 元素格式化时处理表格:处理光标在表格隐藏单元格内的情况
|
450
|
+
* @param editor
|
451
|
+
* @param element
|
452
|
+
*/
|
453
|
+
export const tableRangeMergedHandle = (editor: AlexEditor, element: AlexElement) => {
|
454
|
+
//如果元素是被隐藏的单元格,并且光标在该单元格内
|
455
|
+
if (element.parsedom == 'td' && element.hasMarks() && element.marks!['data-editify-merged'] && editor.range) {
|
456
|
+
//单元格向左查找设置焦点
|
457
|
+
const queryLeftSetRange = (_element: AlexElement, callback: (ele: AlexElement) => void) => {
|
458
|
+
//是否已查找到
|
459
|
+
let success = false
|
460
|
+
//获取前一个单元格
|
461
|
+
let el = editor.getPreviousElement(_element)
|
462
|
+
let tempIndex = 1
|
463
|
+
//如果前一个单元格存在则循环
|
464
|
+
while (el) {
|
465
|
+
//获取单元格的colspan
|
466
|
+
const { colspan } = getCellSpanNumber(el)
|
467
|
+
//如果单元格是跨列的并且是跨当前单元格的
|
468
|
+
if (el.hasMarks() && !el.marks!['data-editify-merged'] && colspan > tempIndex) {
|
469
|
+
success = true
|
470
|
+
callback(el)
|
471
|
+
break
|
472
|
+
}
|
473
|
+
//不是则继续向上查找
|
474
|
+
else {
|
475
|
+
el = editor.getPreviousElement(el)
|
476
|
+
tempIndex++
|
477
|
+
}
|
478
|
+
}
|
479
|
+
return success
|
480
|
+
}
|
481
|
+
//单元格向上查找设置焦点
|
482
|
+
const queryUpSetRange = (_element: AlexElement, callback: (ele: AlexElement) => void) => {
|
483
|
+
//是否已查找到
|
484
|
+
let success = false
|
485
|
+
//单元格在行中的序列
|
486
|
+
const index = _element.parent!.children!.findIndex(item => item.isEqual(_element))
|
487
|
+
//获取前一行元素
|
488
|
+
let el = editor.getPreviousElement(_element.parent!)
|
489
|
+
let tempIndex = 1
|
490
|
+
//如果前一行元素存在则循环
|
491
|
+
while (el) {
|
492
|
+
//获取前一行中同列的单元格
|
493
|
+
const previousColumn = el.children![index]
|
494
|
+
//获取单元格的rowspan
|
495
|
+
const { rowspan } = getCellSpanNumber(previousColumn)
|
496
|
+
//如果单元格是跨行的并且是跨当前单元格的
|
497
|
+
if (previousColumn.hasMarks() && !previousColumn.marks!['data-editify-merged'] && rowspan > tempIndex) {
|
498
|
+
success = true
|
499
|
+
callback(previousColumn)
|
500
|
+
break
|
501
|
+
}
|
502
|
+
//不是则继续向上查找
|
503
|
+
else {
|
504
|
+
el = editor.getPreviousElement(el)
|
505
|
+
tempIndex++
|
506
|
+
}
|
282
507
|
}
|
283
|
-
|
284
|
-
|
508
|
+
return success
|
509
|
+
}
|
510
|
+
//起点在该单元格下
|
511
|
+
if (element.isContains(editor.range.anchor.element)) {
|
512
|
+
const success = queryLeftSetRange(element, ele => {
|
513
|
+
editor.range!.anchor.moveToEnd(ele)
|
514
|
+
})
|
515
|
+
if (!success) {
|
516
|
+
queryUpSetRange(element, ele => {
|
517
|
+
editor.range!.anchor.moveToEnd(ele)
|
518
|
+
})
|
285
519
|
}
|
286
520
|
}
|
287
|
-
|
288
|
-
if (element.
|
289
|
-
|
290
|
-
|
521
|
+
//终点在该单元格下
|
522
|
+
if (element.isContains(editor.range.focus.element)) {
|
523
|
+
const success = queryLeftSetRange(element, ele => {
|
524
|
+
editor.range!.focus.moveToEnd(ele)
|
525
|
+
})
|
526
|
+
if (!success) {
|
527
|
+
queryUpSetRange(element, ele => {
|
528
|
+
editor.range!.focus.moveToEnd(ele)
|
529
|
+
})
|
291
530
|
}
|
292
531
|
}
|
293
532
|
}
|
@@ -300,7 +539,7 @@ export const tableHandle = function (editor: AlexEditor, element: AlexElement) {
|
|
300
539
|
* @param highlight
|
301
540
|
* @param languages
|
302
541
|
*/
|
303
|
-
export const preHandle =
|
542
|
+
export const preHandle = (editor: AlexEditor, element: AlexElement, highlight: boolean, languages: (string | LanguagesItemType)[]) => {
|
304
543
|
//如果是代码块进行处理
|
305
544
|
if (element.parsedom == 'pre') {
|
306
545
|
const marks = {
|
@@ -365,7 +604,7 @@ export const preHandle = function (editor: AlexEditor, element: AlexElement, hig
|
|
365
604
|
* @param editor
|
366
605
|
* @param element
|
367
606
|
*/
|
368
|
-
export const specialInblockHandle =
|
607
|
+
export const specialInblockHandle = (editor: AlexEditor, element: AlexElement) => {
|
369
608
|
if (element.hasChildren()) {
|
370
609
|
element.children!.forEach(el => {
|
371
610
|
if (isList(el, true) || isList(el, false) || isTask(el) || ['blockquote', 'pre', 'table', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p'].includes(el.parsedom!)) {
|
package/src/core/tool.ts
CHANGED
@@ -224,7 +224,7 @@ export type PluginType = (editifyInstance: ComponentInternalInstance, editTrans:
|
|
224
224
|
* @param o2
|
225
225
|
* @returns
|
226
226
|
*/
|
227
|
-
export const mergeObject =
|
227
|
+
export const mergeObject = (o1: ObjectType, o2: ObjectType) => {
|
228
228
|
if (!DapCommon.isObject(o1) && DapCommon.isObject(o2)) {
|
229
229
|
return null
|
230
230
|
}
|
@@ -248,7 +248,7 @@ export const mergeObject = function (o1: ObjectType, o2: ObjectType) {
|
|
248
248
|
* @param value
|
249
249
|
* @returns
|
250
250
|
*/
|
251
|
-
export const queryHasValue =
|
251
|
+
export const queryHasValue = (obj: ObjectType, name: string, value?: string | number) => {
|
252
252
|
//如果value不存在则判断是否拥有属性name
|
253
253
|
if (value == null || value == undefined) {
|
254
254
|
return obj.hasOwnProperty(name)
|
@@ -293,7 +293,7 @@ export const queryHasValue = function (obj: ObjectType, name: string, value?: st
|
|
293
293
|
* @param data
|
294
294
|
* @returns
|
295
295
|
*/
|
296
|
-
export const cloneData =
|
296
|
+
export const cloneData = (data: any) => {
|
297
297
|
if (DapCommon.isObject(data) || Array.isArray(data)) {
|
298
298
|
return JSON.parse(JSON.stringify(data))
|
299
299
|
}
|
@@ -305,7 +305,7 @@ export const cloneData = function (data: any) {
|
|
305
305
|
* @param editTrans
|
306
306
|
* @returns
|
307
307
|
*/
|
308
|
-
export const getButtonOptionsConfig =
|
308
|
+
export const getButtonOptionsConfig = (editTrans: (key: string) => any): ButtonOptionsConfigType => {
|
309
309
|
return {
|
310
310
|
//标题配置
|
311
311
|
heading: [
|
@@ -506,7 +506,7 @@ export const getButtonOptionsConfig = function (editTrans: (key: string) => any)
|
|
506
506
|
* @param editLocale
|
507
507
|
* @returns
|
508
508
|
*/
|
509
|
-
export const getToolbarConfig =
|
509
|
+
export const getToolbarConfig = (editTrans: (key: string) => any, editLocale: LocaleType): ToolbarConfigType => {
|
510
510
|
return {
|
511
511
|
//是否使用工具条
|
512
512
|
use: true,
|
@@ -756,7 +756,7 @@ export const getToolbarConfig = function (editTrans: (key: string) => any, editL
|
|
756
756
|
* @param editLocale
|
757
757
|
* @returns
|
758
758
|
*/
|
759
|
-
export const getMenuConfig =
|
759
|
+
export const getMenuConfig = (editTrans: (key: string) => any, editLocale: LocaleType): MenuConfigType => {
|
760
760
|
return {
|
761
761
|
//是否使用菜单栏
|
762
762
|
use: true,
|
package/src/editify/editify.less
CHANGED
@@ -232,6 +232,10 @@
|
|
232
232
|
cursor: col-resize;
|
233
233
|
user-select: none;
|
234
234
|
}
|
235
|
+
|
236
|
+
&[data-editify-merged] {
|
237
|
+
display: none;
|
238
|
+
}
|
235
239
|
}
|
236
240
|
}
|
237
241
|
}
|
@@ -261,6 +265,11 @@
|
|
261
265
|
vertical-align: text-bottom;
|
262
266
|
margin: 0 2px;
|
263
267
|
max-width: 100%;
|
268
|
+
min-width: 100px;
|
269
|
+
|
270
|
+
&:hover {
|
271
|
+
cursor: pointer;
|
272
|
+
}
|
264
273
|
}
|
265
274
|
//视频样式
|
266
275
|
:deep(video) {
|
@@ -273,6 +282,7 @@
|
|
273
282
|
object-fit: contain;
|
274
283
|
margin: 0 2px;
|
275
284
|
max-width: 100%;
|
285
|
+
min-width: 100px;
|
276
286
|
}
|
277
287
|
//引用样式
|
278
288
|
:deep(blockquote) {
|