@ebl-vue/editor-full 1.1.4 → 1.1.6

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/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ import { bundledLanguagesInfo as jt, codeToHtml as Vt } from "shiki";
5
5
  import { make as S, isEmpty as rt } from "@editorjs/dom";
6
6
  import { focus as Kt, isCaretAtStartOfInput as Yt, getCaretNodeAndOffset as Gt, getContenteditableSlice as Jt } from "@editorjs/caret";
7
7
  import lt from "vanilla-caret-js";
8
- import Y from "axios";
8
+ import U from "axios";
9
9
  const dt = Symbol("INSTALLED_KEY"), Xt = (h, t) => (h.install = (e) => {
10
10
  for (const i of [h, ...Object.values({})]) e.component(i.name, i);
11
11
  }, h);
@@ -734,10 +734,10 @@ class q {
734
734
  let o;
735
735
  if (i) {
736
736
  const a = function(d, l) {
737
- let c = "";
738
- for (; c !== `
739
- ` && l > 0; ) l -= 1, c = d.substr(l, 1);
740
- return c === `
737
+ let p = "";
738
+ for (; p !== `
739
+ ` && l > 0; ) l -= 1, p = d.substr(l, 1);
740
+ return p === `
741
741
  ` && (l += 1), l;
742
742
  }(n, s);
743
743
  if (n.substr(a, 2) !== r) return;
@@ -747,31 +747,31 @@ class q {
747
747
  }
748
748
  drawView() {
749
749
  const t = document.createElement("div"), e = document.createElement("div"), i = document.createElement("div"), s = document.createElement("div"), n = document.createElement("div"), r = document.createElement("div"), o = document.createElement("select"), a = document.createElement("select"), d = document.createElement("span"), l = document.createElement("textarea");
750
- return t.classList.add(this.CSS.baseClass, this.CSS.wrapper), e.classList.add("ce-editorjs-x-shiki__code"), i.classList.add("ce-editorjs-x-shiki__selector"), s.classList.add("ce-editorjs-x-shiki__lang"), n.classList.add("ce-editorjs-x-shiki__copy"), r.classList.add("ce-editorjs-x-shiki__copy_tip"), o.classList.add(this.CSS.selectorLanguage), l.classList.add(this.CSS.textarea, this.CSS.input), s.innerHTML = this.data.lang, n.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.25 8.5H10.25C9.2835 8.5 8.5 9.2835 8.5 10.25V17.25C8.5 18.2165 9.2835 19 10.25 19H17.25C18.2165 19 19 18.2165 19 17.25V10.25C19 9.2835 18.2165 8.5 17.25 8.5Z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.5 8.5V6.75C15.5 6.28587 15.3156 5.84075 14.9874 5.51256C14.6592 5.18437 14.2141 5 13.75 5H6.75C6.28587 5 5.84075 5.18437 5.51256 5.51256C5.18437 5.84075 5 6.28587 5 6.75V13.75C5 14.2141 5.18437 14.6592 5.51256 14.9874C5.84075 15.3156 6.28587 15.5 6.75 15.5H8.5"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 12L15.5 12"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15.5L15.5 15.5"/></svg>', r.innerText = this.api.i18n.t("Copied"), jt.forEach((c) => {
751
- const p = document.createElement("option");
752
- p.value = c.id, p.text = c.name, o.appendChild(p);
753
- }), o.value = this.data.lang, l.value = this.data.code, l.placeholder = this.placeholder, l.spellcheck = !1, l.autocomplete = "off", l.autocapitalize = "off", this.readOnly && (l.disabled = !0), e.appendChild(d), e.appendChild(l), this.readOnly ? i.appendChild(s) : i.appendChild(o), n.appendChild(r), i.appendChild(n), t.appendChild(i), t.appendChild(e), this.runShiki().then(({ html: c, preStyle: p }) => {
754
- d.innerHTML = c, t == null || t.setAttribute("style", p), o.setAttribute("style", p), a.setAttribute("style", p);
755
- }), o.addEventListener("change", (c) => {
756
- const p = c.target.value;
757
- this._selectorLanguage = p, this.runShiki().then(({ html: u, preStyle: g }) => {
758
- d.innerHTML = u, s.innerHTML = p;
750
+ return t.classList.add(this.CSS.baseClass, this.CSS.wrapper), e.classList.add("ce-editorjs-x-shiki__code"), i.classList.add("ce-editorjs-x-shiki__selector"), s.classList.add("ce-editorjs-x-shiki__lang"), n.classList.add("ce-editorjs-x-shiki__copy"), r.classList.add("ce-editorjs-x-shiki__copy_tip"), o.classList.add(this.CSS.selectorLanguage), l.classList.add(this.CSS.textarea, this.CSS.input), s.innerHTML = this.data.lang, n.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.25 8.5H10.25C9.2835 8.5 8.5 9.2835 8.5 10.25V17.25C8.5 18.2165 9.2835 19 10.25 19H17.25C18.2165 19 19 18.2165 19 17.25V10.25C19 9.2835 18.2165 8.5 17.25 8.5Z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.5 8.5V6.75C15.5 6.28587 15.3156 5.84075 14.9874 5.51256C14.6592 5.18437 14.2141 5 13.75 5H6.75C6.28587 5 5.84075 5.18437 5.51256 5.51256C5.18437 5.84075 5 6.28587 5 6.75V13.75C5 14.2141 5.18437 14.6592 5.51256 14.9874C5.84075 15.3156 6.28587 15.5 6.75 15.5H8.5"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 12L15.5 12"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15.5L15.5 15.5"/></svg>', r.innerText = this.api.i18n.t("Copied"), jt.forEach((p) => {
751
+ const c = document.createElement("option");
752
+ c.value = p.id, c.text = p.name, o.appendChild(c);
753
+ }), o.value = this.data.lang, l.value = this.data.code, l.placeholder = this.placeholder, l.spellcheck = !1, l.autocomplete = "off", l.autocapitalize = "off", this.readOnly && (l.disabled = !0), e.appendChild(d), e.appendChild(l), this.readOnly ? i.appendChild(s) : i.appendChild(o), n.appendChild(r), i.appendChild(n), t.appendChild(i), t.appendChild(e), this.runShiki().then(({ html: p, preStyle: c }) => {
754
+ d.innerHTML = p, t == null || t.setAttribute("style", c), o.setAttribute("style", c), a.setAttribute("style", c);
755
+ }), o.addEventListener("change", (p) => {
756
+ const c = p.target.value;
757
+ this._selectorLanguage = c, this.runShiki().then(({ html: u, preStyle: g }) => {
758
+ d.innerHTML = u, s.innerHTML = c;
759
759
  });
760
- }), a.addEventListener("change", (c) => {
761
- const p = c.target.value;
762
- this._selectorTheme = p, this.runShiki().then(({ html: u, preStyle: g }) => {
760
+ }), a.addEventListener("change", (p) => {
761
+ const c = p.target.value;
762
+ this._selectorTheme = c, this.runShiki().then(({ html: u, preStyle: g }) => {
763
763
  d.innerHTML = u, t == null || t.setAttribute("style", g), o.setAttribute("style", g), a.setAttribute("style", g);
764
764
  });
765
765
  }), l.addEventListener("input", () => {
766
- this.data.code = l.value, this.runShiki().then(({ html: c, preStyle: p }) => {
767
- d.innerHTML = c, t == null || t.setAttribute("style", p), o.setAttribute("style", p), a.setAttribute("style", p);
766
+ this.data.code = l.value, this.runShiki().then(({ html: p, preStyle: c }) => {
767
+ d.innerHTML = p, t == null || t.setAttribute("style", c), o.setAttribute("style", c), a.setAttribute("style", c);
768
768
  });
769
- }), l.addEventListener("keydown", (c) => {
770
- c.code === "Tab" && (this.tabHandler(c), this.data.code = l.value, this.runShiki().then(({ html: p, preStyle: u }) => {
771
- d.innerHTML = p;
769
+ }), l.addEventListener("keydown", (p) => {
770
+ p.code === "Tab" && (this.tabHandler(p), this.data.code = l.value, this.runShiki().then(({ html: c, preStyle: u }) => {
771
+ d.innerHTML = c;
772
772
  }));
773
- }), n.addEventListener("click", (c) => {
774
- this.copyCode(this.data.code, c);
773
+ }), n.addEventListener("click", (p) => {
774
+ this.copyCode(this.data.code, p);
775
775
  }), this.nodes.textarea = l, t;
776
776
  }
777
777
  async runShiki() {
@@ -1001,11 +1001,11 @@ function J(h) {
1001
1001
  let t = h;
1002
1002
  h.classList.contains(k.item) && (t = A(h)), t !== null && I(t).length === 0 && t.remove();
1003
1003
  }
1004
- function U(h) {
1004
+ function j(h) {
1005
1005
  return h.querySelector(`.${k.itemContent}`);
1006
1006
  }
1007
1007
  function F(h, t = !0) {
1008
- const e = U(h);
1008
+ const e = j(h);
1009
1009
  e && Kt(e, t);
1010
1010
  }
1011
1011
  class X {
@@ -1051,7 +1051,7 @@ class X {
1051
1051
  return { tags: ["OL", "UL", "LI"] };
1052
1052
  }
1053
1053
  merge(t) {
1054
- const e = this.block.holder.querySelectorAll(`.${k.item}`), i = e[e.length - 1], s = U(i);
1054
+ const e = this.block.holder.querySelectorAll(`.${k.item}`), i = e[e.length - 1], s = j(i);
1055
1055
  if (i === null || s === null || (s.insertAdjacentHTML("beforeend", t.items[0].content), this.listWrapper === void 0)) return;
1056
1056
  const n = I(this.listWrapper);
1057
1057
  if (n.length === 0) return;
@@ -1079,9 +1079,9 @@ class X {
1079
1079
  const n = { style: s, meta: {}, items: [] };
1080
1080
  s === "ordered" && (this.data.meta.counterType = "numeric", this.data.meta.start = 1);
1081
1081
  const r = (o) => Array.from(o.querySelectorAll(":scope > li")).map((a) => {
1082
- var c;
1082
+ var p;
1083
1083
  const d = a.querySelector(`:scope > ${i}`), l = d ? r(d) : [];
1084
- return { content: (c = a.innerHTML) != null ? c : "", meta: {}, items: l };
1084
+ return { content: (p = a.innerHTML) != null ? p : "", meta: {}, items: l };
1085
1085
  });
1086
1086
  return n.items = r(t), n;
1087
1087
  }
@@ -1139,36 +1139,36 @@ class X {
1139
1139
  splitItem(t) {
1140
1140
  const [e, i] = Gt();
1141
1141
  if (e === null) return;
1142
- const s = U(t);
1142
+ const s = j(t);
1143
1143
  let n;
1144
1144
  n = s === null ? "" : Jt(s, e, i, "right", !0);
1145
1145
  const r = A(t), o = this.renderItem(n);
1146
1146
  t == null || t.after(o), r && o.appendChild(r), F(o);
1147
1147
  }
1148
1148
  mergeItemWithPrevious(t) {
1149
- var c;
1149
+ var p;
1150
1150
  const e = t.previousElementSibling, i = t.parentNode;
1151
1151
  if (i === null || !R(i)) return;
1152
1152
  const s = i.closest(`.${k.item}`);
1153
1153
  if (!e && !s || e && !R(e)) return;
1154
1154
  let n;
1155
1155
  if (e) {
1156
- const p = I(e, !1);
1157
- n = p.length !== 0 && p.length !== 0 ? p[p.length - 1] : e;
1156
+ const c = I(e, !1);
1157
+ n = c.length !== 0 && c.length !== 0 ? c[c.length - 1] : e;
1158
1158
  } else n = s;
1159
1159
  const r = this.renderer.getItemContent(t);
1160
1160
  if (!n) return;
1161
1161
  F(n, !1);
1162
- const o = U(n);
1162
+ const o = j(n);
1163
1163
  if (o === null) return;
1164
1164
  o.insertAdjacentHTML("beforeend", r);
1165
1165
  const a = I(t);
1166
1166
  if (a.length === 0) return t.remove(), void J(n);
1167
- const d = e || s, l = (c = A(d)) != null ? c : this.renderer.renderWrapper(!1);
1168
- e ? a.forEach((p) => {
1169
- l.appendChild(p);
1170
- }) : a.forEach((p) => {
1171
- l.prepend(p);
1167
+ const d = e || s, l = (p = A(d)) != null ? p : this.renderer.renderWrapper(!1);
1168
+ e ? a.forEach((c) => {
1169
+ l.appendChild(c);
1170
+ }) : a.forEach((c) => {
1171
+ l.prepend(c);
1172
1172
  }), A(d) === null && n.appendChild(l), t.remove();
1173
1173
  }
1174
1174
  addTab(t) {
@@ -1231,7 +1231,7 @@ class X {
1231
1231
  }
1232
1232
  }
1233
1233
  const ae = /* @__PURE__ */ new Map([["Numeric", "numeric"], ["Lower Roman", "lower-roman"], ["Upper Roman", "upper-roman"], ["Lower Alpha", "lower-alpha"], ["Upper Alpha", "upper-alpha"]]);
1234
- class V {
1234
+ class K {
1235
1235
  static get isReadOnlySupported() {
1236
1236
  return !0;
1237
1237
  }
@@ -1245,7 +1245,7 @@ class V {
1245
1245
  return { tags: ["OL", "UL", "LI"] };
1246
1246
  }
1247
1247
  static get conversionConfig() {
1248
- return { export: (t) => V.joinRecursive(t), import: (t, e) => ({ meta: {}, items: [{ content: t, meta: {}, items: [] }], style: (e == null ? void 0 : e.defaultStyle) !== void 0 ? e.defaultStyle : "unordered" }) };
1248
+ return { export: (t) => K.joinRecursive(t), import: (t, e) => ({ meta: {}, items: [{ content: t, meta: {}, items: [] }], style: (e == null ? void 0 : e.defaultStyle) !== void 0 ? e.defaultStyle : "unordered" }) };
1249
1249
  }
1250
1250
  get listStyle() {
1251
1251
  return this.data.style || this.defaultListStyle;
@@ -1276,7 +1276,7 @@ class V {
1276
1276
  }(t) : r, this.listStyle === "ordered" && this.data.meta.counterType === void 0 && (this.data.meta.counterType = "numeric"), this.changeTabulatorByStyle();
1277
1277
  }
1278
1278
  static joinRecursive(t) {
1279
- return t.items.map((e) => `${e.content} ${V.joinRecursive(e)}`).join("");
1279
+ return t.items.map((e) => `${e.content} ${K.joinRecursive(e)}`).join("");
1280
1280
  }
1281
1281
  render() {
1282
1282
  return this.listElement = this.list.render(), this.listElement;
@@ -1359,7 +1359,7 @@ class de {
1359
1359
  constructor({ editor: t, config: e = {}, onUpdate: i, maxLength: s }) {
1360
1360
  this.position = 0;
1361
1361
  const n = { maxLength: 30, onUpdate() {
1362
- }, config: { debounceTimer: 200, shortcuts: { undo: ["CMD+Z"], redo: ["CMD+Y", "CMD+SHIFT+Z"] } } }, { blocks: r, caret: o } = t, { configuration: a } = t, { holder: d, defaultBlock: l } = a, c = n.config.shortcuts, { shortcuts: p } = e, u = { ...c, ...p }, g = Array.isArray(u.undo) ? u.undo : [u.undo], m = Array.isArray(u.redo) ? u.redo : [u.redo], f = n.config.debounceTimer, { debounceTimer: v = f } = e;
1362
+ }, config: { debounceTimer: 200, shortcuts: { undo: ["CMD+Z"], redo: ["CMD+Y", "CMD+SHIFT+Z"] } } }, { blocks: r, caret: o } = t, { configuration: a } = t, { holder: d, defaultBlock: l } = a, p = n.config.shortcuts, { shortcuts: c } = e, u = { ...p, ...c }, g = Array.isArray(u.undo) ? u.undo : [u.undo], m = Array.isArray(u.redo) ? u.redo : [u.redo], f = n.config.debounceTimer, { debounceTimer: v = f } = e;
1363
1363
  this.holder = typeof d == "string" ? document.getElementById(d) : d, this.editor = t, this.defaultBlock = l, this.blocks = r, this.caret = o, this.shouldSaveHistory = !0, this.readOnly = a.readOnly, this.maxLength = s || n.maxLength, this.onUpdate = i || n.onUpdate, this.config = { debounceTimer: v, shortcuts: { undo: g, redo: m } }, new le(() => this.registerChange(), this.holder, this.config.debounceTimer).setMutationObserver(), this.setEventListeners(), this.initialItem = null, this.clear();
1364
1364
  }
1365
1365
  static get isReadOnlySupported() {
@@ -1482,13 +1482,13 @@ class de {
1482
1482
  return i.push(s), i;
1483
1483
  }
1484
1484
  setEventListeners() {
1485
- const { holder: t } = this, { shortcuts: e } = this.config, { undo: i, redo: s } = e, n = i.map((u) => u.replace(/ /g, "").split("+")), r = s.map((u) => u.replace(/ /g, "").split("+")), o = n.map((u) => this.parseKeys(u)), a = r.map((u) => this.parseKeys(u)), d = (u, g) => g.reduce((m, f) => m || ((v, L) => L.length === 3 && v[L[0]] && v[L[1]] && v.key.toLowerCase() === L[2])(u, f), !1), l = (u, g, m) => !(!((f, v) => v.reduce((L, w) => L || ((_, B) => B.length === 2 && _[B[0]] && _.key.toLowerCase() === B[1])(f, w), !1))(u, g) || d(u, m)) || !!d(u, g), c = (u) => {
1485
+ const { holder: t } = this, { shortcuts: e } = this.config, { undo: i, redo: s } = e, n = i.map((u) => u.replace(/ /g, "").split("+")), r = s.map((u) => u.replace(/ /g, "").split("+")), o = n.map((u) => this.parseKeys(u)), a = r.map((u) => this.parseKeys(u)), d = (u, g) => g.reduce((m, f) => m || ((v, L) => L.length === 3 && v[L[0]] && v[L[1]] && v.key.toLowerCase() === L[2])(u, f), !1), l = (u, g, m) => !(!((f, v) => v.reduce((L, w) => L || ((_, B) => B.length === 2 && _[B[0]] && _.key.toLowerCase() === B[1])(f, w), !1))(u, g) || d(u, m)) || !!d(u, g), p = (u) => {
1486
1486
  l(u, o, a) && (u.preventDefault(), this.undo());
1487
- }, p = (u) => {
1487
+ }, c = (u) => {
1488
1488
  l(u, a, o) && (u.preventDefault(), this.redo());
1489
1489
  };
1490
- t.addEventListener("keydown", c), t.addEventListener("keydown", p), t.addEventListener("destroy", () => {
1491
- t.removeEventListener("keydown", c), t.removeEventListener("keydown", p);
1490
+ t.addEventListener("keydown", p), t.addEventListener("keydown", c), t.addEventListener("destroy", () => {
1491
+ t.removeEventListener("keydown", p), t.removeEventListener("keydown", c);
1492
1492
  });
1493
1493
  }
1494
1494
  }
@@ -1622,9 +1622,9 @@ class H {
1622
1622
  }
1623
1623
  const wt = { orientation: !1 }, b = class b {
1624
1624
  constructor({ api: t, data: e, config: i, block: s, ...n }) {
1625
- var o, a, d, l, c, p;
1625
+ var o, a, d, l, p, c;
1626
1626
  this.wrapper = document.createElement("div"), this.DEFAULT_INDENT_KEY = "Tab", this.lastResizeTimeout = null, this.cachedMaxWidthForContent = null, this.api = t, this.block = s, !i && "settings" in n && (i = (o = n.settings) != null ? o : {}), this.config = { indentSize: 24, maxIndent: 8, minIndent: 0, multiblock: !1, autoIndent: !1, tuneName: null, orientation: "horizontal", customBlockIndentLimits: {}, handleShortcut: void 0, direction: "ltr", directionChangeHandler: null, version: "2.30", ...i != null ? i : {} }, this.changeConfigBasedOnVersionIfNeeded(), (a = this.config) != null && a.directionChangeHandler && this.config.directionChangeHandler(this.alignmentChangeListener.bind(this));
1627
- const r = (p = (c = this.config.customBlockIndentLimits[(l = (d = this.block) == null ? void 0 : d.name) != null ? l : ""]) == null ? void 0 : c.min) != null ? p : this.config.minIndent;
1627
+ const r = (c = (p = this.config.customBlockIndentLimits[(l = (d = this.block) == null ? void 0 : d.name) != null ? l : ""]) == null ? void 0 : p.min) != null ? c : this.config.minIndent;
1628
1628
  this.data = { indentLevel: r, ...e != null ? e : {} }, this.config.multiblock && this.config.tuneName, window.addEventListener("resize", (u) => this.onResize.call(this, u)), this.api.events.on("block changed", ({ event: u }) => {
1629
1629
  var f;
1630
1630
  const g = u.detail.target.id;
@@ -1654,9 +1654,9 @@ const wt = { orientation: !1 }, b = class b {
1654
1654
  t() && setTimeout(t, 300);
1655
1655
  }), this.config.orientation === "vertical") {
1656
1656
  const a = `${this.TuneNames.indentLeft}-${(r = this.block) == null ? void 0 : r.id}`, d = `${this.TuneNames.indentRight}-${(o = this.block) == null ? void 0 : o.id}`;
1657
- return [{ title: this.rightText, hint: { title: this.api.i18n.t(this.rightText) }, onActivate: (l, c) => {
1657
+ return [{ title: this.rightText, hint: { title: this.api.i18n.t(this.rightText) }, onActivate: (l, p) => {
1658
1658
  this.handleIndentRight(), l.title = this.rightText;
1659
- }, icon: kt, name: d }, { title: this.leftText, hint: { title: this.api.i18n.t(this.leftText) }, onActivate: (l, c) => {
1659
+ }, icon: kt, name: d }, { title: this.leftText, hint: { title: this.api.i18n.t(this.leftText) }, onActivate: (l, p) => {
1660
1660
  this.handleIndentLeft(), l.title = this.leftText;
1661
1661
  }, icon: vt, name: a }];
1662
1662
  }
@@ -1757,14 +1757,14 @@ const wt = { orientation: !1 }, b = class b {
1757
1757
  const s = this.getGlobalSelectedBlocks();
1758
1758
  if (!this.config.multiblock || s.length < 2) return i ? this.indentBlock() : this.unIndentBlock(), void ((o = (r = this.block).dispatchChange) == null ? void 0 : o.call(r));
1759
1759
  this.config.tuneName && s.forEach(async (a) => {
1760
- var p, u, g, m;
1760
+ var c, u, g, m;
1761
1761
  const d = await a.save();
1762
1762
  if (!d || !("tunes" in d) || typeof d.tunes != "object" || !d.tunes) return;
1763
- const l = d.tunes[(p = this.config.tuneName) != null ? p : ""];
1763
+ const l = d.tunes[(c = this.config.tuneName) != null ? c : ""];
1764
1764
  if (!l) return;
1765
1765
  l.indentLevel = i ? Math.min(this.config.maxIndent, ((u = l.indentLevel) != null ? u : 0) + 1) : Math.max(0, ((g = l.indentLevel) != null ? g : 0) - 1), (m = a.dispatchChange) == null || m.call(a);
1766
- const c = this.getWrapperBlockById(a.id);
1767
- c instanceof HTMLElement && this.applyStylesToWrapper(c, l.indentLevel);
1766
+ const p = this.getWrapperBlockById(a.id);
1767
+ p instanceof HTMLElement && this.applyStylesToWrapper(p, l.indentLevel);
1768
1768
  });
1769
1769
  }
1770
1770
  handleIndentLeft() {
@@ -1813,8 +1813,8 @@ const wt = { orientation: !1 }, b = class b {
1813
1813
  if (r === 0) return void queueMicrotask(() => this.applyStylesToWrapper.bind(this)(t, e));
1814
1814
  const o = (r - this.maxWidthForContent(t)) / 2, a = Math.max(0, Math.min(o, i)), d = 2 * a + "px", l = `${a}px`;
1815
1815
  this.isDirectionInverted ? (t.style.paddingLeft = "0px", t.style.paddingRight = d) : (t.style.paddingLeft = d, t.style.paddingRight = "0px");
1816
- const c = t.querySelector(`.${this.CSS.highlightIndent}`);
1817
- c instanceof HTMLElement && (this.isDirectionInverted ? (c.style.width = l, c.style.left = "100%", c.style.right = "") : (c.style.width = l, c.style.left = "", c.style.right = "100%"));
1816
+ const p = t.querySelector(`.${this.CSS.highlightIndent}`);
1817
+ p instanceof HTMLElement && (this.isDirectionInverted ? (p.style.width = l, p.style.left = "100%", p.style.right = "") : (p.style.width = l, p.style.left = "", p.style.right = "100%"));
1818
1818
  }
1819
1819
  onFocus(t) {
1820
1820
  t.target instanceof HTMLElement && this.wrapper.contains(t.target) && this.wrapper.setAttribute(b.DATA_FOCUSED, "");
@@ -2401,20 +2401,20 @@ class ue {
2401
2401
  }
2402
2402
  getHoveredCell(t) {
2403
2403
  let e = this.hoveredRow, i = this.hoveredColumn;
2404
- const { width: s, height: n, x: r, y: o } = function(p, u) {
2405
- const g = p.getBoundingClientRect(), { width: m, height: f, x: v, y: L } = g, { clientX: w, clientY: _ } = u;
2404
+ const { width: s, height: n, x: r, y: o } = function(c, u) {
2405
+ const g = c.getBoundingClientRect(), { width: m, height: f, x: v, y: L } = g, { clientX: w, clientY: _ } = u;
2406
2406
  return { width: m, height: f, x: w - v, y: _ - L };
2407
2407
  }(this.table, t);
2408
2408
  if (r >= 0) {
2409
- const p = ({ fromLeftBorder: g }) => r < g, u = ({ fromRightBorder: g }) => r > s - g;
2410
- i = this.binSearch(this.numberOfColumns, (g) => this.getCell(1, g), p, u);
2409
+ const c = ({ fromLeftBorder: g }) => r < g, u = ({ fromRightBorder: g }) => r > s - g;
2410
+ i = this.binSearch(this.numberOfColumns, (g) => this.getCell(1, g), c, u);
2411
2411
  }
2412
2412
  if (o >= 0) {
2413
- const p = ({ fromTopBorder: g }) => o < g, u = ({ fromBottomBorder: g }) => o > n - g;
2414
- e = this.binSearch(this.numberOfRows, (g) => this.getCell(g, 1), p, u);
2413
+ const c = ({ fromTopBorder: g }) => o < g, u = ({ fromBottomBorder: g }) => o > n - g;
2414
+ e = this.binSearch(this.numberOfRows, (g) => this.getCell(g, 1), c, u);
2415
2415
  }
2416
- const a = e || this.hoveredRow, d = i || this.hoveredColumn, { deltaXCell: l, deltaYCell: c } = this.getMousePositionRelateToCell(a, d, r, o);
2417
- return { row: a, column: d, deltaXCell: l, deltaYCell: c };
2416
+ const a = e || this.hoveredRow, d = i || this.hoveredColumn, { deltaXCell: l, deltaYCell: p } = this.getMousePositionRelateToCell(a, d, r, o);
2417
+ return { row: a, column: d, deltaXCell: l, deltaYCell: p };
2418
2418
  }
2419
2419
  getMousePositionRelateToCell(t, e, i, s) {
2420
2420
  const n = this.getCell(t, e), { fromTopBorder: r, fromLeftBorder: o } = Q(this.table, n);
@@ -2496,7 +2496,7 @@ function P(h, t = null, e = {}) {
2496
2496
  for (const s in e) e.hasOwnProperty(s) && (i[s] = e[s]);
2497
2497
  return i;
2498
2498
  }
2499
- var j = ((h) => (h.Empty = "empty", h.Uploading = "uploading", h.Filled = "filled", h))(j || {});
2499
+ var V = ((h) => (h.Empty = "empty", h.Uploading = "uploading", h.Filled = "filled", h))(V || {});
2500
2500
  class me {
2501
2501
  constructor({ api: t, config: e, onSelectFile: i, readOnly: s }) {
2502
2502
  this.api = t, this.config = e, this.onSelectFile = i, this.readOnly = s, this.nodes = { wrapper: P("div", [this.CSS.baseClass, this.CSS.wrapper]), imageContainer: P("div", [this.CSS.imageContainer]), fileButton: this.createFileButton(), imageEl: void 0, imagePreloader: P("div", this.CSS.imagePreloader), caption: P("div", [this.CSS.input, this.CSS.caption], { contentEditable: !this.readOnly }) }, this.nodes.caption.dataset.placeholder = this.config.captionPlaceholder, this.nodes.imageContainer.appendChild(this.nodes.imagePreloader), this.nodes.wrapper.appendChild(this.nodes.imageContainer), this.nodes.wrapper.appendChild(this.nodes.caption), this.nodes.wrapper.appendChild(this.nodes.fileButton);
@@ -2524,8 +2524,8 @@ class me {
2524
2524
  this.nodes.caption !== void 0 && (this.nodes.caption.innerHTML = t);
2525
2525
  }
2526
2526
  toggleStatus(t) {
2527
- for (const e in j) if (Object.prototype.hasOwnProperty.call(j, e)) {
2528
- const i = j[e];
2527
+ for (const e in V) if (Object.prototype.hasOwnProperty.call(V, e)) {
2528
+ const i = V[e];
2529
2529
  this.nodes.wrapper.classList.toggle(`${this.CSS.wrapper}--${i}`, i === t);
2530
2530
  }
2531
2531
  }
@@ -2577,13 +2577,12 @@ class fe {
2577
2577
  const m = this.config.userStore.token, f = this.config.userStore.tokenName, v = this.config.userStore.tokenPrefix;
2578
2578
  m && f && (l[f] = v + " " + m);
2579
2579
  }
2580
- const c = Y.create({ timeout: 18e5, headers: l });
2581
2580
  l["Content-Type"] = "application/json";
2582
- const p = await c.post(this.config.endpoints.byFile, { fileName: r.name, contentType: r.type });
2583
- if (p.status !== 200) return void this.onError(p.statusText);
2584
- const u = p.data;
2581
+ const p = U.create({ timeout: 18e5, headers: l }), c = await p.post(this.config.endpoints.byFile, { fileName: r.name, contentType: r.type });
2582
+ if (c.status !== 200) return void this.onError(c.statusText);
2583
+ const u = c.data;
2585
2584
  if (!u.success) return void this.onError(u.message);
2586
- i = u.data.cdn, s = u.data.objectKey, l["Content-Type"] = r.type, c.put(u.data.presignedUrl, r).then((m) => {
2585
+ i = u.data.cdn, s = u.data.objectKey, U.create({ timeout: 18e5, headers: { "Content-Type": r.type } }).put(u.data.presignedUrl, r).then((m) => {
2587
2586
  m.status === 200 && (m = { success: 1, file: { url: i + s } }), this.onUpload(m);
2588
2587
  }).catch((m) => {
2589
2588
  this.onError(m);
@@ -2595,7 +2594,7 @@ class fe {
2595
2594
  const s = this.config.userStore.token, n = this.config.userStore.tokenName, r = this.config.userStore.tokenPrefix;
2596
2595
  s && n && (i[n] = r + " " + s);
2597
2596
  }
2598
- e = Y.create({ timeout: 18e5, headers: i }).post(this.config.endpoints.byUrl, { url: t, accept: ".jpg,.jpeg,.gif,.png,.webp" }), e.then((s) => {
2597
+ e = U.create({ timeout: 18e5, headers: i }).post(this.config.endpoints.byUrl, { url: t, accept: ".jpg,.jpeg,.gif,.png,.webp" }), e.then((s) => {
2599
2598
  if (s.status !== 200 || s.data.success === !1) return void this.onError(s.data.message);
2600
2599
  let n = { success: 1, file: { url: s.data.data.cdn + s.data.data.objectKey } };
2601
2600
  this.onUpload(n);
@@ -2609,24 +2608,24 @@ class fe {
2609
2608
  if (!i.includes(n.toLowerCase())) return void this.onError("文件类型不支持");
2610
2609
  let r = {};
2611
2610
  if (this.config.userStore) {
2612
- const p = this.config.userStore.token, u = this.config.userStore.tokenName, g = this.config.userStore.tokenPrefix;
2613
- p && u && (r[u] = g + " " + p);
2611
+ const c = this.config.userStore.token, u = this.config.userStore.tokenName, g = this.config.userStore.tokenPrefix;
2612
+ c && u && (r[u] = g + " " + c);
2614
2613
  }
2615
- const o = Y.create({ timeout: 18e5, headers: r });
2614
+ const o = U.create({ timeout: 18e5, headers: r });
2616
2615
  r["Content-Type"] = "application/json";
2617
2616
  const a = await o.post(this.config.endpoints.byFile, { fileName: t.name, contentType: t.type });
2618
2617
  if (a.status !== 200) return void this.onError(a.statusText);
2619
2618
  const d = a.data;
2620
2619
  if (!d.success) return void this.onError(d.message);
2621
- let l = d.data.cdn, c = d.data.objectKey;
2622
- r["Content-Type"] = t.type, o.put(d.data.presignedUrl, t).then((p) => {
2623
- p.status === 200 && (p = { success: 1, file: { url: l + c } }), this.onUpload(p);
2624
- }).catch((p) => {
2625
- this.onError(p);
2620
+ let l = d.data.cdn, p = d.data.objectKey;
2621
+ r["Content-Type"] = t.type, o.put(d.data.presignedUrl, t).then((c) => {
2622
+ c.status === 200 && (c = { success: 1, file: { url: l + p } }), this.onUpload(c);
2623
+ }).catch((c) => {
2624
+ this.onError(c);
2626
2625
  });
2627
2626
  }
2628
2627
  }
2629
- class K {
2628
+ class Y {
2630
2629
  constructor({ data: t, config: e, api: i, readOnly: s, block: n }) {
2631
2630
  var r;
2632
2631
  this.isCaptionEnabled = null, this.api = i, this.block = n, this.userStore = e == null ? void 0 : e.userStore, this.config = { endpoints: e.endpoints, additionalRequestData: e.additionalRequestData, additionalRequestHeaders: e.additionalRequestHeaders, field: e.field, types: e.types, captionPlaceholder: this.api.i18n.t((r = e.captionPlaceholder) != null ? r : "Caption"), buttonContent: e.buttonContent, uploader: e.uploader, actions: e.actions, features: e.features || {}, userStore: e.userStore }, this.uploader = new fe({ config: this.config, onUpload: (o) => this.onUpload(o), onError: (o) => this.uploadingFailed(o) }), this.ui = new me({ api: i, config: this.config, onSelectFile: () => {
@@ -2665,7 +2664,7 @@ class K {
2665
2664
  }
2666
2665
  renderSettings() {
2667
2666
  var n;
2668
- const t = K.tunes.concat(this.config.actions || []), e = { border: "withBorder", background: "withBackground", stretch: "stretched", caption: "caption" };
2667
+ const t = Y.tunes.concat(this.config.actions || []), e = { border: "withBorder", background: "withBackground", stretch: "stretched", caption: "caption" };
2669
2668
  ((n = this.config.features) == null ? void 0 : n.caption) === "optional" && t.push({ name: "caption", icon: Ot, title: "With caption", toggle: !0 });
2670
2669
  const i = t.filter((r) => {
2671
2670
  var a, d;
@@ -2709,7 +2708,7 @@ class K {
2709
2708
  }
2710
2709
  set data(t) {
2711
2710
  var e;
2712
- this.image = t.file, this._data.caption = t.caption || "", this.ui.fillCaption(this._data.caption), K.tunes.forEach(({ name: i }) => {
2711
+ this.image = t.file, this._data.caption = t.caption || "", this.ui.fillCaption(this._data.caption), Y.tunes.forEach(({ name: i }) => {
2713
2712
  const s = t[i] !== void 0 && (t[i] === !0 || t[i] === "true");
2714
2713
  this.setTune(i, s);
2715
2714
  }), (t.caption || ((e = this.config.features) == null ? void 0 : e.caption) === !0) && this.setTune("caption", !0);
@@ -2747,8 +2746,8 @@ class K {
2747
2746
  }
2748
2747
  class Ce {
2749
2748
  constructor({ api: t, data: e, config: i, block: s }) {
2750
- var n, r, o, a, d, l, c, p, u, g, m, f, v, L, w, _, B;
2751
- this.settings = [], this.api = t, this.block = s, this.data = { floatLeft: (n = e == null ? void 0 : e.floatLeft) != null ? n : !1, floatRight: (r = e == null ? void 0 : e.floatRight) != null ? r : !1, center: (o = e == null ? void 0 : e.center) != null ? o : !1, sizeSmall: (a = e == null ? void 0 : e.sizeSmall) != null ? a : !1, sizeMiddle: (d = e == null ? void 0 : e.sizeMiddle) != null ? d : !1, sizeLarge: (l = e == null ? void 0 : e.sizeLarge) != null ? l : !1, resize: (p = (c = e == null ? void 0 : e.resize) != null ? c : i == null ? void 0 : i.resize) != null ? p : !1, resizeSize: (u = e == null ? void 0 : e.resizeSize) != null ? u : 0, crop: (m = (g = e == null ? void 0 : e.crop) != null ? g : i == null ? void 0 : i.crop) != null ? m : !1, cropperFrameHeight: (f = e == null ? void 0 : e.cropperFrameHeight) != null ? f : 0, cropperFrameWidth: (v = e == null ? void 0 : e.cropperFrameWidth) != null ? v : 0, cropperFrameLeft: (L = e == null ? void 0 : e.cropperFrameLeft) != null ? L : 0, cropperFrameTop: (w = e == null ? void 0 : e.cropperFrameTop) != null ? w : 0, cropperImageHeight: (_ = e == null ? void 0 : e.cropperImageHeight) != null ? _ : 0, cropperImageWidth: (B = e == null ? void 0 : e.cropperImageWidth) != null ? B : 0, cropperInterface: void 0 }, this.wrapper = void 0, this.buttons = [], this.styles = { settingsButton: "cdx-settings-button", settingsButtonActive: "cdx-settings-button--active", settingsButtonModifier: "", settingsButtonModifierActive: "" };
2749
+ var n, r, o, a, d, l, p, c, u, g, m, f, v, L, w, _, B;
2750
+ this.settings = [], this.api = t, this.block = s, this.data = { floatLeft: (n = e == null ? void 0 : e.floatLeft) != null ? n : !1, floatRight: (r = e == null ? void 0 : e.floatRight) != null ? r : !1, center: (o = e == null ? void 0 : e.center) != null ? o : !1, sizeSmall: (a = e == null ? void 0 : e.sizeSmall) != null ? a : !1, sizeMiddle: (d = e == null ? void 0 : e.sizeMiddle) != null ? d : !1, sizeLarge: (l = e == null ? void 0 : e.sizeLarge) != null ? l : !1, resize: (c = (p = e == null ? void 0 : e.resize) != null ? p : i == null ? void 0 : i.resize) != null ? c : !1, resizeSize: (u = e == null ? void 0 : e.resizeSize) != null ? u : 0, crop: (m = (g = e == null ? void 0 : e.crop) != null ? g : i == null ? void 0 : i.crop) != null ? m : !1, cropperFrameHeight: (f = e == null ? void 0 : e.cropperFrameHeight) != null ? f : 0, cropperFrameWidth: (v = e == null ? void 0 : e.cropperFrameWidth) != null ? v : 0, cropperFrameLeft: (L = e == null ? void 0 : e.cropperFrameLeft) != null ? L : 0, cropperFrameTop: (w = e == null ? void 0 : e.cropperFrameTop) != null ? w : 0, cropperImageHeight: (_ = e == null ? void 0 : e.cropperImageHeight) != null ? _ : 0, cropperImageWidth: (B = e == null ? void 0 : e.cropperImageWidth) != null ? B : 0, cropperInterface: void 0 }, this.wrapper = void 0, this.buttons = [], this.styles = { settingsButton: "cdx-settings-button", settingsButtonActive: "cdx-settings-button--active", settingsButtonModifier: "", settingsButtonModifierActive: "" };
2752
2751
  }
2753
2752
  static get isTune() {
2754
2753
  return !0;
@@ -2882,8 +2881,8 @@ class Ce {
2882
2881
  const s = document.getElementsByClassName("codex-editor")[0].clientWidth;
2883
2882
  let n = 0, r = 0;
2884
2883
  const o = (d) => {
2885
- const l = d.clientX - n, c = r + l;
2886
- c > 50 && c < s && (t.style.width = c + "px");
2884
+ const l = d.clientX - n, p = r + l;
2885
+ p > 50 && p < s && (t.style.width = p + "px");
2887
2886
  }, a = () => {
2888
2887
  const d = parseInt(window.getComputedStyle(t).width, 10);
2889
2888
  d > 0 && (this.data.resizeSize = d), document.removeEventListener("mousemove", o), document.removeEventListener("mouseup", a), this.block.dispatchChange();
@@ -2948,7 +2947,7 @@ const ve = { class: "ebl-editor", id: "holder" }, ke = Nt({ name: "EblEditor", i
2948
2947
  const o = ["indent", "blockAlignment"];
2949
2948
  return Ft(() => {
2950
2949
  const a = Pt(n.data);
2951
- r = new Ut({ holder: "holder", autofocus: !0, defaultBlock: "paragraph", placeholder: n.placeholder, tunes: o, tools: { inlineCode: $, underline: nt, Color: { class: ce }, marker: { class: W }, indent: { class: st }, alert: { class: H, inlineToolbar: !0 }, List: { class: V, inlineToolbar: !0, config: { defaultStyle: "unordered" } }, h1: { class: Zt, inlineToolbar: !0 }, h2: { class: te, inlineToolbar: !0 }, h3: { class: ee, inlineToolbar: !0 }, h4: { class: ie, inlineToolbar: !0 }, h5: { class: se, inlineToolbar: !0 }, h6: { class: ne, inlineToolbar: !0 }, paragraph: { class: at, inlineToolbar: !0 }, blockAlignment: { class: ot, inlineToolbar: !0 }, code: { class: q, config: { lang: "javascript", theme: "catppuccin-latte" } }, quote: { class: re, inlineToolbar: !0 }, delimiter: oe, table: { class: ge, inlineToolbar: !0, config: { rows: 2, cols: 3 } }, image: { class: K, inlineToolbar: !0, tunes: o.concat(["imageResize"]), config: { types: ".png,.jpeg,.jpg,.gif,.webp", userStore: n.userStore, endpoints: { byFile: i == null ? void 0 : i.fileUploadEndpoint, byUrl: i == null ? void 0 : i.urlUploadEndpoint }, features: { caption: !1, stretch: !1, border: !1, background: !1 } } }, imageResize: { class: Ce, config: { resize: !0, crop: !1 } } }, data: a, readOnly: n.readOnly, i18n: n.locale, onChange: (d, l) => {
2950
+ r = new Ut({ holder: "holder", autofocus: !0, defaultBlock: "paragraph", placeholder: n.placeholder, tunes: o, tools: { inlineCode: $, underline: nt, Color: { class: ce }, marker: { class: W }, indent: { class: st }, alert: { class: H, inlineToolbar: !0 }, List: { class: K, inlineToolbar: !0, config: { defaultStyle: "unordered" } }, h1: { class: Zt, inlineToolbar: !0 }, h2: { class: te, inlineToolbar: !0 }, h3: { class: ee, inlineToolbar: !0 }, h4: { class: ie, inlineToolbar: !0 }, h5: { class: se, inlineToolbar: !0 }, h6: { class: ne, inlineToolbar: !0 }, paragraph: { class: at, inlineToolbar: !0 }, blockAlignment: { class: ot, inlineToolbar: !0 }, code: { class: q, config: { lang: "javascript", theme: "catppuccin-latte" } }, quote: { class: re, inlineToolbar: !0 }, delimiter: oe, table: { class: ge, inlineToolbar: !0, config: { rows: 2, cols: 3 } }, image: { class: Y, inlineToolbar: !0, tunes: o.concat(["imageResize"]), config: { types: ".png,.jpeg,.jpg,.gif,.webp", userStore: n.userStore, endpoints: { byFile: i == null ? void 0 : i.fileUploadEndpoint, byUrl: i == null ? void 0 : i.urlUploadEndpoint }, features: { caption: !1, stretch: !1, border: !1, background: !1 } } }, imageResize: { class: Ce, config: { resize: !0, crop: !1 } } }, data: a, readOnly: n.readOnly, i18n: n.locale, onChange: (d, l) => {
2952
2951
  s("onChange", d, l);
2953
2952
  }, onReady: () => {
2954
2953
  new Qt("holder", n.readOnly, r, "1px solid #999"), new de({ editor: r, config: { debounceTimer: 200, maxLength: 100 }, onUpdate: () => {
@@ -2973,7 +2972,7 @@ for (let h in _t) {
2973
2972
  const t = Xt(_t[h]);
2974
2973
  Rt.push(t);
2975
2974
  }
2976
- const Ee = { messages: { ui: { blockTunes: { toggler: { "Click to tune": "可拖拽和点击" } }, toolbar: { toolbox: { Add: "添加", Filter: "过滤", "Nothing found": "无内容" }, popover: { Filter: "过滤", "Nothing found": "无内容" } }, popover: { Filter: "筛选", "Nothing found": "未找到任何内容", "Convert to": "转化为" } }, toolNames: { Text: "段落", H1: "一级标题", H2: "二级标题", H3: "三级标题", H4: "四级标题", H5: "五级标题", H6: "六级标题", "Ordered List": "有序列表", "Unordered List": "无序列表", Checklist: "任务列表", Quote: "引用", Code: "代码块", Delimiter: "分割线", Link: "链接", Bold: "加粗", Italic: "倾斜", Alert: "高亮块", indent: "缩进", Marker: "突出显示", Color: "文本颜色", Underline: "下划线", InlineCode: "行内代码", Table: "表格", Image: "图片" }, tools: { image: { "Couldn’t upload image. Please try another.": "上传图片失败,请稍后重试。" }, table: { "Add row above": "在下面插入行", "Add row below": "在下面插入行", "Delete row": "删除行", "Add column to left": "在左边插入列", "Add column to right": "在右边插入列", "Delete column": "删除列", "With headings": "使用标题行", "Without headings": "不使用标题行" }, marker: { Marker: "突出显示" }, link: { "Add a link": "添加链接", Save: "保存", "Pasted link is not valid.": "链接地址无效" }, List: { Unordered: "无序", Ordered: "有序", Checklist: "任务列表", "Counter type": "计数器类型", Numeric: "阿拉伯数字", "Lower Roman": "小写罗马数字", "Upper Roman": "大写罗马数字", "Lower Alpha": "小写字母", "Upper Alpha": "大写字母", "Start with": "从" }, paragraph: { "Enter something": "请输入内容" }, stub: { "The block can not be displayed correctly.": "该模块不能放置在这里" }, code: { "Enter your code": "输入代码", Copied: "已复制" }, convertTo: { "Convert to": "转化为" }, alert: { "alert-primary": "主要样式", "alert-secondary": "次要样式", "alert-info": "信息", "alert-success": "成功", "alert-warning": "警告", "alert-danger": "危险", "alert-light": "浅色", "alert-dark": "深色", "align-left": "左对齐", "align-center": "居中", "align-right": "右对齐" } }, blockTunes: { delete: { Delete: "删除", "Click to delete": "点击删除" }, moveUp: { "Move up": "向上移" }, moveDown: { "Move down": "向下移" }, filter: { Filter: "过滤" }, blockAlignment: { "left align": "左对齐", "center align": "居中对齐", "right align": "右对齐", "justify align": "两端对齐" }, indent: { "Indent right": "向右缩进", "Indent left": "向左缩进" } } } }, Dt = /* @__PURE__ */ ((h = []) => ({ version: "1.1.4", install: (t, e) => {
2975
+ const Ee = { messages: { ui: { blockTunes: { toggler: { "Click to tune": "可拖拽和点击" } }, toolbar: { toolbox: { Add: "添加", Filter: "过滤", "Nothing found": "无内容" }, popover: { Filter: "过滤", "Nothing found": "无内容" } }, popover: { Filter: "筛选", "Nothing found": "未找到任何内容", "Convert to": "转化为" } }, toolNames: { Text: "段落", H1: "一级标题", H2: "二级标题", H3: "三级标题", H4: "四级标题", H5: "五级标题", H6: "六级标题", "Ordered List": "有序列表", "Unordered List": "无序列表", Checklist: "任务列表", Quote: "引用", Code: "代码块", Delimiter: "分割线", Link: "链接", Bold: "加粗", Italic: "倾斜", Alert: "高亮块", indent: "缩进", Marker: "突出显示", Color: "文本颜色", Underline: "下划线", InlineCode: "行内代码", Table: "表格", Image: "图片" }, tools: { image: { "Couldn’t upload image. Please try another.": "上传图片失败,请稍后重试。" }, table: { "Add row above": "在下面插入行", "Add row below": "在下面插入行", "Delete row": "删除行", "Add column to left": "在左边插入列", "Add column to right": "在右边插入列", "Delete column": "删除列", "With headings": "使用标题行", "Without headings": "不使用标题行" }, marker: { Marker: "突出显示" }, link: { "Add a link": "添加链接", Save: "保存", "Pasted link is not valid.": "链接地址无效" }, List: { Unordered: "无序", Ordered: "有序", Checklist: "任务列表", "Counter type": "计数器类型", Numeric: "阿拉伯数字", "Lower Roman": "小写罗马数字", "Upper Roman": "大写罗马数字", "Lower Alpha": "小写字母", "Upper Alpha": "大写字母", "Start with": "从" }, paragraph: { "Enter something": "请输入内容" }, stub: { "The block can not be displayed correctly.": "该模块不能放置在这里" }, code: { "Enter your code": "输入代码", Copied: "已复制" }, convertTo: { "Convert to": "转化为" }, alert: { "alert-primary": "主要样式", "alert-secondary": "次要样式", "alert-info": "信息", "alert-success": "成功", "alert-warning": "警告", "alert-danger": "危险", "alert-light": "浅色", "alert-dark": "深色", "align-left": "左对齐", "align-center": "居中", "align-right": "右对齐" } }, blockTunes: { delete: { Delete: "删除", "Click to delete": "点击删除" }, moveUp: { "Move up": "向上移" }, moveDown: { "Move down": "向下移" }, filter: { Filter: "过滤" }, blockAlignment: { "left align": "左对齐", "center align": "居中对齐", "right align": "右对齐", "justify align": "两端对齐" }, indent: { "Indent right": "向右缩进", "Indent left": "向左缩进" } } } }, Dt = /* @__PURE__ */ ((h = []) => ({ version: "1.1.6", install: (t, e) => {
2977
2976
  t[dt] || (t[dt] = !0, h.forEach((i) => t.use(i)), e && t.provide("EblEditorSettings", e));
2978
2977
  } }))(Rt), Me = Dt.install, _e = Dt.version;
2979
2978
  export {