vue-editify 0.0.46 → 0.0.48

Sign up to get free protection for your applications and to get access to all the features.
@@ -789,7 +789,7 @@ export default {
789
789
  onLayerShow: () => {
790
790
  //存在选区的情况下预置链接文本值
791
791
  let text = ''
792
- const result = this.$parent.$parent.editor.getElementsByRange(true, true)
792
+ const result = this.$parent.$parent.editor.getElementsByRange().flatIncludes
793
793
  result.forEach(item => {
794
794
  if (item.element.isText()) {
795
795
  if (item.offset) {
@@ -1189,28 +1189,28 @@ export default {
1189
1189
  }
1190
1190
  },
1191
1191
  //处理光标更新
1192
- handleRangeUpdate() {
1192
+ handleRangeUpdate(useCache = false) {
1193
1193
  if (this.disabled) {
1194
1194
  return
1195
1195
  }
1196
1196
  //获取选区的元素
1197
- const result = this.$parent.editor.getElementsByRange(true, false)
1197
+ const result = this.$parent.editor.getElementsByRange(useCache).includes
1198
1198
  //选区是否含有代码块元素
1199
- const hasPreStyle = this.$parent.hasPreStyle()
1199
+ const hasPreStyle = this.$parent.hasPreStyle(true)
1200
1200
  //选区是否含有表格元素
1201
- const hasTable = this.$parent.hasTable()
1201
+ const hasTable = this.$parent.hasTable(true)
1202
1202
  //选区是否含有引用元素
1203
- const hasQuote = this.$parent.hasQuote()
1203
+ const hasQuote = this.$parent.hasQuote(true)
1204
1204
  //选区是否都在引用元素内
1205
- const inQuote = this.$parent.inQuote()
1205
+ const inQuote = this.$parent.inQuote(true)
1206
1206
  //选区是否含有链接元素
1207
- const hasLink = this.$parent.hasLink()
1207
+ const hasLink = this.$parent.hasLink(true)
1208
1208
  //选区是否都在有序列表内
1209
- const inOrderList = this.$parent.inList(true)
1209
+ const inOrderList = this.$parent.inList(true, true)
1210
1210
  //选区是否都在无序列表内
1211
- const inUnorderList = this.$parent.inList(false)
1211
+ const inUnorderList = this.$parent.inList(false, true)
1212
1212
  //选区是否都在任务列表内
1213
- const inTask = this.$parent.inTask()
1213
+ const inTask = this.$parent.inTask(true)
1214
1214
  //额外禁用判定
1215
1215
  const extraDisabled = name => {
1216
1216
  if (typeof this.config.extraDisabled == 'function') {
@@ -1272,7 +1272,7 @@ export default {
1272
1272
  this.taskConfig.disabled = hasPreStyle || hasTable || extraDisabled('task')
1273
1273
 
1274
1274
  //粗体按钮激活
1275
- this.boldConfig.active = this.$parent.queryTextStyle('font-weight', 'bold')
1275
+ this.boldConfig.active = this.$parent.queryTextStyle('font-weight', 'bold', true)
1276
1276
  //粗体按钮禁用
1277
1277
  this.boldConfig.disabled = hasPreStyle || extraDisabled('bold')
1278
1278
 
@@ -1292,7 +1292,7 @@ export default {
1292
1292
  this.strikethroughConfig.disabled = hasPreStyle || extraDisabled('strikethrough')
1293
1293
 
1294
1294
  //行内代码按钮激活
1295
- this.codeConfig.active = this.$parent.queryTextMark('data-editify-code')
1295
+ this.codeConfig.active = this.$parent.queryTextMark('data-editify-code', null, true)
1296
1296
  //行内代码按钮禁用
1297
1297
  this.codeConfig.disabled = hasPreStyle || extraDisabled('code')
1298
1298
 
@@ -1392,7 +1392,7 @@ export default {
1392
1392
  this.tableConfig.disabled = hasPreStyle || hasTable || hasQuote || extraDisabled('table')
1393
1393
 
1394
1394
  //代码块按钮激活
1395
- this.codeBlockConfig.active = !!this.$parent.getCurrentParsedomElement('pre')
1395
+ this.codeBlockConfig.active = !!this.$parent.getCurrentParsedomElement('pre', true)
1396
1396
  //代码块按钮禁用
1397
1397
  this.codeBlockConfig.disabled = hasTable || hasQuote || extraDisabled('codeBlock')
1398
1398
 
@@ -474,80 +474,80 @@ export default {
474
474
  methods: {
475
475
  //清除格式
476
476
  clearFormat() {
477
- this.$parent.formatText()
477
+ this.$parent.formatText(true, true)
478
478
  },
479
479
  //设置背景色
480
480
  setBackColor(value) {
481
- this.$parent.setTextStyle('background-color', value)
481
+ this.$parent.setTextStyle('background-color', value, true, true)
482
482
  this.$refs.backColor.hideLayer()
483
483
  },
484
484
  //设置前景色
485
485
  setForeColor(value) {
486
- this.$parent.setTextStyle('color', value)
486
+ this.$parent.setTextStyle('color', value, true, true)
487
487
  this.$refs.foreColor.hideLayer()
488
488
  },
489
489
  //设置行高
490
490
  setLineHeight(name, value) {
491
- this.$parent.setLineHeight(value)
491
+ this.$parent.setLineHeight(value, true, true)
492
492
  },
493
493
  //设置字体
494
494
  setFontFamily(name, value) {
495
- this.$parent.setTextStyle('font-family', value)
495
+ this.$parent.setTextStyle('font-family', value, true, true)
496
496
  },
497
497
  //设置字号
498
498
  setFontSize(name, value) {
499
- this.$parent.setTextStyle('font-size', value)
499
+ this.$parent.setTextStyle('font-size', value, true, true)
500
500
  },
501
501
  //设置上标
502
502
  setSuperscript() {
503
- this.$parent.setTextStyle('vertical-align', 'super')
503
+ this.$parent.setTextStyle('vertical-align', 'super', true, true)
504
504
  },
505
505
  //设置下标
506
506
  setSubscript() {
507
- this.$parent.setTextStyle('vertical-align', 'sub')
507
+ this.$parent.setTextStyle('vertical-align', 'sub', true, true)
508
508
  },
509
509
  //设置行内代码样式
510
510
  setCodeStyle() {
511
- this.$parent.setTextMark('data-editify-code', true)
511
+ this.$parent.setTextMark('data-editify-code', true, true, true)
512
512
  },
513
513
  //设置下划线
514
514
  setUnderline() {
515
- this.$parent.setTextStyle('text-decoration', 'underline')
515
+ this.$parent.setTextStyle('text-decoration', 'underline', true, true)
516
516
  },
517
517
  //设置删除线
518
518
  setStrikethrough() {
519
- this.$parent.setTextStyle('text-decoration', 'line-through')
519
+ this.$parent.setTextStyle('text-decoration', 'line-through', true, true)
520
520
  },
521
521
  //设置列表
522
522
  setList(name) {
523
- this.$parent.setList(name == 'orderList')
523
+ this.$parent.setList(name == 'orderList', true, true)
524
524
  },
525
525
  //设置任务列表
526
526
  setTask() {
527
- this.$parent.setTask()
527
+ this.$parent.setTask(true, true)
528
528
  },
529
529
  //斜体
530
530
  setItalic() {
531
- this.$parent.setTextStyle('font-style', 'italic')
531
+ this.$parent.setTextStyle('font-style', 'italic', true, true)
532
532
  },
533
533
  //加粗
534
534
  setBold() {
535
- this.$parent.setTextStyle('font-weight', 'bold')
535
+ this.$parent.setTextStyle('font-weight', 'bold', true, true)
536
536
  },
537
537
  //设置标题
538
538
  setHeading(name, value) {
539
- this.$parent.setHeading(value)
539
+ this.$parent.setHeading(value, true, true)
540
540
  },
541
541
  //设置对齐方式
542
542
  setAlign(name, value) {
543
- this.$parent.setAlign(value)
543
+ this.$parent.setAlign(value, true, true)
544
544
  },
545
545
  //设置视频
546
546
  setVideo(prop) {
547
547
  if (this.$parent.disabled) {
548
548
  return
549
549
  }
550
- const video = this.$parent.getCurrentParsedomElement('video')
550
+ const video = this.$parent.getCurrentParsedomElement('video', true)
551
551
  if (video) {
552
552
  //当前是拥有该属性
553
553
  if (this.videoConfig[prop]) {
@@ -567,7 +567,7 @@ export default {
567
567
  if (this.$parent.disabled) {
568
568
  return
569
569
  }
570
- const element = this.$parent.getCurrentParsedomElement('img') || this.$parent.getCurrentParsedomElement('video')
570
+ const element = this.$parent.getCurrentParsedomElement('img', true) || this.$parent.getCurrentParsedomElement('video', true)
571
571
  if (element) {
572
572
  const styles = {
573
573
  width: value
@@ -594,7 +594,7 @@ export default {
594
594
  if (!this.linkConfig.url) {
595
595
  return
596
596
  }
597
- const link = this.$parent.getCurrentParsedomElement('a')
597
+ const link = this.$parent.getCurrentParsedomElement('a', true)
598
598
  if (link) {
599
599
  link.marks.href = this.linkConfig.url
600
600
  if (this.linkConfig.newOpen) {
@@ -627,7 +627,7 @@ export default {
627
627
  if (this.$parent.disabled) {
628
628
  return
629
629
  }
630
- const pre = this.$parent.getCurrentParsedomElement('pre')
630
+ const pre = this.$parent.getCurrentParsedomElement('pre', true)
631
631
  if (pre) {
632
632
  Object.assign(pre.marks, {
633
633
  'data-editify-hljs': value
@@ -646,7 +646,7 @@ export default {
646
646
  this.$parent.editor.range.anchor.element = this.$parent.editor.range.focus.element
647
647
  this.$parent.editor.range.anchor.offset = this.$parent.editor.range.focus.offset
648
648
  }
649
- const pre = this.$parent.getCurrentParsedomElement('pre')
649
+ const pre = this.$parent.getCurrentParsedomElement('pre', true)
650
650
  if (pre) {
651
651
  const paragraph = new AlexElement('block', AlexElement.BLOCK_NODE, null, null, null)
652
652
  const breakEl = new AlexElement('closed', 'br', null, null, null)
@@ -672,9 +672,9 @@ export default {
672
672
  this.$parent.editor.range.anchor.element = this.$parent.editor.range.focus.element
673
673
  this.$parent.editor.range.anchor.offset = this.$parent.editor.range.focus.offset
674
674
  }
675
- const table = this.$parent.getCurrentParsedomElement('table')
676
- const column = this.$parent.getCurrentParsedomElement('td')
677
- const tbody = this.$parent.getCurrentParsedomElement('tbody')
675
+ const table = this.$parent.getCurrentParsedomElement('table', true)
676
+ const column = this.$parent.getCurrentParsedomElement('td', true)
677
+ const tbody = this.$parent.getCurrentParsedomElement('tbody', true)
678
678
  if (column && table && tbody) {
679
679
  const rows = tbody.children
680
680
  const index = column.parent.children.findIndex(item => {
@@ -716,7 +716,7 @@ export default {
716
716
  this.$parent.editor.rangeRender()
717
717
  }
718
718
  },
719
- //表格插入前后插入行
719
+ //表格前后插入行
720
720
  insertTableRow(type = 'up') {
721
721
  if (this.$parent.disabled) {
722
722
  return
@@ -725,8 +725,8 @@ export default {
725
725
  this.$parent.editor.range.anchor.element = this.$parent.editor.range.focus.element
726
726
  this.$parent.editor.range.anchor.offset = this.$parent.editor.range.focus.offset
727
727
  }
728
- const table = this.$parent.getCurrentParsedomElement('table')
729
- const row = this.$parent.getCurrentParsedomElement('tr')
728
+ const table = this.$parent.getCurrentParsedomElement('table', true)
729
+ const row = this.$parent.getCurrentParsedomElement('tr', true)
730
730
  if (table && row) {
731
731
  const newRow = row.clone()
732
732
  newRow.children.forEach(column => {
@@ -755,7 +755,7 @@ export default {
755
755
  if (this.$parent.disabled) {
756
756
  return
757
757
  }
758
- const table = this.$parent.getCurrentParsedomElement('table')
758
+ const table = this.$parent.getCurrentParsedomElement('table', true)
759
759
  if (table) {
760
760
  const paragraph = new AlexElement('block', AlexElement.BLOCK_NODE, null, null, null)
761
761
  const breakEl = new AlexElement('closed', 'br', null, null, null)
@@ -781,12 +781,12 @@ export default {
781
781
  this.$parent.editor.range.anchor.element = this.$parent.editor.range.focus.element
782
782
  this.$parent.editor.range.anchor.offset = this.$parent.editor.range.focus.offset
783
783
  }
784
- const table = this.$parent.getCurrentParsedomElement('table')
785
- const row = this.$parent.getCurrentParsedomElement('tr')
784
+ const table = this.$parent.getCurrentParsedomElement('table', true)
785
+ const row = this.$parent.getCurrentParsedomElement('tr', true)
786
786
  if (table && row) {
787
787
  const parent = row.parent
788
788
  if (parent.children.length == 1) {
789
- this.$parent.deleteByParsedom('table')
789
+ this.$parent.deleteByParsedom('table', true, true)
790
790
  return
791
791
  }
792
792
  const previousRow = this.$parent.editor.getPreviousElement(row)
@@ -817,14 +817,14 @@ export default {
817
817
  this.$parent.editor.range.anchor.element = this.$parent.editor.range.focus.element
818
818
  this.$parent.editor.range.anchor.offset = this.$parent.editor.range.focus.offset
819
819
  }
820
- const column = this.$parent.getCurrentParsedomElement('td')
821
- const tbody = this.$parent.getCurrentParsedomElement('tbody')
822
- const table = this.$parent.getCurrentParsedomElement('table')
820
+ const column = this.$parent.getCurrentParsedomElement('td', true)
821
+ const tbody = this.$parent.getCurrentParsedomElement('tbody', true)
822
+ const table = this.$parent.getCurrentParsedomElement('table', true)
823
823
  if (column && table && tbody) {
824
824
  const rows = tbody.children
825
825
  const parent = column.parent
826
826
  if (parent.children.length == 1) {
827
- this.$parent.deleteByParsedom('table')
827
+ this.$parent.deleteByParsedom('table', true, true)
828
828
  return
829
829
  }
830
830
  const previousColumn = this.$parent.editor.getPreviousElement(column)
@@ -856,16 +856,18 @@ export default {
856
856
  },
857
857
  //浮层显示时
858
858
  layerShow() {
859
+ //获取选区的元素
860
+ const result = this.$parent.editor.getElementsByRange(true).includes
859
861
  //代码块初始化展示设置
860
862
  if (this.type == 'codeBlock') {
861
- const pre = this.$parent.getCurrentParsedomElement('pre')
863
+ const pre = this.$parent.getCurrentParsedomElement('pre', true)
862
864
  if (pre) {
863
865
  this.languageConfig.displayConfig.value = pre.marks['data-editify-hljs'] || ''
864
866
  }
865
867
  }
866
868
  //链接初始化展示
867
869
  else if (this.type == 'link') {
868
- const link = this.$parent.getCurrentParsedomElement('a')
870
+ const link = this.$parent.getCurrentParsedomElement('a', true)
869
871
  if (link) {
870
872
  this.linkConfig.url = link.marks['href']
871
873
  this.linkConfig.newOpen = link.marks['target'] == '_blank'
@@ -873,7 +875,7 @@ export default {
873
875
  }
874
876
  //视频初始化显示
875
877
  else if (this.type == 'video') {
876
- const video = this.$parent.getCurrentParsedomElement('video')
878
+ const video = this.$parent.getCurrentParsedomElement('video', true)
877
879
  if (video) {
878
880
  this.videoConfig.autoplay = !!video.marks['autoplay']
879
881
  this.videoConfig.loop = !!video.marks['loop']
@@ -890,10 +892,6 @@ export default {
890
892
  }
891
893
  return false
892
894
  }
893
-
894
- //获取选区的元素
895
- const result = this.$parent.editor.getElementsByRange(true, false)
896
-
897
895
  //显示已设置标题
898
896
  const findHeadingItem = this.headingConfig.displayConfig.options.find(item => {
899
897
  let val = item
@@ -915,22 +913,22 @@ export default {
915
913
  this.alignConfig.disabled = extraDisabled('align')
916
914
 
917
915
  //有序列表按钮激活
918
- this.orderListConfig.active = this.$parent.inList(true)
916
+ this.orderListConfig.active = this.$parent.inList(true, true)
919
917
  //有序列表按钮禁用
920
918
  this.orderListConfig.disabled = extraDisabled('orderList')
921
919
 
922
920
  //无序列表按钮激活
923
- this.unorderListConfig.active = this.$parent.inList(false)
921
+ this.unorderListConfig.active = this.$parent.inList(false, true)
924
922
  //无序列表按钮禁用
925
923
  this.unorderListConfig.disabled = extraDisabled('unorderList')
926
924
 
927
925
  //任务列表按钮激活
928
- this.taskConfig.active = this.$parent.inTask()
926
+ this.taskConfig.active = this.$parent.inTask(true, true)
929
927
  //任务列表按钮禁用
930
928
  this.taskConfig.disabled = extraDisabled('task')
931
929
 
932
930
  //粗体按钮激活
933
- this.boldConfig.active = this.$parent.queryTextStyle('font-weight', 'bold')
931
+ this.boldConfig.active = this.$parent.queryTextStyle('font-weight', 'bold', true)
934
932
  //粗体按钮禁用
935
933
  this.boldConfig.disabled = extraDisabled('bold')
936
934
 
@@ -950,7 +948,7 @@ export default {
950
948
  this.underlineConfig.disabled = extraDisabled('underline')
951
949
 
952
950
  //行内代码按钮激活
953
- this.codeConfig.active = this.$parent.queryTextMark('data-editify-code')
951
+ this.codeConfig.active = this.$parent.queryTextMark('data-editify-code', null, true)
954
952
  //行内代码按钮禁用
955
953
  this.codeConfig.disabled = extraDisabled('code')
956
954
 
package/src/index.js CHANGED
@@ -7,7 +7,7 @@ import './icon/iconfont.css'
7
7
  //引入国际化
8
8
  import i18n from './locale'
9
9
  //版本号
10
- const version = '0.0.46'
10
+ const version = '0.0.48'
11
11
  //安装函数
12
12
  const install = (app, props) => {
13
13
  const locale = (props ? props.locale : 'zh_CN') || 'zh_CN'