vue-editify 0.2.13 → 0.2.15
Sign up to get free protection for your applications and to get access to all the features.
- package/examples/App.vue +49 -67
- package/lib/components/button/button.vue.d.ts +62 -60
- package/lib/components/button/index.d.ts +4 -0
- package/lib/components/button/props.d.ts +12 -1
- package/lib/components/checkbox/checkbox.vue.d.ts +9 -9
- package/lib/components/checkbox/index.d.ts +4 -0
- package/lib/components/checkbox/props.d.ts +2 -2
- package/lib/components/colors/colors.vue.d.ts +4 -4
- package/lib/components/colors/index.d.ts +4 -0
- package/lib/components/colors/props.d.ts +2 -2
- package/lib/components/icon/index.d.ts +4 -0
- package/lib/components/insertAttachment/index.d.ts +4 -0
- package/lib/{plugins/attachment → components}/insertAttachment/insertAttachment.vue.d.ts +3 -3
- package/lib/{plugins/attachment → components}/insertAttachment/props.d.ts +1 -1
- package/lib/components/insertImage/index.d.ts +4 -0
- package/lib/components/insertImage/insertImage.vue.d.ts +3 -3
- package/lib/components/insertImage/props.d.ts +1 -1
- package/lib/components/insertLink/index.d.ts +4 -0
- package/lib/components/insertLink/insertLink.vue.d.ts +6 -6
- package/lib/components/insertLink/props.d.ts +3 -3
- package/lib/components/insertMathformula/index.d.ts +4 -0
- package/lib/{plugins/mathformula → components}/insertMathformula/insertMathformula.vue.d.ts +3 -3
- package/lib/{plugins/mathformula → components}/insertMathformula/props.d.ts +2 -2
- package/lib/components/insertTable/index.d.ts +4 -0
- package/lib/components/insertTable/insertTable.vue.d.ts +3 -3
- package/lib/components/insertTable/props.d.ts +2 -2
- package/lib/components/insertVideo/index.d.ts +4 -0
- package/lib/components/insertVideo/insertVideo.vue.d.ts +3 -3
- package/lib/components/insertVideo/props.d.ts +1 -1
- package/lib/components/layer/index.d.ts +4 -0
- package/lib/components/layer/layer.vue.d.ts +10 -8
- package/lib/components/tooltip/index.d.ts +4 -0
- package/lib/components/tooltip/tooltip.vue.d.ts +6 -4
- package/lib/components/triangle/index.d.ts +4 -0
- package/lib/components/triangle/triangle.vue.d.ts +1 -1
- package/lib/components/updateLink/index.d.ts +4 -0
- package/lib/components/updateLink/props.d.ts +17 -0
- package/lib/components/updateLink/updateLink.vue.d.ts +38 -0
- package/lib/core/function.d.ts +113 -36
- package/lib/core/rule.d.ts +20 -0
- package/lib/core/tool.d.ts +36 -34
- package/lib/editify/editify.vue.d.ts +86 -53
- package/lib/editify/menu/index.d.ts +4 -0
- package/lib/{components → editify}/menu/menu.vue.d.ts +3 -4
- package/lib/{components → editify}/menu/props.d.ts +1 -1
- package/lib/editify/props.d.ts +3 -7
- package/lib/editify/toolbar/index.d.ts +4 -0
- package/lib/{components → editify}/toolbar/props.d.ts +2 -2
- package/lib/{components → editify}/toolbar/toolbar.vue.d.ts +53 -53
- package/lib/editify.es.js +8879 -7668
- package/lib/editify.umd.js +2 -2
- package/lib/feature/align.d.ts +32 -0
- package/lib/feature/attachment.d.ts +18 -0
- package/lib/feature/backColor.d.ts +32 -0
- package/lib/feature/bold.d.ts +32 -0
- package/lib/feature/code.d.ts +32 -0
- package/lib/feature/codeBlock.d.ts +32 -0
- package/lib/feature/fontFamily.d.ts +32 -0
- package/lib/feature/fontSize.d.ts +32 -0
- package/lib/feature/foreColor.d.ts +32 -0
- package/lib/feature/formatClear.d.ts +32 -0
- package/lib/feature/fullScreen.d.ts +18 -0
- package/lib/feature/heading.d.ts +32 -0
- package/lib/feature/image.d.ts +32 -0
- package/lib/feature/indent.d.ts +18 -0
- package/lib/feature/infoBlock.d.ts +18 -0
- package/lib/feature/italic.d.ts +32 -0
- package/lib/feature/lineHeight.d.ts +32 -0
- package/lib/feature/link.d.ts +26 -0
- package/lib/feature/mathformula.d.ts +22 -0
- package/lib/feature/orderList.d.ts +32 -0
- package/lib/feature/panel.d.ts +18 -0
- package/lib/feature/quote.d.ts +18 -0
- package/lib/feature/redo.d.ts +18 -0
- package/lib/feature/separator.d.ts +18 -0
- package/lib/feature/sourceView.d.ts +18 -0
- package/lib/feature/strikethrough.d.ts +32 -0
- package/lib/feature/sub.d.ts +32 -0
- package/lib/feature/super.d.ts +32 -0
- package/lib/feature/table.d.ts +32 -0
- package/lib/feature/task.d.ts +32 -0
- package/lib/feature/underline.d.ts +32 -0
- package/lib/feature/undo.d.ts +18 -0
- package/lib/feature/unorderList.d.ts +32 -0
- package/lib/feature/video.d.ts +38 -0
- package/lib/index.d.ts +104 -69
- package/package.json +5 -5
- package/src/components/button/button.vue +21 -24
- package/src/components/button/index.ts +5 -0
- package/src/components/button/props.ts +14 -1
- package/src/components/checkbox/checkbox.vue +1 -1
- package/src/components/checkbox/index.ts +5 -0
- package/src/components/checkbox/props.ts +1 -1
- package/src/components/colors/colors.vue +3 -3
- package/src/components/colors/index.ts +5 -0
- package/src/components/colors/props.ts +2 -2
- package/src/components/icon/index.ts +5 -0
- package/src/components/insertAttachment/index.ts +5 -0
- package/src/{plugins/attachment → components}/insertAttachment/insertAttachment.vue +4 -2
- package/src/{plugins/attachment → components}/insertAttachment/props.ts +1 -1
- package/src/components/insertImage/index.ts +5 -0
- package/src/components/insertImage/insertImage.vue +5 -5
- package/src/components/insertImage/props.ts +1 -1
- package/src/components/insertLink/index.ts +5 -0
- package/src/components/insertLink/insertLink.vue +10 -10
- package/src/components/insertLink/props.ts +3 -3
- package/src/components/insertMathformula/index.ts +5 -0
- package/src/{plugins/mathformula → components}/insertMathformula/props.ts +2 -2
- package/src/components/insertTable/index.ts +5 -0
- package/src/components/insertTable/props.ts +2 -2
- package/src/components/insertVideo/index.ts +5 -0
- package/src/components/insertVideo/insertVideo.vue +2 -2
- package/src/components/insertVideo/props.ts +1 -1
- package/src/components/layer/index.ts +5 -0
- package/src/components/layer/layer.vue +42 -4
- package/src/components/tooltip/index.ts +5 -0
- package/src/components/tooltip/tooltip.vue +1 -1
- package/src/components/triangle/index.ts +5 -0
- package/src/components/triangle/triangle.vue +1 -1
- package/src/components/updateLink/index.ts +5 -0
- package/src/components/updateLink/props.ts +21 -0
- package/src/components/{toolbar/toolbar.less → updateLink/updateLink.less} +4 -20
- package/src/components/updateLink/updateLink.vue +74 -0
- package/src/core/function.ts +289 -97
- package/src/core/rule.ts +96 -7
- package/src/core/tool.ts +234 -78
- package/src/editify/editify.less +2 -0
- package/src/editify/editify.vue +182 -185
- package/src/editify/menu/index.ts +5 -0
- package/src/editify/menu/menu.vue +215 -0
- package/src/{components → editify}/menu/props.ts +1 -1
- package/src/editify/props.ts +7 -11
- package/src/editify/toolbar/index.ts +5 -0
- package/src/{components → editify}/toolbar/props.ts +1 -1
- package/src/editify/toolbar/toolbar.less +10 -0
- package/src/editify/toolbar/toolbar.vue +103 -0
- package/src/feature/align.ts +128 -0
- package/src/feature/attachment.ts +109 -0
- package/src/feature/backColor.ts +171 -0
- package/src/feature/bold.ts +136 -0
- package/src/feature/code.ts +136 -0
- package/src/feature/codeBlock.ts +204 -0
- package/src/feature/fontFamily.ts +140 -0
- package/src/feature/fontSize.ts +142 -0
- package/src/feature/foreColor.ts +173 -0
- package/src/feature/formatClear.ts +118 -0
- package/src/feature/fullScreen.ts +57 -0
- package/src/feature/heading.ts +154 -0
- package/src/feature/image.ts +225 -0
- package/src/feature/indent.ts +73 -0
- package/src/feature/infoBlock.ts +94 -0
- package/src/feature/italic.ts +136 -0
- package/src/feature/lineHeight.ts +165 -0
- package/src/feature/link.ts +149 -0
- package/src/feature/mathformula.ts +147 -0
- package/src/feature/orderList.ts +116 -0
- package/src/feature/panel.ts +108 -0
- package/src/feature/quote.ts +61 -0
- package/src/feature/redo.ts +56 -0
- package/src/feature/separator.ts +62 -0
- package/src/feature/sourceView.ts +59 -0
- package/src/feature/strikethrough.ts +136 -0
- package/src/feature/sub.ts +136 -0
- package/src/feature/super.ts +136 -0
- package/src/feature/table.ts +994 -0
- package/src/feature/task.ts +116 -0
- package/src/feature/underline.ts +136 -0
- package/src/feature/undo.ts +56 -0
- package/src/feature/unorderList.ts +116 -0
- package/src/feature/video.ts +339 -0
- package/src/hljs/index.ts +1 -1
- package/src/index.ts +69 -21
- package/src/locale/en_US.ts +3 -3
- package/src/locale/zh_CN.ts +3 -3
- package/lib/plugins/attachment/index.d.ts +0 -37
- package/lib/plugins/infoBlock/index.d.ts +0 -55
- package/lib/plugins/mathformula/index.d.ts +0 -49
- package/lib/plugins/panel/index.d.ts +0 -48
- package/src/components/menu/menu.vue +0 -1655
- package/src/components/toolbar/toolbar.vue +0 -1677
- package/src/plugins/attachment/index.ts +0 -237
- package/src/plugins/infoBlock/index.ts +0 -238
- package/src/plugins/mathformula/index.ts +0 -295
- package/src/plugins/panel/index.ts +0 -228
- package/tsconfig.json +0 -31
- package/tsconfig.node.json +0 -11
- /package/src/{plugins/attachment → components}/insertAttachment/insertAttachment.less +0 -0
- /package/src/{plugins/mathformula → components}/insertMathformula/insertMathformula.less +0 -0
- /package/src/{plugins/mathformula → components}/insertMathformula/insertMathformula.vue +0 -0
- /package/src/{components → editify}/menu/menu.less +0 -0
package/src/core/rule.ts
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
import { AlexEditor, AlexElement, AlexElementCreateConfigType } from 'alex-editor'
|
2
|
-
import { common as DapCommon } from 'dap-util'
|
2
|
+
import { common as DapCommon, color as DapColor } from 'dap-util'
|
3
3
|
import { LanguagesItemType, getHljsHtml } from '@/hljs'
|
4
|
-
import {
|
5
|
-
import { isPanel } from '@/plugins/panel'
|
6
|
-
import { isInfoBlock } from '@/plugins/infoBlock'
|
4
|
+
import { getTableSize, getCellSpanNumber, elementIsList, elementIsTask, elementIsAttachment, elementIsMathformula, elementIsInfoBlock, elementIsPanel } from './function'
|
7
5
|
|
8
6
|
/**
|
9
7
|
* 自动补全表格行和列
|
@@ -287,11 +285,11 @@ export const parseList = (editor: AlexEditor, element: AlexElement) => {
|
|
287
285
|
*/
|
288
286
|
export const orderdListHandle = (editor: AlexEditor, element: AlexElement) => {
|
289
287
|
//有序列表的序号处理
|
290
|
-
if (
|
288
|
+
if (!element.isEmpty() && elementIsList(element, true)) {
|
291
289
|
//获取前一个元素
|
292
290
|
const previousElement = editor.getPreviousElement(element)
|
293
291
|
//如果前一个元素存在并且也是有序列表
|
294
|
-
if (previousElement &&
|
292
|
+
if (previousElement && !previousElement.isEmpty() && elementIsList(previousElement, true)) {
|
295
293
|
const previousValue = Number(previousElement.marks!['data-editify-value'])
|
296
294
|
element.marks!['data-editify-value'] = previousValue + 1
|
297
295
|
}
|
@@ -629,6 +627,97 @@ export const preHandle = (editor: AlexEditor, element: AlexElement, highlight: b
|
|
629
627
|
}
|
630
628
|
}
|
631
629
|
|
630
|
+
/**
|
631
|
+
* 元素格式化时处理附件元素
|
632
|
+
* @param editor
|
633
|
+
* @param element
|
634
|
+
* @param $editTrans
|
635
|
+
*/
|
636
|
+
export const attachmentHandle = (editor: AlexEditor, element: AlexElement, $editTrans: (key: string) => any) => {
|
637
|
+
if (!element.isEmpty() && elementIsAttachment(element)) {
|
638
|
+
//设置title
|
639
|
+
element.marks!['title'] = $editTrans('attachmentDownloadTitle')
|
640
|
+
//如果名称没有则设置名称
|
641
|
+
if (!element.marks!['data-editify-attachment-name']) {
|
642
|
+
element.marks!['data-editify-attachment-name'] = $editTrans('attachmentDefaultName')
|
643
|
+
}
|
644
|
+
//前一个元素
|
645
|
+
const previousElement = editor.getPreviousElement(element)
|
646
|
+
//后一个元素
|
647
|
+
const newTextElement = editor.getNextElement(element)
|
648
|
+
//如果不存在前一个元素或者前一个元素不是空白元素则设置空白元素
|
649
|
+
if (!previousElement || !previousElement.isSpaceText()) {
|
650
|
+
const spaceText = AlexElement.getSpaceElement()
|
651
|
+
editor.addElementBefore(spaceText, element)
|
652
|
+
}
|
653
|
+
//如果不存在后一个元素或者后一个元素不是空白元素则设置空白元素
|
654
|
+
if (!newTextElement || !newTextElement.isSpaceText()) {
|
655
|
+
const spaceText = AlexElement.getSpaceElement()
|
656
|
+
editor.addElementAfter(spaceText, element)
|
657
|
+
}
|
658
|
+
//如果光标在元素上则更新光标位置
|
659
|
+
if (editor.range && element.isContains(editor.range.anchor.element)) {
|
660
|
+
editor.range.anchor.moveToEnd(editor.getNextElement(element)!)
|
661
|
+
}
|
662
|
+
if (editor.range && element.isContains(editor.range.focus.element)) {
|
663
|
+
editor.range.focus.moveToEnd(editor.getNextElement(element)!)
|
664
|
+
}
|
665
|
+
}
|
666
|
+
}
|
667
|
+
|
668
|
+
/**
|
669
|
+
* 元素格式化时处理数学公式元素
|
670
|
+
* @param editor
|
671
|
+
* @param element
|
672
|
+
*/
|
673
|
+
export const mathformulaHandle = (editor: AlexEditor, element: AlexElement) => {
|
674
|
+
//给元素设置两侧的空白字符
|
675
|
+
if (!element.isEmpty() && elementIsMathformula(element)) {
|
676
|
+
//前一个元素
|
677
|
+
const previousElement = editor.getPreviousElement(element)
|
678
|
+
//后一个元素
|
679
|
+
const newTextElement = editor.getNextElement(element)
|
680
|
+
//如果不存在前一个元素或者前一个元素不是空白元素则设置空白元素
|
681
|
+
if (!previousElement || !previousElement.isSpaceText()) {
|
682
|
+
const spaceText = AlexElement.getSpaceElement()
|
683
|
+
editor.addElementBefore(spaceText, element)
|
684
|
+
}
|
685
|
+
//如果不存在后一个元素或者后一个元素不是空白元素则设置空白元素
|
686
|
+
if (!newTextElement || !newTextElement.isSpaceText()) {
|
687
|
+
const spaceText = AlexElement.getSpaceElement()
|
688
|
+
editor.addElementAfter(spaceText, element)
|
689
|
+
}
|
690
|
+
//如果光标在元素上则更新光标位置
|
691
|
+
if (editor.range && element.isContains(editor.range.anchor.element)) {
|
692
|
+
editor.range.anchor.moveToEnd(editor.getNextElement(element)!)
|
693
|
+
}
|
694
|
+
if (editor.range && element.isContains(editor.range.focus.element)) {
|
695
|
+
editor.range.focus.moveToEnd(editor.getNextElement(element)!)
|
696
|
+
}
|
697
|
+
}
|
698
|
+
}
|
699
|
+
|
700
|
+
/**
|
701
|
+
* 元素格式化时处理信息块元素
|
702
|
+
* @param editor
|
703
|
+
* @param element
|
704
|
+
* @param color
|
705
|
+
*/
|
706
|
+
export const infoBlockHandle = (_editor: AlexEditor, element: AlexElement, color: string) => {
|
707
|
+
if (elementIsInfoBlock(element) && color) {
|
708
|
+
const parseColor = DapColor.hex2rgb(color)
|
709
|
+
if (element.hasStyles()) {
|
710
|
+
element.styles!['background-color'] = `rgba(${parseColor[0]},${parseColor[1]},${parseColor[2]},0.15)`
|
711
|
+
element.styles!['color'] = color
|
712
|
+
} else {
|
713
|
+
element.styles = {
|
714
|
+
'background-color': `rgba(${parseColor[0]},${parseColor[1]},${parseColor[2]},0.15)`,
|
715
|
+
color: color
|
716
|
+
}
|
717
|
+
}
|
718
|
+
}
|
719
|
+
}
|
720
|
+
|
632
721
|
/**
|
633
722
|
* 元素格式化时处理一些特殊的内部块元素,转为根级块元素
|
634
723
|
* @param editor
|
@@ -637,7 +726,7 @@ export const preHandle = (editor: AlexEditor, element: AlexElement, highlight: b
|
|
637
726
|
export const specialInblockHandle = (editor: AlexEditor, element: AlexElement) => {
|
638
727
|
if (element.hasChildren()) {
|
639
728
|
element.children!.forEach(el => {
|
640
|
-
if (
|
729
|
+
if (elementIsList(el, true) || elementIsList(el, false) || elementIsTask(el) || elementIsInfoBlock(el) || elementIsPanel(el) || ['blockquote', 'pre', 'table', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p'].includes(el.parsedom!)) {
|
641
730
|
const newEl = el.clone()
|
642
731
|
newEl.type = 'block'
|
643
732
|
const block = element.getBlock()
|