vue-editify 0.2.13 → 0.2.15

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.
Files changed (190) hide show
  1. package/examples/App.vue +49 -67
  2. package/lib/components/button/button.vue.d.ts +62 -60
  3. package/lib/components/button/index.d.ts +4 -0
  4. package/lib/components/button/props.d.ts +12 -1
  5. package/lib/components/checkbox/checkbox.vue.d.ts +9 -9
  6. package/lib/components/checkbox/index.d.ts +4 -0
  7. package/lib/components/checkbox/props.d.ts +2 -2
  8. package/lib/components/colors/colors.vue.d.ts +4 -4
  9. package/lib/components/colors/index.d.ts +4 -0
  10. package/lib/components/colors/props.d.ts +2 -2
  11. package/lib/components/icon/index.d.ts +4 -0
  12. package/lib/components/insertAttachment/index.d.ts +4 -0
  13. package/lib/{plugins/attachment → components}/insertAttachment/insertAttachment.vue.d.ts +3 -3
  14. package/lib/{plugins/attachment → components}/insertAttachment/props.d.ts +1 -1
  15. package/lib/components/insertImage/index.d.ts +4 -0
  16. package/lib/components/insertImage/insertImage.vue.d.ts +3 -3
  17. package/lib/components/insertImage/props.d.ts +1 -1
  18. package/lib/components/insertLink/index.d.ts +4 -0
  19. package/lib/components/insertLink/insertLink.vue.d.ts +6 -6
  20. package/lib/components/insertLink/props.d.ts +3 -3
  21. package/lib/components/insertMathformula/index.d.ts +4 -0
  22. package/lib/{plugins/mathformula → components}/insertMathformula/insertMathformula.vue.d.ts +3 -3
  23. package/lib/{plugins/mathformula → components}/insertMathformula/props.d.ts +2 -2
  24. package/lib/components/insertTable/index.d.ts +4 -0
  25. package/lib/components/insertTable/insertTable.vue.d.ts +3 -3
  26. package/lib/components/insertTable/props.d.ts +2 -2
  27. package/lib/components/insertVideo/index.d.ts +4 -0
  28. package/lib/components/insertVideo/insertVideo.vue.d.ts +3 -3
  29. package/lib/components/insertVideo/props.d.ts +1 -1
  30. package/lib/components/layer/index.d.ts +4 -0
  31. package/lib/components/layer/layer.vue.d.ts +10 -8
  32. package/lib/components/tooltip/index.d.ts +4 -0
  33. package/lib/components/tooltip/tooltip.vue.d.ts +6 -4
  34. package/lib/components/triangle/index.d.ts +4 -0
  35. package/lib/components/triangle/triangle.vue.d.ts +1 -1
  36. package/lib/components/updateLink/index.d.ts +4 -0
  37. package/lib/components/updateLink/props.d.ts +17 -0
  38. package/lib/components/updateLink/updateLink.vue.d.ts +38 -0
  39. package/lib/core/function.d.ts +113 -36
  40. package/lib/core/rule.d.ts +20 -0
  41. package/lib/core/tool.d.ts +36 -34
  42. package/lib/editify/editify.vue.d.ts +86 -53
  43. package/lib/editify/menu/index.d.ts +4 -0
  44. package/lib/{components → editify}/menu/menu.vue.d.ts +3 -4
  45. package/lib/{components → editify}/menu/props.d.ts +1 -1
  46. package/lib/editify/props.d.ts +3 -7
  47. package/lib/editify/toolbar/index.d.ts +4 -0
  48. package/lib/{components → editify}/toolbar/props.d.ts +2 -2
  49. package/lib/{components → editify}/toolbar/toolbar.vue.d.ts +53 -53
  50. package/lib/editify.es.js +8879 -7668
  51. package/lib/editify.umd.js +2 -2
  52. package/lib/feature/align.d.ts +32 -0
  53. package/lib/feature/attachment.d.ts +18 -0
  54. package/lib/feature/backColor.d.ts +32 -0
  55. package/lib/feature/bold.d.ts +32 -0
  56. package/lib/feature/code.d.ts +32 -0
  57. package/lib/feature/codeBlock.d.ts +32 -0
  58. package/lib/feature/fontFamily.d.ts +32 -0
  59. package/lib/feature/fontSize.d.ts +32 -0
  60. package/lib/feature/foreColor.d.ts +32 -0
  61. package/lib/feature/formatClear.d.ts +32 -0
  62. package/lib/feature/fullScreen.d.ts +18 -0
  63. package/lib/feature/heading.d.ts +32 -0
  64. package/lib/feature/image.d.ts +32 -0
  65. package/lib/feature/indent.d.ts +18 -0
  66. package/lib/feature/infoBlock.d.ts +18 -0
  67. package/lib/feature/italic.d.ts +32 -0
  68. package/lib/feature/lineHeight.d.ts +32 -0
  69. package/lib/feature/link.d.ts +26 -0
  70. package/lib/feature/mathformula.d.ts +22 -0
  71. package/lib/feature/orderList.d.ts +32 -0
  72. package/lib/feature/panel.d.ts +18 -0
  73. package/lib/feature/quote.d.ts +18 -0
  74. package/lib/feature/redo.d.ts +18 -0
  75. package/lib/feature/separator.d.ts +18 -0
  76. package/lib/feature/sourceView.d.ts +18 -0
  77. package/lib/feature/strikethrough.d.ts +32 -0
  78. package/lib/feature/sub.d.ts +32 -0
  79. package/lib/feature/super.d.ts +32 -0
  80. package/lib/feature/table.d.ts +32 -0
  81. package/lib/feature/task.d.ts +32 -0
  82. package/lib/feature/underline.d.ts +32 -0
  83. package/lib/feature/undo.d.ts +18 -0
  84. package/lib/feature/unorderList.d.ts +32 -0
  85. package/lib/feature/video.d.ts +38 -0
  86. package/lib/index.d.ts +104 -69
  87. package/package.json +5 -5
  88. package/src/components/button/button.vue +21 -24
  89. package/src/components/button/index.ts +5 -0
  90. package/src/components/button/props.ts +14 -1
  91. package/src/components/checkbox/checkbox.vue +1 -1
  92. package/src/components/checkbox/index.ts +5 -0
  93. package/src/components/checkbox/props.ts +1 -1
  94. package/src/components/colors/colors.vue +3 -3
  95. package/src/components/colors/index.ts +5 -0
  96. package/src/components/colors/props.ts +2 -2
  97. package/src/components/icon/index.ts +5 -0
  98. package/src/components/insertAttachment/index.ts +5 -0
  99. package/src/{plugins/attachment → components}/insertAttachment/insertAttachment.vue +4 -2
  100. package/src/{plugins/attachment → components}/insertAttachment/props.ts +1 -1
  101. package/src/components/insertImage/index.ts +5 -0
  102. package/src/components/insertImage/insertImage.vue +5 -5
  103. package/src/components/insertImage/props.ts +1 -1
  104. package/src/components/insertLink/index.ts +5 -0
  105. package/src/components/insertLink/insertLink.vue +10 -10
  106. package/src/components/insertLink/props.ts +3 -3
  107. package/src/components/insertMathformula/index.ts +5 -0
  108. package/src/{plugins/mathformula → components}/insertMathformula/props.ts +2 -2
  109. package/src/components/insertTable/index.ts +5 -0
  110. package/src/components/insertTable/props.ts +2 -2
  111. package/src/components/insertVideo/index.ts +5 -0
  112. package/src/components/insertVideo/insertVideo.vue +2 -2
  113. package/src/components/insertVideo/props.ts +1 -1
  114. package/src/components/layer/index.ts +5 -0
  115. package/src/components/layer/layer.vue +42 -4
  116. package/src/components/tooltip/index.ts +5 -0
  117. package/src/components/tooltip/tooltip.vue +1 -1
  118. package/src/components/triangle/index.ts +5 -0
  119. package/src/components/triangle/triangle.vue +1 -1
  120. package/src/components/updateLink/index.ts +5 -0
  121. package/src/components/updateLink/props.ts +21 -0
  122. package/src/components/{toolbar/toolbar.less → updateLink/updateLink.less} +4 -20
  123. package/src/components/updateLink/updateLink.vue +74 -0
  124. package/src/core/function.ts +289 -97
  125. package/src/core/rule.ts +96 -7
  126. package/src/core/tool.ts +234 -78
  127. package/src/editify/editify.less +2 -0
  128. package/src/editify/editify.vue +182 -185
  129. package/src/editify/menu/index.ts +5 -0
  130. package/src/editify/menu/menu.vue +215 -0
  131. package/src/{components → editify}/menu/props.ts +1 -1
  132. package/src/editify/props.ts +7 -11
  133. package/src/editify/toolbar/index.ts +5 -0
  134. package/src/{components → editify}/toolbar/props.ts +1 -1
  135. package/src/editify/toolbar/toolbar.less +10 -0
  136. package/src/editify/toolbar/toolbar.vue +103 -0
  137. package/src/feature/align.ts +128 -0
  138. package/src/feature/attachment.ts +109 -0
  139. package/src/feature/backColor.ts +171 -0
  140. package/src/feature/bold.ts +136 -0
  141. package/src/feature/code.ts +136 -0
  142. package/src/feature/codeBlock.ts +204 -0
  143. package/src/feature/fontFamily.ts +140 -0
  144. package/src/feature/fontSize.ts +142 -0
  145. package/src/feature/foreColor.ts +173 -0
  146. package/src/feature/formatClear.ts +118 -0
  147. package/src/feature/fullScreen.ts +57 -0
  148. package/src/feature/heading.ts +154 -0
  149. package/src/feature/image.ts +225 -0
  150. package/src/feature/indent.ts +73 -0
  151. package/src/feature/infoBlock.ts +94 -0
  152. package/src/feature/italic.ts +136 -0
  153. package/src/feature/lineHeight.ts +165 -0
  154. package/src/feature/link.ts +149 -0
  155. package/src/feature/mathformula.ts +147 -0
  156. package/src/feature/orderList.ts +116 -0
  157. package/src/feature/panel.ts +108 -0
  158. package/src/feature/quote.ts +61 -0
  159. package/src/feature/redo.ts +56 -0
  160. package/src/feature/separator.ts +62 -0
  161. package/src/feature/sourceView.ts +59 -0
  162. package/src/feature/strikethrough.ts +136 -0
  163. package/src/feature/sub.ts +136 -0
  164. package/src/feature/super.ts +136 -0
  165. package/src/feature/table.ts +994 -0
  166. package/src/feature/task.ts +116 -0
  167. package/src/feature/underline.ts +136 -0
  168. package/src/feature/undo.ts +56 -0
  169. package/src/feature/unorderList.ts +116 -0
  170. package/src/feature/video.ts +339 -0
  171. package/src/hljs/index.ts +1 -1
  172. package/src/index.ts +69 -21
  173. package/src/locale/en_US.ts +3 -3
  174. package/src/locale/zh_CN.ts +3 -3
  175. package/lib/plugins/attachment/index.d.ts +0 -37
  176. package/lib/plugins/infoBlock/index.d.ts +0 -55
  177. package/lib/plugins/mathformula/index.d.ts +0 -49
  178. package/lib/plugins/panel/index.d.ts +0 -48
  179. package/src/components/menu/menu.vue +0 -1655
  180. package/src/components/toolbar/toolbar.vue +0 -1677
  181. package/src/plugins/attachment/index.ts +0 -237
  182. package/src/plugins/infoBlock/index.ts +0 -238
  183. package/src/plugins/mathformula/index.ts +0 -295
  184. package/src/plugins/panel/index.ts +0 -228
  185. package/tsconfig.json +0 -31
  186. package/tsconfig.node.json +0 -11
  187. /package/src/{plugins/attachment → components}/insertAttachment/insertAttachment.less +0 -0
  188. /package/src/{plugins/mathformula → components}/insertMathformula/insertMathformula.less +0 -0
  189. /package/src/{plugins/mathformula → components}/insertMathformula/insertMathformula.vue +0 -0
  190. /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 { isList, isTask, getTableSize, getCellSpanNumber } from './function'
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 (isList(element, true)) {
288
+ if (!element.isEmpty() && elementIsList(element, true)) {
291
289
  //获取前一个元素
292
290
  const previousElement = editor.getPreviousElement(element)
293
291
  //如果前一个元素存在并且也是有序列表
294
- if (previousElement && isList(previousElement, true)) {
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 (isList(el, true) || isList(el, false) || isTask(el) || ['blockquote', 'pre', 'table', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p'].includes(el.parsedom!) || isPanel(el) || isInfoBlock(el)) {
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()