vue-editify 0.1.32 → 0.1.34

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 CHANGED
@@ -14,35 +14,23 @@ const menuConfig = ref<MenuConfigType>({
14
14
  sourceView: {
15
15
  show: true
16
16
  },
17
+ video: {
18
+ multiple: true
19
+ },
17
20
  fullScreen: {
18
21
  show: true
19
22
  }
20
23
  })
21
24
 
22
- //自定义插件
23
- const redPlugin = () => {
24
- const plugin: PluginType = () => {
25
- return {
26
- name: 'red',
27
- renderRule: (el: AlexElement) => {
28
- if (el.hasStyles()) {
29
- el.styles!['color'] = 'red'
30
- } else {
31
- el.styles = {
32
- color: 'red'
33
- }
34
- }
35
- return el
36
- }
37
- }
38
- }
39
- return plugin
40
- }
41
25
  const plugins = ref<PluginType[]>([
42
26
  attachment({
43
- multiple: true
44
- }),
45
- redPlugin()
27
+ multiple: true,
28
+ customUpload: (files: File[]) => {
29
+ return files.map(item => {
30
+ return 'xxx'
31
+ })
32
+ }
33
+ })
46
34
  ])
47
35
  </script>
48
36
  <style lang="less">
package/lib/editify.es.js CHANGED
@@ -22967,7 +22967,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
22967
22967
  e.currentTarget.style.borderColor = "";
22968
22968
  };
22969
22969
  const insertRemoteImage = () => {
22970
- emits("insert", remoteUrl.value);
22970
+ emits("insert", [remoteUrl.value]);
22971
22971
  };
22972
22972
  const selectFile = async (e) => {
22973
22973
  const inputEle = e.currentTarget;
@@ -23003,18 +23003,16 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
23003
23003
  filterFiles.push(file2);
23004
23004
  }
23005
23005
  if (filterFiles.length) {
23006
- let images = [];
23006
+ let urls = [];
23007
23007
  if (typeof props.customUpload == "function") {
23008
- images = await props.customUpload(filterFiles) || [];
23008
+ urls = await props.customUpload(filterFiles) || [];
23009
23009
  } else {
23010
23010
  for (let i = 0; i < filterFiles.length; i++) {
23011
23011
  const url = await file.dataFileToBase64(filterFiles[i]);
23012
- images.push(url);
23012
+ urls.push(url);
23013
23013
  }
23014
23014
  }
23015
- images.forEach((url) => {
23016
- emits("insert", url);
23017
- });
23015
+ emits("insert", urls);
23018
23016
  }
23019
23017
  inputEle.value = "";
23020
23018
  };
@@ -23075,7 +23073,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
23075
23073
  };
23076
23074
  }
23077
23075
  });
23078
- const InsertImage = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-17d0a9c4"]]);
23076
+ const InsertImage = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-b63a5bff"]]);
23079
23077
  const InsertVideoProps = {
23080
23078
  //主题色
23081
23079
  color: {
@@ -23164,7 +23162,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
23164
23162
  e.currentTarget.style.borderColor = "";
23165
23163
  };
23166
23164
  const insertRemoteVideo = () => {
23167
- emits("insert", remoteUrl.value);
23165
+ emits("insert", [remoteUrl.value]);
23168
23166
  };
23169
23167
  const selectFile = async (e) => {
23170
23168
  const inputEle = e.currentTarget;
@@ -23200,18 +23198,16 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
23200
23198
  filterFiles.push(file2);
23201
23199
  }
23202
23200
  if (filterFiles.length) {
23203
- let videos = [];
23201
+ let urls = [];
23204
23202
  if (typeof props.customUpload == "function") {
23205
- videos = await props.customUpload(filterFiles) || [];
23203
+ urls = await props.customUpload(filterFiles) || [];
23206
23204
  } else {
23207
23205
  for (let i = 0; i < filterFiles.length; i++) {
23208
23206
  const url = await file.dataFileToBase64(filterFiles[i]);
23209
- videos.push(url);
23207
+ urls.push(url);
23210
23208
  }
23211
23209
  }
23212
- videos.forEach((url) => {
23213
- emits("insert", url);
23214
- });
23210
+ emits("insert", urls);
23215
23211
  }
23216
23212
  inputEle.value = "";
23217
23213
  };
@@ -23272,7 +23268,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
23272
23268
  };
23273
23269
  }
23274
23270
  });
23275
- const InsertVideo = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-a54e06d0"]]);
23271
+ const InsertVideo = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-4383bae9"]]);
23276
23272
  const InsertTableProps = {
23277
23273
  //主题色
23278
23274
  color: {
@@ -23907,7 +23903,15 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
23907
23903
  if (!val) {
23908
23904
  return;
23909
23905
  }
23910
- insertImage(editor.value, val);
23906
+ const urls = val.filter((url) => {
23907
+ return !!url;
23908
+ });
23909
+ if (urls.length == 0) {
23910
+ return;
23911
+ }
23912
+ urls.forEach((url) => {
23913
+ insertImage(editor.value, url);
23914
+ });
23911
23915
  editor.value.formatElementStack();
23912
23916
  editor.value.domRender();
23913
23917
  editor.value.rangeRender();
@@ -23915,7 +23919,15 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
23915
23919
  if (!val) {
23916
23920
  return;
23917
23921
  }
23918
- insertVideo(editor.value, val);
23922
+ const urls = val.filter((url) => {
23923
+ return !!url;
23924
+ });
23925
+ if (urls.length == 0) {
23926
+ return;
23927
+ }
23928
+ urls.forEach((url) => {
23929
+ insertVideo(editor.value, url);
23930
+ });
23919
23931
  editor.value.formatElementStack();
23920
23932
  editor.value.domRender();
23921
23933
  editor.value.rangeRender();
@@ -24538,8 +24550,8 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
24538
24550
  const layer = btn.$refs.layerRef;
24539
24551
  layer.setPosition();
24540
24552
  },
24541
- onInsert: (url) => {
24542
- handleOperate("image", url);
24553
+ onInsert: (urls) => {
24554
+ handleOperate("image", urls);
24543
24555
  const btn = itemInstance.proxy.$refs.btnRef;
24544
24556
  btn.show = false;
24545
24557
  }
@@ -24579,8 +24591,8 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
24579
24591
  const layer = btn.$refs.layerRef;
24580
24592
  layer.setPosition();
24581
24593
  },
24582
- onInsert: (url) => {
24583
- handleOperate("video", url);
24594
+ onInsert: (urls) => {
24595
+ handleOperate("video", urls);
24584
24596
  const btn = itemInstance.proxy.$refs.btnRef;
24585
24597
  btn.show = false;
24586
24598
  }
@@ -24768,7 +24780,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
24768
24780
  };
24769
24781
  }
24770
24782
  });
24771
- const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-fbf50ae5"]]);
24783
+ const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-98c51b8e"]]);
24772
24784
  const EditifyProps = {
24773
24785
  //国际化语言类型
24774
24786
  locale: {
@@ -25956,7 +25968,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
25956
25968
  e.currentTarget.style.borderColor = "";
25957
25969
  };
25958
25970
  const insertRemoteAttachment = () => {
25959
- emits("insert", attachmentName.value, attachmentUrl.value);
25971
+ emits("insert", attachmentName.value, [attachmentUrl.value]);
25960
25972
  };
25961
25973
  const triggerFileInput = () => {
25962
25974
  fileInputRef.value.click();
@@ -25994,18 +26006,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
25994
26006
  filterFiles.push(file2);
25995
26007
  }
25996
26008
  if (filterFiles.length) {
25997
- let attachments = [];
26009
+ let urls = [];
25998
26010
  if (typeof props.customUpload == "function") {
25999
- attachments = await props.customUpload(filterFiles) || [];
26011
+ urls = await props.customUpload(filterFiles) || [];
26000
26012
  } else {
26001
26013
  for (let i = 0; i < filterFiles.length; i++) {
26002
26014
  const url = await file.dataFileToBase64(filterFiles[i]);
26003
- attachments.push(url);
26015
+ urls.push(url);
26004
26016
  }
26005
26017
  }
26006
- attachments.forEach((url) => {
26007
- emits("insert", attachmentName.value, url);
26008
- });
26018
+ emits("insert", attachmentName.value, urls);
26009
26019
  }
26010
26020
  fileInputRef.value.value = "";
26011
26021
  };
@@ -26102,7 +26112,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
26102
26112
  };
26103
26113
  }
26104
26114
  });
26105
- const InsertAttachment = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f995f4bd"]]);
26115
+ const InsertAttachment = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-52b1e545"]]);
26106
26116
  const isAttachment = (element2) => {
26107
26117
  if (element2.isEmpty()) {
26108
26118
  return false;
@@ -26160,22 +26170,27 @@ const attachment = (options) => {
26160
26170
  onChange: () => {
26161
26171
  btnInstance.$refs.layerRef.setPosition();
26162
26172
  },
26163
- onInsert: (name, url) => {
26164
- if (url) {
26165
- const marks = {
26166
- "data-attachment": url,
26167
- "data-attachment-name": name || editTrans("attachmentDefaultName"),
26168
- contenteditable: "false"
26169
- };
26170
- const attachmentElement = new AlexElement("closed", "span", marks, null, null);
26173
+ onInsert: (name, urls) => {
26174
+ urls = urls.filter((url) => {
26175
+ return !!url;
26176
+ });
26177
+ if (urls.length) {
26171
26178
  const editor = editifyInstance.exposed.editor.value;
26172
- editor.insertElement(attachmentElement);
26173
- const beforeText = AlexElement.getSpaceElement();
26174
- const afterText = AlexElement.getSpaceElement();
26175
- editor.addElementAfter(afterText, attachmentElement);
26176
- editor.addElementBefore(beforeText, attachmentElement);
26177
- editor.range.anchor.moveToStart(afterText);
26178
- editor.range.focus.moveToStart(afterText);
26179
+ urls.forEach((url) => {
26180
+ const marks = {
26181
+ "data-attachment": url,
26182
+ "data-attachment-name": name || editTrans("attachmentDefaultName"),
26183
+ contenteditable: "false"
26184
+ };
26185
+ const attachmentElement = new AlexElement("closed", "span", marks, null, null);
26186
+ editor.insertElement(attachmentElement);
26187
+ const beforeText = AlexElement.getSpaceElement();
26188
+ const afterText = AlexElement.getSpaceElement();
26189
+ editor.addElementAfter(afterText, attachmentElement);
26190
+ editor.addElementBefore(beforeText, attachmentElement);
26191
+ editor.range.anchor.moveToStart(afterText);
26192
+ editor.range.focus.moveToStart(afterText);
26193
+ });
26179
26194
  editor.formatElementStack();
26180
26195
  editor.domRender();
26181
26196
  editor.rangeRender();
@@ -26242,7 +26257,7 @@ const attachment = (options) => {
26242
26257
  const install = (app) => {
26243
26258
  app.component(Editify.name, Editify);
26244
26259
  };
26245
- const version = "0.1.32";
26260
+ const version = "0.1.34";
26246
26261
  console.log(`%c vue-editify %c v${version} `, "padding: 2px 1px; border-radius: 3px 0 0 3px; color: #fff; background: #606060; font-weight: bold;", "padding: 2px 1px; border-radius: 0 3px 3px 0; color: #fff; background: #42c02e; font-weight: bold;");
26247
26262
  export {
26248
26263
  AlexElement,