@newview/ui 1.1.13 → 1.1.14

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.
@@ -18181,6 +18181,20 @@ var ace$1 = { exports: {} };
18181
18181
  }, i3.isPending = function() {
18182
18182
  return n2;
18183
18183
  }, i3;
18184
+ }, t.supportsLookbehind = function() {
18185
+ try {
18186
+ new RegExp("(?<=.)");
18187
+ } catch (e2) {
18188
+ return false;
18189
+ }
18190
+ return true;
18191
+ }, t.supportsUnicodeFlag = function() {
18192
+ try {
18193
+ new RegExp("^.$", "u");
18194
+ } catch (e2) {
18195
+ return false;
18196
+ }
18197
+ return true;
18184
18198
  };
18185
18199
  }), ace.define("ace/lib/useragent", ["require", "exports", "module"], function(e, t, n) {
18186
18200
  t.OS = { LINUX: "LINUX", MAC: "MAC", WINDOWS: "WINDOWS" }, t.getOS = function() {
@@ -18595,7 +18609,7 @@ var ace$1 = { exports: {} };
18595
18609
  !u.basePath && !u.workerPath && !u.modePath && !u.themePath && !Object.keys(u.$moduleUrls).length && (console.error("Unable to infer path to ace from script src,", "use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes", "or with webpack use ace/webpack-resolver"), l = function() {
18596
18610
  });
18597
18611
  };
18598
- t.version = "1.23.1";
18612
+ t.version = "1.24.2";
18599
18613
  }), ace.define("ace/loader_build", ["require", "exports", "module", "ace/lib/fixoldbrowsers", "ace/config"], function(e, t, n) {
18600
18614
  function s(t2) {
18601
18615
  if (!i2 || !i2.document)
@@ -18917,30 +18931,18 @@ var ace$1 = { exports: {} };
18917
18931
  } };
18918
18932
  }), ace.define("ace/keyboard/textinput", ["require", "exports", "module", "ace/lib/event", "ace/config", "ace/lib/useragent", "ace/lib/dom", "ace/lib/lang", "ace/clipboard", "ace/lib/keys"], function(e, t, n) {
18919
18933
  var r2 = e("../lib/event"), i2 = e("../config").nls, s = e("../lib/useragent"), o = e("../lib/dom"), u = e("../lib/lang"), a = e("../clipboard"), f2 = s.isChrome < 18, l = s.isIE, c2 = s.isChrome > 63, h2 = 400, p = e("../lib/keys"), d = p.KEY_MODS, v = s.isIOS, m = v ? /\s/ : /\n/, g = s.isMobile, y = function(e2, t2) {
18920
- function P(e3) {
18921
- (!n2 || !n2.parentNode) && document.removeEventListener("selectionchange", P);
18922
- if (w)
18923
- return;
18924
- if (n2.selectionStart !== n2.selectionEnd)
18925
- return;
18926
- var r3 = n2.selectionStart - C, i3 = k - C;
18927
- r3 > 0 ? r3 = Math.max(r3 - i3, 1) : r3 === 0 && i3 && (r3 = -1);
18928
- var s2 = Math.abs(r3), o2 = r3 > 0 ? p.right : p.left;
18929
- for (var u2 = 0; u2 < s2; u2++)
18930
- t2.onCommandKey({}, 0, o2);
18931
- }
18932
- function $2() {
18934
+ function Q() {
18933
18935
  T2 = true, n2.blur(), n2.focus(), T2 = false;
18934
18936
  }
18935
- function K(e3) {
18936
- e3.keyCode == 27 && n2.value.length < n2.selectionStart && (w || (N2 = n2.value), C = k = -1, M()), J();
18937
+ function Y(e3) {
18938
+ e3.keyCode == 27 && n2.value.length < n2.selectionStart && (w || (N2 = n2.value), C = k = -1, H()), G();
18937
18939
  }
18938
- function G() {
18939
- clearTimeout(Q), Q = setTimeout(function() {
18940
+ function et() {
18941
+ clearTimeout(Z), Z = setTimeout(function() {
18940
18942
  S && (n2.style.cssText = S, S = ""), t2.renderer.$isMousePressed = false, t2.renderer.$keepTextAreaAtCursor && t2.renderer.$moveTextAreaToCursor();
18941
18943
  }, 0);
18942
18944
  }
18943
- function Z(e3, t3, n3) {
18945
+ function nt(e3, t3, n3) {
18944
18946
  var r3 = null, i3 = false;
18945
18947
  n3.addEventListener("keydown", function(e4) {
18946
18948
  r3 && clearTimeout(r3), i3 = true;
@@ -18981,7 +18983,7 @@ var ace$1 = { exports: {} };
18981
18983
  var f3 = t3.commands.findKeyCommand(u2, o2);
18982
18984
  f3 && t3.execCommand(f3);
18983
18985
  }
18984
- C = r4, k = s3, M("");
18986
+ C = r4, k = s3, H("");
18985
18987
  }
18986
18988
  };
18987
18989
  document.addEventListener("selectionchange", s2), t3.on("destroy", function() {
@@ -18992,52 +18994,60 @@ var ace$1 = { exports: {} };
18992
18994
  n2.className = "ace_text-input", n2.setAttribute("wrap", "off"), n2.setAttribute("autocorrect", "off"), n2.setAttribute("autocapitalize", "off"), n2.setAttribute("spellcheck", false), n2.style.opacity = "0", e2.insertBefore(n2, e2.firstChild);
18993
18995
  var y2 = false, b = false, w = false, E = false, S = "";
18994
18996
  g || (n2.style.fontSize = "1px");
18995
- var x = false, T2 = false, N2 = "", C = 0, k = 0, L = 0;
18997
+ var x = false, T2 = false, N2 = "", C = 0, k = 0, L = 0, A = Number.MAX_SAFE_INTEGER, O = Number.MIN_SAFE_INTEGER, M = 0;
18996
18998
  try {
18997
- var A = document.activeElement === n2;
18998
- } catch (O) {
18999
+ var _ = document.activeElement === n2;
19000
+ } catch (D) {
18999
19001
  }
19000
- this.setAriaOptions = function(e3) {
19002
+ this.setNumberOfExtraLines = function(e3) {
19003
+ A = Number.MAX_SAFE_INTEGER, O = Number.MIN_SAFE_INTEGER;
19004
+ if (e3 < 0) {
19005
+ M = 0;
19006
+ return;
19007
+ }
19008
+ M = e3;
19009
+ }, this.setAriaOptions = function(e3) {
19001
19010
  e3.activeDescendant ? (n2.setAttribute("aria-haspopup", "true"), n2.setAttribute("aria-autocomplete", e3.inline ? "both" : "list"), n2.setAttribute("aria-activedescendant", e3.activeDescendant)) : (n2.setAttribute("aria-haspopup", "false"), n2.setAttribute("aria-autocomplete", "both"), n2.removeAttribute("aria-activedescendant")), e3.role && n2.setAttribute("role", e3.role);
19002
- }, this.setAriaLabel = function() {
19003
- if (t2.session && t2.renderer.enableKeyboardAccessibility) {
19004
- var e3 = t2.session.selection.cursor.row;
19005
- n2.setAttribute("aria-roledescription", i2("editor")), n2.setAttribute("aria-label", i2("Cursor at row $0", [e3 + 1]));
19006
- } else
19007
- n2.removeAttribute("aria-roledescription"), n2.removeAttribute("aria-label");
19008
- }, this.setAriaOptions({ role: "textbox" }), this.setAriaLabel(), r2.addListener(n2, "blur", function(e3) {
19011
+ if (e3.setLabel) {
19012
+ n2.setAttribute("aria-roledescription", i2("editor"));
19013
+ if (t2.session) {
19014
+ var r3 = t2.session.selection.cursor.row;
19015
+ n2.setAttribute("aria-label", i2("Cursor at row $0", [r3 + 1]));
19016
+ }
19017
+ }
19018
+ }, this.setAriaOptions({ role: "textbox" }), r2.addListener(n2, "blur", function(e3) {
19009
19019
  if (T2)
19010
19020
  return;
19011
- t2.onBlur(e3), A = false, g && !v && document.removeEventListener("selectionchange", P);
19021
+ t2.onBlur(e3), _ = false;
19012
19022
  }, t2), r2.addListener(n2, "focus", function(e3) {
19013
19023
  if (T2)
19014
19024
  return;
19015
- A = true;
19025
+ _ = true;
19016
19026
  if (s.isEdge)
19017
19027
  try {
19018
19028
  if (!document.hasFocus())
19019
19029
  return;
19020
19030
  } catch (e4) {
19021
19031
  }
19022
- t2.onFocus(e3), s.isEdge ? setTimeout(M) : M(), g && !v && document.addEventListener("selectionchange", P);
19032
+ t2.onFocus(e3), s.isEdge ? setTimeout(H) : H();
19023
19033
  }, t2), this.$focusScroll = false, this.focus = function() {
19024
- this.setAriaLabel();
19034
+ this.setAriaOptions({ setLabel: t2.renderer.enableKeyboardAccessibility });
19025
19035
  if (S || c2 || this.$focusScroll == "browser")
19026
19036
  return n2.focus({ preventScroll: true });
19027
19037
  var e3 = n2.style.top;
19028
19038
  n2.style.position = "fixed", n2.style.top = "0px";
19029
19039
  try {
19030
- var t3 = n2.getBoundingClientRect().top != 0;
19031
- } catch (r3) {
19040
+ var r3 = n2.getBoundingClientRect().top != 0;
19041
+ } catch (i3) {
19032
19042
  return;
19033
19043
  }
19034
- var i3 = [];
19035
- if (t3) {
19036
- var s2 = n2.parentElement;
19037
- while (s2 && s2.nodeType == 1)
19038
- i3.push(s2), s2.setAttribute("ace_nocontext", true), !s2.parentElement && s2.getRootNode ? s2 = s2.getRootNode().host : s2 = s2.parentElement;
19044
+ var s2 = [];
19045
+ if (r3) {
19046
+ var o2 = n2.parentElement;
19047
+ while (o2 && o2.nodeType == 1)
19048
+ s2.push(o2), o2.setAttribute("ace_nocontext", true), !o2.parentElement && o2.getRootNode ? o2 = o2.getRootNode().host : o2 = o2.parentElement;
19039
19049
  }
19040
- n2.focus({ preventScroll: true }), t3 && i3.forEach(function(e4) {
19050
+ n2.focus({ preventScroll: true }), r3 && s2.forEach(function(e4) {
19041
19051
  e4.removeAttribute("ace_nocontext");
19042
19052
  }), setTimeout(function() {
19043
19053
  n2.style.position = "", n2.style.top == "0px" && (n2.style.top = e3);
@@ -19045,16 +19055,21 @@ var ace$1 = { exports: {} };
19045
19055
  }, this.blur = function() {
19046
19056
  n2.blur();
19047
19057
  }, this.isFocused = function() {
19048
- return A;
19058
+ return _;
19049
19059
  }, t2.on("beforeEndOperation", function() {
19050
19060
  var e3 = t2.curOp, r3 = e3 && e3.command && e3.command.name;
19051
19061
  if (r3 == "insertstring")
19052
19062
  return;
19053
19063
  var i3 = r3 && (e3.docChanged || e3.selectionChanged);
19054
- w && i3 && (N2 = n2.value = "", V()), M();
19064
+ w && i3 && (N2 = n2.value = "", K()), H();
19055
19065
  });
19056
- var M = v ? function(e3) {
19057
- if (!A || y2 && !e3 || E)
19066
+ var P = function(e3, n3) {
19067
+ var r3 = n3;
19068
+ for (var i3 = 1; i3 <= e3 - A && i3 < 2 * M + 1; i3++)
19069
+ r3 += t2.session.getLine(e3 - i3).length + 1;
19070
+ return r3;
19071
+ }, H = v ? function(e3) {
19072
+ if (!_ || y2 && !e3 || E)
19058
19073
  return;
19059
19074
  e3 || (e3 = "");
19060
19075
  var r3 = "\n ab" + e3 + "cde fg\n";
@@ -19064,49 +19079,59 @@ var ace$1 = { exports: {} };
19064
19079
  } : function() {
19065
19080
  if (w || E)
19066
19081
  return;
19067
- if (!A && !B)
19082
+ if (!_ && !I)
19068
19083
  return;
19069
19084
  w = true;
19070
19085
  var e3 = 0, r3 = 0, i3 = "";
19071
19086
  if (t2.session) {
19072
19087
  var s2 = t2.selection, o2 = s2.getRange(), u2 = s2.cursor.row;
19073
- e3 = o2.start.column, r3 = o2.end.column, i3 = t2.session.getLine(u2);
19074
- if (o2.start.row != u2) {
19075
- var a2 = t2.session.getLine(u2 - 1);
19076
- e3 = o2.start.row < u2 - 1 ? 0 : e3, r3 += a2.length + 1, i3 = a2 + "\n" + i3;
19077
- } else if (o2.end.row != u2) {
19078
- var f3 = t2.session.getLine(u2 + 1);
19079
- r3 = o2.end.row > u2 + 1 ? f3.length : r3, r3 += i3.length + 1, i3 = i3 + "\n" + f3;
19088
+ if (u2 === O + 1)
19089
+ A = O + 1, O = A + 2 * M;
19090
+ else if (u2 === A - 1)
19091
+ O = A - 1, A = O - 2 * M;
19092
+ else if (u2 < A - 1 || u2 > O + 1)
19093
+ A = u2 > M ? u2 - M : 0, O = u2 > M ? u2 + M : 2 * M;
19094
+ var a2 = [];
19095
+ for (var f3 = A; f3 <= O; f3++)
19096
+ a2.push(t2.session.getLine(f3));
19097
+ i3 = a2.join("\n"), e3 = P(o2.start.row, o2.start.column), r3 = P(o2.end.row, o2.end.column);
19098
+ if (o2.start.row < A) {
19099
+ var l2 = t2.session.getLine(A - 1);
19100
+ e3 = o2.start.row < A - 1 ? 0 : e3, r3 += l2.length + 1, i3 = l2 + "\n" + i3;
19101
+ } else if (o2.end.row > O) {
19102
+ var c3 = t2.session.getLine(O + 1);
19103
+ r3 = o2.end.row > O + 1 ? c3.length : o2.end.column, r3 += i3.length + 1, i3 = i3 + "\n" + c3;
19080
19104
  } else
19081
19105
  g && u2 > 0 && (i3 = "\n" + i3, r3 += 1, e3 += 1);
19082
19106
  i3.length > h2 && (e3 < h2 && r3 < h2 ? i3 = i3.slice(0, h2) : (i3 = "\n", e3 == r3 ? e3 = r3 = 0 : (e3 = 0, r3 = 1)));
19107
+ var p2 = i3 + "\n\n";
19108
+ p2 != N2 && (n2.value = N2 = p2, C = k = p2.length);
19083
19109
  }
19084
- var l2 = i3 + "\n\n";
19085
- l2 != N2 && (n2.value = N2 = l2, C = k = l2.length), B && (C = n2.selectionStart, k = n2.selectionEnd);
19110
+ I && (C = n2.selectionStart, k = n2.selectionEnd);
19086
19111
  if (k != r3 || C != e3 || n2.selectionEnd != k)
19087
19112
  try {
19088
19113
  n2.setSelectionRange(e3, r3), C = e3, k = r3;
19089
- } catch (c3) {
19114
+ } catch (d2) {
19090
19115
  }
19091
19116
  w = false;
19092
19117
  };
19093
- this.resetSelection = M, A && t2.onFocus();
19094
- var _ = function(e3) {
19118
+ this.resetSelection = H, _ && t2.onFocus();
19119
+ var B = function(e3) {
19095
19120
  return e3.selectionStart === 0 && e3.selectionEnd >= N2.length && e3.value === N2 && N2 && e3.selectionEnd !== k;
19096
- }, D = function(e3) {
19121
+ }, j2 = function(e3) {
19097
19122
  if (w)
19098
19123
  return;
19099
- y2 ? y2 = false : _(n2) ? (t2.selectAll(), M()) : g && n2.selectionStart != C && M();
19100
- }, H = null;
19124
+ y2 ? y2 = false : B(n2) ? (t2.selectAll(), H()) : g && n2.selectionStart != C && H();
19125
+ }, F = null;
19101
19126
  this.setInputHandler = function(e3) {
19102
- H = e3;
19127
+ F = e3;
19103
19128
  }, this.getInputHandler = function() {
19104
- return H;
19129
+ return F;
19105
19130
  };
19106
- var B = false, j2 = function(e3, r3) {
19107
- B && (B = false);
19131
+ var I = false, q2 = function(e3, r3) {
19132
+ I && (I = false);
19108
19133
  if (b)
19109
- return M(), e3 && t2.onPaste(e3), b = false, "";
19134
+ return H(), e3 && t2.onPaste(e3), b = false, "";
19110
19135
  var i3 = n2.selectionStart, o2 = n2.selectionEnd, u2 = C, a2 = N2.length - k, f3 = e3, l2 = e3.length - i3, c3 = e3.length - o2, h3 = 0;
19111
19136
  while (u2 > 0 && N2[h3] == e3[h3])
19112
19137
  h3++, u2--;
@@ -19121,18 +19146,18 @@ var ace$1 = { exports: {} };
19121
19146
  E = true;
19122
19147
  var d2 = false;
19123
19148
  return s.isAndroid && f3 == ". " && (f3 = " ", d2 = true), f3 && !u2 && !a2 && !l2 && !c3 || x ? t2.onTextInput(f3) : t2.onTextInput(f3, { extendLeft: u2, extendRight: a2, restoreStart: l2, restoreEnd: c3 }), E = false, N2 = e3, C = i3, k = o2, L = c3, d2 ? "\n" : f3;
19124
- }, F = function(e3) {
19149
+ }, R2 = function(e3) {
19125
19150
  if (w)
19126
- return X();
19151
+ return J();
19127
19152
  if (e3 && e3.inputType) {
19128
19153
  if (e3.inputType == "historyUndo")
19129
19154
  return t2.execCommand("undo");
19130
19155
  if (e3.inputType == "historyRedo")
19131
19156
  return t2.execCommand("redo");
19132
19157
  }
19133
- var r3 = n2.value, i3 = j2(r3, true);
19134
- (r3.length > h2 + 100 || m.test(i3) || g && C < 1 && C == k) && M();
19135
- }, I = function(e3, t3, n3) {
19158
+ var r3 = n2.value, i3 = q2(r3, true);
19159
+ (r3.length > h2 + 100 || m.test(i3) || g && C < 1 && C == k) && H();
19160
+ }, U = function(e3, t3, n3) {
19136
19161
  var r3 = e3.clipboardData || window.clipboardData;
19137
19162
  if (!r3 || f2)
19138
19163
  return;
@@ -19141,67 +19166,67 @@ var ace$1 = { exports: {} };
19141
19166
  return t3 ? r3.setData(i3, t3) !== false : r3.getData(i3);
19142
19167
  } catch (e4) {
19143
19168
  if (!n3)
19144
- return I(e4, t3, true);
19169
+ return U(e4, t3, true);
19145
19170
  }
19146
- }, q2 = function(e3, i3) {
19171
+ }, z = function(e3, i3) {
19147
19172
  var s2 = t2.getCopyText();
19148
19173
  if (!s2)
19149
19174
  return r2.preventDefault(e3);
19150
- I(e3, s2) ? (v && (M(s2), y2 = s2, setTimeout(function() {
19175
+ U(e3, s2) ? (v && (H(s2), y2 = s2, setTimeout(function() {
19151
19176
  y2 = false;
19152
19177
  }, 10)), i3 ? t2.onCut() : t2.onCopy(), r2.preventDefault(e3)) : (y2 = true, n2.value = s2, n2.select(), setTimeout(function() {
19153
- y2 = false, M(), i3 ? t2.onCut() : t2.onCopy();
19178
+ y2 = false, H(), i3 ? t2.onCut() : t2.onCopy();
19154
19179
  }));
19155
- }, R2 = function(e3) {
19156
- q2(e3, true);
19157
- }, U = function(e3) {
19158
- q2(e3, false);
19159
- }, z = function(e3) {
19160
- var i3 = I(e3);
19180
+ }, W = function(e3) {
19181
+ z(e3, true);
19182
+ }, X = function(e3) {
19183
+ z(e3, false);
19184
+ }, V = function(e3) {
19185
+ var i3 = U(e3);
19161
19186
  if (a.pasteCancelled())
19162
19187
  return;
19163
- typeof i3 == "string" ? (i3 && t2.onPaste(i3, e3), s.isIE && setTimeout(M), r2.preventDefault(e3)) : (n2.value = "", b = true);
19188
+ typeof i3 == "string" ? (i3 && t2.onPaste(i3, e3), s.isIE && setTimeout(H), r2.preventDefault(e3)) : (n2.value = "", b = true);
19164
19189
  };
19165
- r2.addCommandKeyListener(n2, t2.onCommandKey.bind(t2), t2), r2.addListener(n2, "select", D, t2), r2.addListener(n2, "input", F, t2), r2.addListener(n2, "cut", R2, t2), r2.addListener(n2, "copy", U, t2), r2.addListener(n2, "paste", z, t2), (!("oncut" in n2) || !("oncopy" in n2) || !("onpaste" in n2)) && r2.addListener(e2, "keydown", function(e3) {
19190
+ r2.addCommandKeyListener(n2, t2.onCommandKey.bind(t2), t2), r2.addListener(n2, "select", j2, t2), r2.addListener(n2, "input", R2, t2), r2.addListener(n2, "cut", W, t2), r2.addListener(n2, "copy", X, t2), r2.addListener(n2, "paste", V, t2), (!("oncut" in n2) || !("oncopy" in n2) || !("onpaste" in n2)) && r2.addListener(e2, "keydown", function(e3) {
19166
19191
  if (s.isMac && !e3.metaKey || !e3.ctrlKey)
19167
19192
  return;
19168
19193
  switch (e3.keyCode) {
19169
19194
  case 67:
19170
- U(e3);
19195
+ X(e3);
19171
19196
  break;
19172
19197
  case 86:
19173
- z(e3);
19198
+ V(e3);
19174
19199
  break;
19175
19200
  case 88:
19176
- R2(e3);
19201
+ W(e3);
19177
19202
  }
19178
19203
  }, t2);
19179
- var W = function(e3) {
19204
+ var $2 = function(e3) {
19180
19205
  if (w || !t2.onCompositionStart || t2.$readOnly)
19181
19206
  return;
19182
19207
  w = {};
19183
19208
  if (x)
19184
19209
  return;
19185
- e3.data && (w.useTextareaForIME = false), setTimeout(X, 0), t2._signal("compositionStart"), t2.on("mousedown", $2);
19210
+ e3.data && (w.useTextareaForIME = false), setTimeout(J, 0), t2._signal("compositionStart"), t2.on("mousedown", Q);
19186
19211
  var r3 = t2.getSelectionRange();
19187
19212
  r3.end.row = r3.start.row, r3.end.column = r3.start.column, w.markerRange = r3, w.selectionStart = C, t2.onCompositionStart(w), w.useTextareaForIME ? (N2 = n2.value = "", C = 0, k = 0) : (n2.msGetInputContext && (w.context = n2.msGetInputContext()), n2.getInputContext && (w.context = n2.getInputContext()));
19188
- }, X = function() {
19213
+ }, J = function() {
19189
19214
  if (!w || !t2.onCompositionUpdate || t2.$readOnly)
19190
19215
  return;
19191
19216
  if (x)
19192
- return $2();
19217
+ return Q();
19193
19218
  if (w.useTextareaForIME)
19194
19219
  t2.onCompositionUpdate(n2.value);
19195
19220
  else {
19196
19221
  var e3 = n2.value;
19197
- j2(e3), w.markerRange && (w.context && (w.markerRange.start.column = w.selectionStart = w.context.compositionStartOffset), w.markerRange.end.column = w.markerRange.start.column + k - w.selectionStart + L);
19222
+ q2(e3), w.markerRange && (w.context && (w.markerRange.start.column = w.selectionStart = w.context.compositionStartOffset), w.markerRange.end.column = w.markerRange.start.column + k - w.selectionStart + L);
19198
19223
  }
19199
- }, V = function(e3) {
19224
+ }, K = function(e3) {
19200
19225
  if (!t2.onCompositionEnd || t2.$readOnly)
19201
19226
  return;
19202
- w = false, t2.onCompositionEnd(), t2.off("mousedown", $2), e3 && F();
19203
- }, J = u.delayedCall(X, 50).schedule.bind(null, null);
19204
- r2.addListener(n2, "compositionstart", W, t2), r2.addListener(n2, "compositionupdate", X, t2), r2.addListener(n2, "keyup", K, t2), r2.addListener(n2, "keydown", J, t2), r2.addListener(n2, "compositionend", V, t2), this.getElement = function() {
19227
+ w = false, t2.onCompositionEnd(), t2.off("mousedown", Q), e3 && R2();
19228
+ }, G = u.delayedCall(J, 50).schedule.bind(null, null);
19229
+ r2.addListener(n2, "compositionstart", $2, t2), r2.addListener(n2, "compositionupdate", J, t2), r2.addListener(n2, "keyup", Y, t2), r2.addListener(n2, "keydown", G, t2), r2.addListener(n2, "compositionend", K, t2), this.getElement = function() {
19205
19230
  return n2;
19206
19231
  }, this.setCommandMode = function(e3) {
19207
19232
  x = e3, n2.readOnly = false;
@@ -19209,7 +19234,7 @@ var ace$1 = { exports: {} };
19209
19234
  x || (n2.readOnly = e3);
19210
19235
  }, this.setCopyWithEmptySelection = function(e3) {
19211
19236
  }, this.onContextMenu = function(e3) {
19212
- B = true, M(), t2._emit("nativecontextmenu", { target: t2, domEvent: e3 }), this.moveToMouse(e3, true);
19237
+ I = true, H(), t2._emit("nativecontextmenu", { target: t2, domEvent: e3 }), this.moveToMouse(e3, true);
19213
19238
  }, this.moveToMouse = function(e3, i3) {
19214
19239
  S || (S = n2.style.cssText), n2.style.cssText = (i3 ? "z-index:100000;" : "") + (s.isIE ? "opacity:0.1;" : "") + "text-indent: -" + (C + k) * t2.renderer.characterWidth * 0.5 + "px;";
19215
19240
  var u2 = t2.container.getBoundingClientRect(), a2 = o.computedStyle(t2.container), f3 = u2.top + (parseInt(a2.borderTopWidth) || 0), l2 = u2.left + (parseInt(u2.borderLeftWidth) || 0), c3 = u2.bottom - f3 - n2.clientHeight - 2, h3 = function(e4) {
@@ -19218,14 +19243,14 @@ var ace$1 = { exports: {} };
19218
19243
  h3(e3);
19219
19244
  if (e3.type != "mousedown")
19220
19245
  return;
19221
- t2.renderer.$isMousePressed = true, clearTimeout(Q), s.isWin && r2.capture(t2.container, h3, G);
19222
- }, this.onContextMenuClose = G;
19223
- var Q, Y = function(e3) {
19224
- t2.textInput.onContextMenu(e3), G();
19246
+ t2.renderer.$isMousePressed = true, clearTimeout(Z), s.isWin && r2.capture(t2.container, h3, et);
19247
+ }, this.onContextMenuClose = et;
19248
+ var Z, tt = function(e3) {
19249
+ t2.textInput.onContextMenu(e3), et();
19225
19250
  };
19226
- r2.addListener(n2, "mouseup", Y, t2), r2.addListener(n2, "mousedown", function(e3) {
19227
- e3.preventDefault(), G();
19228
- }, t2), r2.addListener(t2.renderer.scroller, "contextmenu", Y, t2), r2.addListener(n2, "contextmenu", Y, t2), v && Z(e2, t2, n2), this.destroy = function() {
19251
+ r2.addListener(n2, "mouseup", tt, t2), r2.addListener(n2, "mousedown", function(e3) {
19252
+ e3.preventDefault(), et();
19253
+ }, t2), r2.addListener(t2.renderer.scroller, "contextmenu", tt, t2), r2.addListener(n2, "contextmenu", tt, t2), v && nt(e2, t2, n2), this.destroy = function() {
19229
19254
  n2.parentElement && n2.parentElement.removeChild(n2);
19230
19255
  };
19231
19256
  };
@@ -19556,8 +19581,12 @@ var ace$1 = { exports: {} };
19556
19581
  if (e2.$tooltipFollowsMouse)
19557
19582
  c2(u2);
19558
19583
  else {
19559
- var l2 = n2.$lines.cells[i4].element.querySelector("[class*=ace_icon]"), h2 = l2.getBoundingClientRect(), p = r3.getElement().style;
19560
- p.left = h2.right + "px", p.top = h2.bottom + "px";
19584
+ var l2 = u2.getGutterRow(), h2 = n2.$lines.get(l2);
19585
+ if (h2) {
19586
+ var p = h2.element.querySelector(".ace_gutter_annotation"), d = p.getBoundingClientRect(), v = r3.getElement().style;
19587
+ v.left = d.right + "px", v.top = d.bottom + "px";
19588
+ } else
19589
+ c2(u2);
19561
19590
  }
19562
19591
  }
19563
19592
  function f3() {
@@ -19716,6 +19745,9 @@ var ace$1 = { exports: {} };
19716
19745
  this.stopPropagation(), this.preventDefault();
19717
19746
  }, e2.prototype.getDocumentPosition = function() {
19718
19747
  return this.$pos ? this.$pos : (this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY), this.$pos);
19748
+ }, e2.prototype.getGutterRow = function() {
19749
+ var e3 = this.getDocumentPosition().row, t2 = this.editor.session.documentToScreenRow(e3, 0), n2 = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);
19750
+ return t2 - n2;
19719
19751
  }, e2.prototype.inSelection = function() {
19720
19752
  if (this.$inSelection !== null)
19721
19753
  return this.$inSelection;
@@ -20408,129 +20440,129 @@ var ace$1 = { exports: {} };
20408
20440
  }();
20409
20441
  t.BidiHandler = o;
20410
20442
  }), ace.define("ace/selection", ["require", "exports", "module", "ace/lib/oop", "ace/lib/lang", "ace/lib/event_emitter", "ace/range"], function(e, t, n) {
20411
- var r2 = e("./lib/oop"), i2 = e("./lib/lang"), s = e("./lib/event_emitter").EventEmitter, o = e("./range").Range, u = function(e2) {
20412
- this.session = e2, this.doc = e2.getDocument(), this.clearSelection(), this.cursor = this.lead = this.doc.createAnchor(0, 0), this.anchor = this.doc.createAnchor(0, 0), this.$silent = false;
20413
- var t2 = this;
20414
- this.cursor.on("change", function(e3) {
20415
- t2.$cursorChanged = true, t2.$silent || t2._emit("changeCursor"), !t2.$isEmpty && !t2.$silent && t2._emit("changeSelection"), !t2.$keepDesiredColumnOnChange && e3.old.column != e3.value.column && (t2.$desiredColumn = null);
20416
- }), this.anchor.on("change", function() {
20417
- t2.$anchorChanged = true, !t2.$isEmpty && !t2.$silent && t2._emit("changeSelection");
20418
- });
20419
- };
20420
- (function() {
20421
- r2.implement(this, s), this.isEmpty = function() {
20443
+ var r2 = e("./lib/oop"), i2 = e("./lib/lang"), s = e("./lib/event_emitter").EventEmitter, o = e("./range").Range, u = function() {
20444
+ function e2(e3) {
20445
+ this.session = e3, this.doc = e3.getDocument(), this.clearSelection(), this.cursor = this.lead = this.doc.createAnchor(0, 0), this.anchor = this.doc.createAnchor(0, 0), this.$silent = false;
20446
+ var t2 = this;
20447
+ this.cursor.on("change", function(e4) {
20448
+ t2.$cursorChanged = true, t2.$silent || t2._emit("changeCursor"), !t2.$isEmpty && !t2.$silent && t2._emit("changeSelection"), !t2.$keepDesiredColumnOnChange && e4.old.column != e4.value.column && (t2.$desiredColumn = null);
20449
+ }), this.anchor.on("change", function() {
20450
+ t2.$anchorChanged = true, !t2.$isEmpty && !t2.$silent && t2._emit("changeSelection");
20451
+ });
20452
+ }
20453
+ return e2.prototype.isEmpty = function() {
20422
20454
  return this.$isEmpty || this.anchor.row == this.lead.row && this.anchor.column == this.lead.column;
20423
- }, this.isMultiLine = function() {
20455
+ }, e2.prototype.isMultiLine = function() {
20424
20456
  return !this.$isEmpty && this.anchor.row != this.cursor.row;
20425
- }, this.getCursor = function() {
20457
+ }, e2.prototype.getCursor = function() {
20426
20458
  return this.lead.getPosition();
20427
- }, this.setAnchor = function(e2, t2) {
20428
- this.$isEmpty = false, this.anchor.setPosition(e2, t2);
20429
- }, this.setSelectionAnchor = this.setAnchor, this.getAnchor = function() {
20459
+ }, e2.prototype.setAnchor = function(e3, t2) {
20460
+ this.$isEmpty = false, this.anchor.setPosition(e3, t2);
20461
+ }, e2.prototype.getAnchor = function() {
20430
20462
  return this.$isEmpty ? this.getSelectionLead() : this.anchor.getPosition();
20431
- }, this.getSelectionAnchor = this.getAnchor, this.getSelectionLead = function() {
20463
+ }, e2.prototype.getSelectionLead = function() {
20432
20464
  return this.lead.getPosition();
20433
- }, this.isBackwards = function() {
20434
- var e2 = this.anchor, t2 = this.lead;
20435
- return e2.row > t2.row || e2.row == t2.row && e2.column > t2.column;
20436
- }, this.getRange = function() {
20437
- var e2 = this.anchor, t2 = this.lead;
20438
- return this.$isEmpty ? o.fromPoints(t2, t2) : this.isBackwards() ? o.fromPoints(t2, e2) : o.fromPoints(e2, t2);
20439
- }, this.clearSelection = function() {
20465
+ }, e2.prototype.isBackwards = function() {
20466
+ var e3 = this.anchor, t2 = this.lead;
20467
+ return e3.row > t2.row || e3.row == t2.row && e3.column > t2.column;
20468
+ }, e2.prototype.getRange = function() {
20469
+ var e3 = this.anchor, t2 = this.lead;
20470
+ return this.$isEmpty ? o.fromPoints(t2, t2) : this.isBackwards() ? o.fromPoints(t2, e3) : o.fromPoints(e3, t2);
20471
+ }, e2.prototype.clearSelection = function() {
20440
20472
  this.$isEmpty || (this.$isEmpty = true, this._emit("changeSelection"));
20441
- }, this.selectAll = function() {
20473
+ }, e2.prototype.selectAll = function() {
20442
20474
  this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);
20443
- }, this.setRange = this.setSelectionRange = function(e2, t2) {
20444
- var n2 = t2 ? e2.end : e2.start, r3 = t2 ? e2.start : e2.end;
20475
+ }, e2.prototype.setRange = function(e3, t2) {
20476
+ var n2 = t2 ? e3.end : e3.start, r3 = t2 ? e3.start : e3.end;
20445
20477
  this.$setSelection(n2.row, n2.column, r3.row, r3.column);
20446
- }, this.$setSelection = function(e2, t2, n2, r3) {
20478
+ }, e2.prototype.$setSelection = function(e3, t2, n2, r3) {
20447
20479
  if (this.$silent)
20448
20480
  return;
20449
20481
  var i3 = this.$isEmpty, s2 = this.inMultiSelectMode;
20450
- this.$silent = true, this.$cursorChanged = this.$anchorChanged = false, this.anchor.setPosition(e2, t2), this.cursor.setPosition(n2, r3), this.$isEmpty = !o.comparePoints(this.anchor, this.cursor), this.$silent = false, this.$cursorChanged && this._emit("changeCursor"), (this.$cursorChanged || this.$anchorChanged || i3 != this.$isEmpty || s2) && this._emit("changeSelection");
20451
- }, this.$moveSelection = function(e2) {
20482
+ this.$silent = true, this.$cursorChanged = this.$anchorChanged = false, this.anchor.setPosition(e3, t2), this.cursor.setPosition(n2, r3), this.$isEmpty = !o.comparePoints(this.anchor, this.cursor), this.$silent = false, this.$cursorChanged && this._emit("changeCursor"), (this.$cursorChanged || this.$anchorChanged || i3 != this.$isEmpty || s2) && this._emit("changeSelection");
20483
+ }, e2.prototype.$moveSelection = function(e3) {
20452
20484
  var t2 = this.lead;
20453
- this.$isEmpty && this.setSelectionAnchor(t2.row, t2.column), e2.call(this);
20454
- }, this.selectTo = function(e2, t2) {
20485
+ this.$isEmpty && this.setSelectionAnchor(t2.row, t2.column), e3.call(this);
20486
+ }, e2.prototype.selectTo = function(e3, t2) {
20455
20487
  this.$moveSelection(function() {
20456
- this.moveCursorTo(e2, t2);
20488
+ this.moveCursorTo(e3, t2);
20457
20489
  });
20458
- }, this.selectToPosition = function(e2) {
20490
+ }, e2.prototype.selectToPosition = function(e3) {
20459
20491
  this.$moveSelection(function() {
20460
- this.moveCursorToPosition(e2);
20492
+ this.moveCursorToPosition(e3);
20461
20493
  });
20462
- }, this.moveTo = function(e2, t2) {
20463
- this.clearSelection(), this.moveCursorTo(e2, t2);
20464
- }, this.moveToPosition = function(e2) {
20465
- this.clearSelection(), this.moveCursorToPosition(e2);
20466
- }, this.selectUp = function() {
20494
+ }, e2.prototype.moveTo = function(e3, t2) {
20495
+ this.clearSelection(), this.moveCursorTo(e3, t2);
20496
+ }, e2.prototype.moveToPosition = function(e3) {
20497
+ this.clearSelection(), this.moveCursorToPosition(e3);
20498
+ }, e2.prototype.selectUp = function() {
20467
20499
  this.$moveSelection(this.moveCursorUp);
20468
- }, this.selectDown = function() {
20500
+ }, e2.prototype.selectDown = function() {
20469
20501
  this.$moveSelection(this.moveCursorDown);
20470
- }, this.selectRight = function() {
20502
+ }, e2.prototype.selectRight = function() {
20471
20503
  this.$moveSelection(this.moveCursorRight);
20472
- }, this.selectLeft = function() {
20504
+ }, e2.prototype.selectLeft = function() {
20473
20505
  this.$moveSelection(this.moveCursorLeft);
20474
- }, this.selectLineStart = function() {
20506
+ }, e2.prototype.selectLineStart = function() {
20475
20507
  this.$moveSelection(this.moveCursorLineStart);
20476
- }, this.selectLineEnd = function() {
20508
+ }, e2.prototype.selectLineEnd = function() {
20477
20509
  this.$moveSelection(this.moveCursorLineEnd);
20478
- }, this.selectFileEnd = function() {
20510
+ }, e2.prototype.selectFileEnd = function() {
20479
20511
  this.$moveSelection(this.moveCursorFileEnd);
20480
- }, this.selectFileStart = function() {
20512
+ }, e2.prototype.selectFileStart = function() {
20481
20513
  this.$moveSelection(this.moveCursorFileStart);
20482
- }, this.selectWordRight = function() {
20514
+ }, e2.prototype.selectWordRight = function() {
20483
20515
  this.$moveSelection(this.moveCursorWordRight);
20484
- }, this.selectWordLeft = function() {
20516
+ }, e2.prototype.selectWordLeft = function() {
20485
20517
  this.$moveSelection(this.moveCursorWordLeft);
20486
- }, this.getWordRange = function(e2, t2) {
20518
+ }, e2.prototype.getWordRange = function(e3, t2) {
20487
20519
  if (typeof t2 == "undefined") {
20488
- var n2 = e2 || this.lead;
20489
- e2 = n2.row, t2 = n2.column;
20520
+ var n2 = e3 || this.lead;
20521
+ e3 = n2.row, t2 = n2.column;
20490
20522
  }
20491
- return this.session.getWordRange(e2, t2);
20492
- }, this.selectWord = function() {
20523
+ return this.session.getWordRange(e3, t2);
20524
+ }, e2.prototype.selectWord = function() {
20493
20525
  this.setSelectionRange(this.getWordRange());
20494
- }, this.selectAWord = function() {
20495
- var e2 = this.getCursor(), t2 = this.session.getAWordRange(e2.row, e2.column);
20526
+ }, e2.prototype.selectAWord = function() {
20527
+ var e3 = this.getCursor(), t2 = this.session.getAWordRange(e3.row, e3.column);
20496
20528
  this.setSelectionRange(t2);
20497
- }, this.getLineRange = function(e2, t2) {
20498
- var n2 = typeof e2 == "number" ? e2 : this.lead.row, r3, i3 = this.session.getFoldLine(n2);
20529
+ }, e2.prototype.getLineRange = function(e3, t2) {
20530
+ var n2 = typeof e3 == "number" ? e3 : this.lead.row, r3, i3 = this.session.getFoldLine(n2);
20499
20531
  return i3 ? (n2 = i3.start.row, r3 = i3.end.row) : r3 = n2, t2 === true ? new o(n2, 0, r3, this.session.getLine(r3).length) : new o(n2, 0, r3 + 1, 0);
20500
- }, this.selectLine = function() {
20532
+ }, e2.prototype.selectLine = function() {
20501
20533
  this.setSelectionRange(this.getLineRange());
20502
- }, this.moveCursorUp = function() {
20534
+ }, e2.prototype.moveCursorUp = function() {
20503
20535
  this.moveCursorBy(-1, 0);
20504
- }, this.moveCursorDown = function() {
20536
+ }, e2.prototype.moveCursorDown = function() {
20505
20537
  this.moveCursorBy(1, 0);
20506
- }, this.wouldMoveIntoSoftTab = function(e2, t2, n2) {
20507
- var r3 = e2.column, i3 = e2.column + t2;
20508
- return n2 < 0 && (r3 = e2.column - t2, i3 = e2.column), this.session.isTabStop(e2) && this.doc.getLine(e2.row).slice(r3, i3).split(" ").length - 1 == t2;
20509
- }, this.moveCursorLeft = function() {
20510
- var e2 = this.lead.getPosition(), t2;
20511
- if (t2 = this.session.getFoldAt(e2.row, e2.column, -1))
20538
+ }, e2.prototype.wouldMoveIntoSoftTab = function(e3, t2, n2) {
20539
+ var r3 = e3.column, i3 = e3.column + t2;
20540
+ return n2 < 0 && (r3 = e3.column - t2, i3 = e3.column), this.session.isTabStop(e3) && this.doc.getLine(e3.row).slice(r3, i3).split(" ").length - 1 == t2;
20541
+ }, e2.prototype.moveCursorLeft = function() {
20542
+ var e3 = this.lead.getPosition(), t2;
20543
+ if (t2 = this.session.getFoldAt(e3.row, e3.column, -1))
20512
20544
  this.moveCursorTo(t2.start.row, t2.start.column);
20513
- else if (e2.column === 0)
20514
- e2.row > 0 && this.moveCursorTo(e2.row - 1, this.doc.getLine(e2.row - 1).length);
20545
+ else if (e3.column === 0)
20546
+ e3.row > 0 && this.moveCursorTo(e3.row - 1, this.doc.getLine(e3.row - 1).length);
20515
20547
  else {
20516
20548
  var n2 = this.session.getTabSize();
20517
- this.wouldMoveIntoSoftTab(e2, n2, -1) && !this.session.getNavigateWithinSoftTabs() ? this.moveCursorBy(0, -n2) : this.moveCursorBy(0, -1);
20549
+ this.wouldMoveIntoSoftTab(e3, n2, -1) && !this.session.getNavigateWithinSoftTabs() ? this.moveCursorBy(0, -n2) : this.moveCursorBy(0, -1);
20518
20550
  }
20519
- }, this.moveCursorRight = function() {
20520
- var e2 = this.lead.getPosition(), t2;
20521
- if (t2 = this.session.getFoldAt(e2.row, e2.column, 1))
20551
+ }, e2.prototype.moveCursorRight = function() {
20552
+ var e3 = this.lead.getPosition(), t2;
20553
+ if (t2 = this.session.getFoldAt(e3.row, e3.column, 1))
20522
20554
  this.moveCursorTo(t2.end.row, t2.end.column);
20523
20555
  else if (this.lead.column == this.doc.getLine(this.lead.row).length)
20524
20556
  this.lead.row < this.doc.getLength() - 1 && this.moveCursorTo(this.lead.row + 1, 0);
20525
20557
  else {
20526
- var n2 = this.session.getTabSize(), e2 = this.lead;
20527
- this.wouldMoveIntoSoftTab(e2, n2, 1) && !this.session.getNavigateWithinSoftTabs() ? this.moveCursorBy(0, n2) : this.moveCursorBy(0, 1);
20558
+ var n2 = this.session.getTabSize(), e3 = this.lead;
20559
+ this.wouldMoveIntoSoftTab(e3, n2, 1) && !this.session.getNavigateWithinSoftTabs() ? this.moveCursorBy(0, n2) : this.moveCursorBy(0, 1);
20528
20560
  }
20529
- }, this.moveCursorLineStart = function() {
20530
- var e2 = this.lead.row, t2 = this.lead.column, n2 = this.session.documentToScreenRow(e2, t2), r3 = this.session.screenToDocumentPosition(n2, 0), i3 = this.session.getDisplayLine(e2, null, r3.row, r3.column), s2 = i3.match(/^\s*/);
20561
+ }, e2.prototype.moveCursorLineStart = function() {
20562
+ var e3 = this.lead.row, t2 = this.lead.column, n2 = this.session.documentToScreenRow(e3, t2), r3 = this.session.screenToDocumentPosition(n2, 0), i3 = this.session.getDisplayLine(e3, null, r3.row, r3.column), s2 = i3.match(/^\s*/);
20531
20563
  s2[0].length != t2 && !this.session.$useEmacsStyleLineStart && (r3.column += s2[0].length), this.moveCursorToPosition(r3);
20532
- }, this.moveCursorLineEnd = function() {
20533
- var e2 = this.lead, t2 = this.session.getDocumentLastRowColumnPosition(e2.row, e2.column);
20564
+ }, e2.prototype.moveCursorLineEnd = function() {
20565
+ var e3 = this.lead, t2 = this.session.getDocumentLastRowColumnPosition(e3.row, e3.column);
20534
20566
  if (this.lead.column == t2.column) {
20535
20567
  var n2 = this.session.getLine(t2.row);
20536
20568
  if (t2.column == n2.length) {
@@ -20539,58 +20571,58 @@ var ace$1 = { exports: {} };
20539
20571
  }
20540
20572
  }
20541
20573
  this.moveCursorTo(t2.row, t2.column);
20542
- }, this.moveCursorFileEnd = function() {
20543
- var e2 = this.doc.getLength() - 1, t2 = this.doc.getLine(e2).length;
20544
- this.moveCursorTo(e2, t2);
20545
- }, this.moveCursorFileStart = function() {
20574
+ }, e2.prototype.moveCursorFileEnd = function() {
20575
+ var e3 = this.doc.getLength() - 1, t2 = this.doc.getLine(e3).length;
20576
+ this.moveCursorTo(e3, t2);
20577
+ }, e2.prototype.moveCursorFileStart = function() {
20546
20578
  this.moveCursorTo(0, 0);
20547
- }, this.moveCursorLongWordRight = function() {
20548
- var e2 = this.lead.row, t2 = this.lead.column, n2 = this.doc.getLine(e2), r3 = n2.substring(t2);
20579
+ }, e2.prototype.moveCursorLongWordRight = function() {
20580
+ var e3 = this.lead.row, t2 = this.lead.column, n2 = this.doc.getLine(e3), r3 = n2.substring(t2);
20549
20581
  this.session.nonTokenRe.lastIndex = 0, this.session.tokenRe.lastIndex = 0;
20550
- var i3 = this.session.getFoldAt(e2, t2, 1);
20582
+ var i3 = this.session.getFoldAt(e3, t2, 1);
20551
20583
  if (i3) {
20552
20584
  this.moveCursorTo(i3.end.row, i3.end.column);
20553
20585
  return;
20554
20586
  }
20555
20587
  this.session.nonTokenRe.exec(r3) && (t2 += this.session.nonTokenRe.lastIndex, this.session.nonTokenRe.lastIndex = 0, r3 = n2.substring(t2));
20556
20588
  if (t2 >= n2.length) {
20557
- this.moveCursorTo(e2, n2.length), this.moveCursorRight(), e2 < this.doc.getLength() - 1 && this.moveCursorWordRight();
20589
+ this.moveCursorTo(e3, n2.length), this.moveCursorRight(), e3 < this.doc.getLength() - 1 && this.moveCursorWordRight();
20558
20590
  return;
20559
20591
  }
20560
- this.session.tokenRe.exec(r3) && (t2 += this.session.tokenRe.lastIndex, this.session.tokenRe.lastIndex = 0), this.moveCursorTo(e2, t2);
20561
- }, this.moveCursorLongWordLeft = function() {
20562
- var e2 = this.lead.row, t2 = this.lead.column, n2;
20563
- if (n2 = this.session.getFoldAt(e2, t2, -1)) {
20592
+ this.session.tokenRe.exec(r3) && (t2 += this.session.tokenRe.lastIndex, this.session.tokenRe.lastIndex = 0), this.moveCursorTo(e3, t2);
20593
+ }, e2.prototype.moveCursorLongWordLeft = function() {
20594
+ var e3 = this.lead.row, t2 = this.lead.column, n2;
20595
+ if (n2 = this.session.getFoldAt(e3, t2, -1)) {
20564
20596
  this.moveCursorTo(n2.start.row, n2.start.column);
20565
20597
  return;
20566
20598
  }
20567
- var r3 = this.session.getFoldStringAt(e2, t2, -1);
20568
- r3 == null && (r3 = this.doc.getLine(e2).substring(0, t2));
20599
+ var r3 = this.session.getFoldStringAt(e3, t2, -1);
20600
+ r3 == null && (r3 = this.doc.getLine(e3).substring(0, t2));
20569
20601
  var s2 = i2.stringReverse(r3);
20570
20602
  this.session.nonTokenRe.lastIndex = 0, this.session.tokenRe.lastIndex = 0, this.session.nonTokenRe.exec(s2) && (t2 -= this.session.nonTokenRe.lastIndex, s2 = s2.slice(this.session.nonTokenRe.lastIndex), this.session.nonTokenRe.lastIndex = 0);
20571
20603
  if (t2 <= 0) {
20572
- this.moveCursorTo(e2, 0), this.moveCursorLeft(), e2 > 0 && this.moveCursorWordLeft();
20604
+ this.moveCursorTo(e3, 0), this.moveCursorLeft(), e3 > 0 && this.moveCursorWordLeft();
20573
20605
  return;
20574
20606
  }
20575
- this.session.tokenRe.exec(s2) && (t2 -= this.session.tokenRe.lastIndex, this.session.tokenRe.lastIndex = 0), this.moveCursorTo(e2, t2);
20576
- }, this.$shortWordEndIndex = function(e2) {
20607
+ this.session.tokenRe.exec(s2) && (t2 -= this.session.tokenRe.lastIndex, this.session.tokenRe.lastIndex = 0), this.moveCursorTo(e3, t2);
20608
+ }, e2.prototype.$shortWordEndIndex = function(e3) {
20577
20609
  var t2 = 0, n2, r3 = /\s/, i3 = this.session.tokenRe;
20578
20610
  i3.lastIndex = 0;
20579
- if (this.session.tokenRe.exec(e2))
20611
+ if (this.session.tokenRe.exec(e3))
20580
20612
  t2 = this.session.tokenRe.lastIndex;
20581
20613
  else {
20582
- while ((n2 = e2[t2]) && r3.test(n2))
20614
+ while ((n2 = e3[t2]) && r3.test(n2))
20583
20615
  t2++;
20584
20616
  if (t2 < 1) {
20585
20617
  i3.lastIndex = 0;
20586
- while ((n2 = e2[t2]) && !i3.test(n2)) {
20618
+ while ((n2 = e3[t2]) && !i3.test(n2)) {
20587
20619
  i3.lastIndex = 0, t2++;
20588
20620
  if (r3.test(n2)) {
20589
20621
  if (t2 > 2) {
20590
20622
  t2--;
20591
20623
  break;
20592
20624
  }
20593
- while ((n2 = e2[t2]) && r3.test(n2))
20625
+ while ((n2 = e3[t2]) && r3.test(n2))
20594
20626
  t2++;
20595
20627
  if (t2 > 2)
20596
20628
  break;
@@ -20599,66 +20631,66 @@ var ace$1 = { exports: {} };
20599
20631
  }
20600
20632
  }
20601
20633
  return i3.lastIndex = 0, t2;
20602
- }, this.moveCursorShortWordRight = function() {
20603
- var e2 = this.lead.row, t2 = this.lead.column, n2 = this.doc.getLine(e2), r3 = n2.substring(t2), i3 = this.session.getFoldAt(e2, t2, 1);
20634
+ }, e2.prototype.moveCursorShortWordRight = function() {
20635
+ var e3 = this.lead.row, t2 = this.lead.column, n2 = this.doc.getLine(e3), r3 = n2.substring(t2), i3 = this.session.getFoldAt(e3, t2, 1);
20604
20636
  if (i3)
20605
20637
  return this.moveCursorTo(i3.end.row, i3.end.column);
20606
20638
  if (t2 == n2.length) {
20607
20639
  var s2 = this.doc.getLength();
20608
20640
  do
20609
- e2++, r3 = this.doc.getLine(e2);
20610
- while (e2 < s2 && /^\s*$/.test(r3));
20641
+ e3++, r3 = this.doc.getLine(e3);
20642
+ while (e3 < s2 && /^\s*$/.test(r3));
20611
20643
  /^\s+/.test(r3) || (r3 = ""), t2 = 0;
20612
20644
  }
20613
20645
  var o2 = this.$shortWordEndIndex(r3);
20614
- this.moveCursorTo(e2, t2 + o2);
20615
- }, this.moveCursorShortWordLeft = function() {
20616
- var e2 = this.lead.row, t2 = this.lead.column, n2;
20617
- if (n2 = this.session.getFoldAt(e2, t2, -1))
20646
+ this.moveCursorTo(e3, t2 + o2);
20647
+ }, e2.prototype.moveCursorShortWordLeft = function() {
20648
+ var e3 = this.lead.row, t2 = this.lead.column, n2;
20649
+ if (n2 = this.session.getFoldAt(e3, t2, -1))
20618
20650
  return this.moveCursorTo(n2.start.row, n2.start.column);
20619
- var r3 = this.session.getLine(e2).substring(0, t2);
20651
+ var r3 = this.session.getLine(e3).substring(0, t2);
20620
20652
  if (t2 === 0) {
20621
20653
  do
20622
- e2--, r3 = this.doc.getLine(e2);
20623
- while (e2 > 0 && /^\s*$/.test(r3));
20654
+ e3--, r3 = this.doc.getLine(e3);
20655
+ while (e3 > 0 && /^\s*$/.test(r3));
20624
20656
  t2 = r3.length, /\s+$/.test(r3) || (r3 = "");
20625
20657
  }
20626
20658
  var s2 = i2.stringReverse(r3), o2 = this.$shortWordEndIndex(s2);
20627
- return this.moveCursorTo(e2, t2 - o2);
20628
- }, this.moveCursorWordRight = function() {
20659
+ return this.moveCursorTo(e3, t2 - o2);
20660
+ }, e2.prototype.moveCursorWordRight = function() {
20629
20661
  this.session.$selectLongWords ? this.moveCursorLongWordRight() : this.moveCursorShortWordRight();
20630
- }, this.moveCursorWordLeft = function() {
20662
+ }, e2.prototype.moveCursorWordLeft = function() {
20631
20663
  this.session.$selectLongWords ? this.moveCursorLongWordLeft() : this.moveCursorShortWordLeft();
20632
- }, this.moveCursorBy = function(e2, t2) {
20664
+ }, e2.prototype.moveCursorBy = function(e3, t2) {
20633
20665
  var n2 = this.session.documentToScreenPosition(this.lead.row, this.lead.column), r3;
20634
- t2 === 0 && (e2 !== 0 && (this.session.$bidiHandler.isBidiRow(n2.row, this.lead.row) ? (r3 = this.session.$bidiHandler.getPosLeft(n2.column), n2.column = Math.round(r3 / this.session.$bidiHandler.charWidths[0])) : r3 = n2.column * this.session.$bidiHandler.charWidths[0]), this.$desiredColumn ? n2.column = this.$desiredColumn : this.$desiredColumn = n2.column);
20635
- if (e2 != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {
20666
+ t2 === 0 && (e3 !== 0 && (this.session.$bidiHandler.isBidiRow(n2.row, this.lead.row) ? (r3 = this.session.$bidiHandler.getPosLeft(n2.column), n2.column = Math.round(r3 / this.session.$bidiHandler.charWidths[0])) : r3 = n2.column * this.session.$bidiHandler.charWidths[0]), this.$desiredColumn ? n2.column = this.$desiredColumn : this.$desiredColumn = n2.column);
20667
+ if (e3 != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {
20636
20668
  var i3 = this.session.lineWidgets[this.lead.row];
20637
- e2 < 0 ? e2 -= i3.rowsAbove || 0 : e2 > 0 && (e2 += i3.rowCount - (i3.rowsAbove || 0));
20638
- }
20639
- var s2 = this.session.screenToDocumentPosition(n2.row + e2, n2.column, r3);
20640
- e2 !== 0 && t2 === 0 && s2.row === this.lead.row && s2.column === this.lead.column, this.moveCursorTo(s2.row, s2.column + t2, t2 === 0);
20641
- }, this.moveCursorToPosition = function(e2) {
20642
- this.moveCursorTo(e2.row, e2.column);
20643
- }, this.moveCursorTo = function(e2, t2, n2) {
20644
- var r3 = this.session.getFoldAt(e2, t2, 1);
20645
- r3 && (e2 = r3.start.row, t2 = r3.start.column), this.$keepDesiredColumnOnChange = true;
20646
- var i3 = this.session.getLine(e2);
20647
- /[\uDC00-\uDFFF]/.test(i3.charAt(t2)) && i3.charAt(t2 - 1) && (this.lead.row == e2 && this.lead.column == t2 + 1 ? t2 -= 1 : t2 += 1), this.lead.setPosition(e2, t2), this.$keepDesiredColumnOnChange = false, n2 || (this.$desiredColumn = null);
20648
- }, this.moveCursorToScreen = function(e2, t2, n2) {
20649
- var r3 = this.session.screenToDocumentPosition(e2, t2);
20669
+ e3 < 0 ? e3 -= i3.rowsAbove || 0 : e3 > 0 && (e3 += i3.rowCount - (i3.rowsAbove || 0));
20670
+ }
20671
+ var s2 = this.session.screenToDocumentPosition(n2.row + e3, n2.column, r3);
20672
+ e3 !== 0 && t2 === 0 && s2.row === this.lead.row && s2.column === this.lead.column, this.moveCursorTo(s2.row, s2.column + t2, t2 === 0);
20673
+ }, e2.prototype.moveCursorToPosition = function(e3) {
20674
+ this.moveCursorTo(e3.row, e3.column);
20675
+ }, e2.prototype.moveCursorTo = function(e3, t2, n2) {
20676
+ var r3 = this.session.getFoldAt(e3, t2, 1);
20677
+ r3 && (e3 = r3.start.row, t2 = r3.start.column), this.$keepDesiredColumnOnChange = true;
20678
+ var i3 = this.session.getLine(e3);
20679
+ /[\uDC00-\uDFFF]/.test(i3.charAt(t2)) && i3.charAt(t2 - 1) && (this.lead.row == e3 && this.lead.column == t2 + 1 ? t2 -= 1 : t2 += 1), this.lead.setPosition(e3, t2), this.$keepDesiredColumnOnChange = false, n2 || (this.$desiredColumn = null);
20680
+ }, e2.prototype.moveCursorToScreen = function(e3, t2, n2) {
20681
+ var r3 = this.session.screenToDocumentPosition(e3, t2);
20650
20682
  this.moveCursorTo(r3.row, r3.column, n2);
20651
- }, this.detach = function() {
20683
+ }, e2.prototype.detach = function() {
20652
20684
  this.lead.detach(), this.anchor.detach();
20653
- }, this.fromOrientedRange = function(e2) {
20654
- this.setSelectionRange(e2, e2.cursor == e2.start), this.$desiredColumn = e2.desiredColumn || this.$desiredColumn;
20655
- }, this.toOrientedRange = function(e2) {
20685
+ }, e2.prototype.fromOrientedRange = function(e3) {
20686
+ this.setSelectionRange(e3, e3.cursor == e3.start), this.$desiredColumn = e3.desiredColumn || this.$desiredColumn;
20687
+ }, e2.prototype.toOrientedRange = function(e3) {
20656
20688
  var t2 = this.getRange();
20657
- return e2 ? (e2.start.column = t2.start.column, e2.start.row = t2.start.row, e2.end.column = t2.end.column, e2.end.row = t2.end.row) : e2 = t2, e2.cursor = this.isBackwards() ? e2.start : e2.end, e2.desiredColumn = this.$desiredColumn, e2;
20658
- }, this.getRangeOfMovements = function(e2) {
20689
+ return e3 ? (e3.start.column = t2.start.column, e3.start.row = t2.start.row, e3.end.column = t2.end.column, e3.end.row = t2.end.row) : e3 = t2, e3.cursor = this.isBackwards() ? e3.start : e3.end, e3.desiredColumn = this.$desiredColumn, e3;
20690
+ }, e2.prototype.getRangeOfMovements = function(e3) {
20659
20691
  var t2 = this.getCursor();
20660
20692
  try {
20661
- e2(this);
20693
+ e3(this);
20662
20694
  var n2 = this.getCursor();
20663
20695
  return o.fromPoints(t2, n2);
20664
20696
  } catch (r3) {
@@ -20666,41 +20698,42 @@ var ace$1 = { exports: {} };
20666
20698
  } finally {
20667
20699
  this.moveCursorToPosition(t2);
20668
20700
  }
20669
- }, this.toJSON = function() {
20701
+ }, e2.prototype.toJSON = function() {
20670
20702
  if (this.rangeCount)
20671
- var e2 = this.ranges.map(function(e3) {
20672
- var t2 = e3.clone();
20673
- return t2.isBackwards = e3.cursor == e3.start, t2;
20703
+ var e3 = this.ranges.map(function(e4) {
20704
+ var t2 = e4.clone();
20705
+ return t2.isBackwards = e4.cursor == e4.start, t2;
20674
20706
  });
20675
20707
  else {
20676
- var e2 = this.getRange();
20677
- e2.isBackwards = this.isBackwards();
20708
+ var e3 = this.getRange();
20709
+ e3.isBackwards = this.isBackwards();
20678
20710
  }
20679
- return e2;
20680
- }, this.fromJSON = function(e2) {
20681
- if (e2.start == void 0) {
20682
- if (this.rangeList && e2.length > 1) {
20683
- this.toSingleRange(e2[0]);
20684
- for (var t2 = e2.length; t2--; ) {
20685
- var n2 = o.fromPoints(e2[t2].start, e2[t2].end);
20686
- e2[t2].isBackwards && (n2.cursor = n2.start), this.addRange(n2, true);
20711
+ return e3;
20712
+ }, e2.prototype.fromJSON = function(e3) {
20713
+ if (e3.start == void 0) {
20714
+ if (this.rangeList && e3.length > 1) {
20715
+ this.toSingleRange(e3[0]);
20716
+ for (var t2 = e3.length; t2--; ) {
20717
+ var n2 = o.fromPoints(e3[t2].start, e3[t2].end);
20718
+ e3[t2].isBackwards && (n2.cursor = n2.start), this.addRange(n2, true);
20687
20719
  }
20688
20720
  return;
20689
20721
  }
20690
- e2 = e2[0];
20722
+ e3 = e3[0];
20691
20723
  }
20692
- this.rangeList && this.toSingleRange(e2), this.setSelectionRange(e2, e2.isBackwards);
20693
- }, this.isEqual = function(e2) {
20694
- if ((e2.length || this.rangeCount) && e2.length != this.rangeCount)
20724
+ this.rangeList && this.toSingleRange(e3), this.setSelectionRange(e3, e3.isBackwards);
20725
+ }, e2.prototype.isEqual = function(e3) {
20726
+ if ((e3.length || this.rangeCount) && e3.length != this.rangeCount)
20695
20727
  return false;
20696
- if (!e2.length || !this.ranges)
20697
- return this.getRange().isEqual(e2);
20728
+ if (!e3.length || !this.ranges)
20729
+ return this.getRange().isEqual(e3);
20698
20730
  for (var t2 = this.ranges.length; t2--; )
20699
- if (!this.ranges[t2].isEqual(e2[t2]))
20731
+ if (!this.ranges[t2].isEqual(e3[t2]))
20700
20732
  return false;
20701
20733
  return true;
20702
- };
20703
- }).call(u.prototype), t.Selection = u;
20734
+ }, e2;
20735
+ }();
20736
+ u.prototype.setSelectionAnchor = u.prototype.setAnchor, u.prototype.getSelectionAnchor = u.prototype.getAnchor, u.prototype.setSelectionRange = u.prototype.setRange, r2.implement(u.prototype, s), t.Selection = u;
20704
20737
  }), ace.define("ace/tokenizer", ["require", "exports", "module", "ace/config"], function(e, t, n) {
20705
20738
  var r2 = e("./config"), i2 = 2e3, s = function() {
20706
20739
  function e2(e3) {
@@ -23328,10 +23361,15 @@ var ace$1 = { exports: {} };
23328
23361
  }, handlesSet: true } }), t.EditSession = d;
23329
23362
  }), ace.define("ace/search", ["require", "exports", "module", "ace/lib/lang", "ace/lib/oop", "ace/range"], function(e, t, n) {
23330
23363
  function u(e2, t2) {
23331
- function n2(e3) {
23332
- return /\w/.test(e3) || t2.regExp ? "\\b" : "";
23364
+ function i3(e3, r3) {
23365
+ r3 === void 0 && (r3 = true);
23366
+ var i4 = n2 && t2.$supportsUnicodeFlag ? new RegExp("[\\p{L}\\p{N}_]", "u") : new RegExp("\\w");
23367
+ if (i4.test(e3) || t2.regExp)
23368
+ return n2 && t2.$supportsUnicodeFlag ? r3 ? "(?<=^|[^\\p{L}\\p{N}_])" : "(?=[^\\p{L}\\p{N}_]|$)" : "\\b";
23369
+ return "";
23333
23370
  }
23334
- return n2(e2[0]) + e2 + n2(e2[e2.length - 1]);
23371
+ var n2 = r2.supportsLookbehind(), s2 = Array.from(e2), o2 = s2[0], u2 = s2[s2.length - 1];
23372
+ return i3(o2) + e2 + i3(u2, false);
23335
23373
  }
23336
23374
  var r2 = e("./lib/lang"), i2 = e("./lib/oop"), s = e("./range").Range, o = function() {
23337
23375
  function e2() {
@@ -23414,17 +23452,23 @@ var ace$1 = { exports: {} };
23414
23452
  var n2 = e3.needle;
23415
23453
  if (!e3.needle)
23416
23454
  return e3.re = false;
23455
+ e3.$supportsUnicodeFlag === void 0 && (e3.$supportsUnicodeFlag = r2.supportsUnicodeFlag());
23456
+ try {
23457
+ new RegExp(n2, "u");
23458
+ } catch (i3) {
23459
+ e3.$supportsUnicodeFlag = false;
23460
+ }
23417
23461
  e3.regExp || (n2 = r2.escapeRegExp(n2)), e3.wholeWord && (n2 = u(n2, e3));
23418
- var i3 = e3.caseSensitive ? "gm" : "gmi";
23419
- e3.$isMultiLine = !t2 && /[\n\r]/.test(n2);
23462
+ var s2 = e3.caseSensitive ? "gm" : "gmi";
23463
+ e3.$supportsUnicodeFlag && (s2 += "u"), e3.$isMultiLine = !t2 && /[\n\r]/.test(n2);
23420
23464
  if (e3.$isMultiLine)
23421
- return e3.re = this.$assembleMultilineRegExp(n2, i3);
23465
+ return e3.re = this.$assembleMultilineRegExp(n2, s2);
23422
23466
  try {
23423
- var s2 = new RegExp(n2, i3);
23424
- } catch (o2) {
23425
- s2 = false;
23467
+ var o2 = new RegExp(n2, s2);
23468
+ } catch (i3) {
23469
+ o2 = false;
23426
23470
  }
23427
- return e3.re = s2;
23471
+ return e3.re = o2;
23428
23472
  }, e2.prototype.$assembleMultilineRegExp = function(e3, t2) {
23429
23473
  var n2 = e3.replace(/\r\n|\r|\n/g, "$\n^").split("\n"), r3 = [];
23430
23474
  for (var i3 = 0; i3 < n2.length; i3++)
@@ -25315,7 +25359,7 @@ var ace$1 = { exports: {} };
25315
25359
  this.isRowVisible(t3) || this.scrollToLine(t3, true, true), this.focus();
25316
25360
  }
25317
25361
  }, r3;
25318
- e2 ? (this.renderer.enableKeyboardAccessibility = true, this.renderer.keyboardFocusClassName = "ace_keyboard-focus", this.textInput.getElement().setAttribute("tabindex", -1), this.renderer.scroller.setAttribute("tabindex", 0), this.renderer.scroller.setAttribute("role", "group"), this.renderer.scroller.setAttribute("aria-roledescription", S("editor")), this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName), this.renderer.scroller.setAttribute("aria-label", S("Editor content, press Enter to start editing, press Escape to exit")), this.renderer.scroller.addEventListener("keyup", n2.bind(this)), this.commands.addCommand(t2), this.renderer.$gutter.setAttribute("tabindex", 0), this.renderer.$gutter.setAttribute("aria-hidden", false), this.renderer.$gutter.setAttribute("role", "group"), this.renderer.$gutter.setAttribute("aria-roledescription", S("editor")), this.renderer.$gutter.setAttribute("aria-label", S("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")), this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName), this.renderer.content.setAttribute("aria-hidden", true), r3 || (r3 = new E(this)), r3.addListener()) : (this.renderer.enableKeyboardAccessibility = false, this.textInput.getElement().setAttribute("tabindex", 0), this.renderer.scroller.setAttribute("tabindex", -1), this.renderer.scroller.removeAttribute("role"), this.renderer.scroller.removeAttribute("aria-roledescription"), this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName), this.renderer.scroller.removeAttribute("aria-label"), this.renderer.scroller.removeEventListener("keyup", n2.bind(this)), this.commands.removeCommand(t2), this.renderer.content.removeAttribute("aria-hidden"), this.renderer.$gutter.setAttribute("tabindex", -1), this.renderer.$gutter.setAttribute("aria-hidden", true), this.renderer.$gutter.removeAttribute("role"), this.renderer.$gutter.removeAttribute("aria-roledescription"), this.renderer.$gutter.removeAttribute("aria-label"), this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName), r3 && r3.removeListener());
25362
+ e2 ? (this.renderer.enableKeyboardAccessibility = true, this.renderer.keyboardFocusClassName = "ace_keyboard-focus", this.textInput.getElement().setAttribute("tabindex", -1), this.textInput.setNumberOfExtraLines(u.isWin ? 3 : 0), this.renderer.scroller.setAttribute("tabindex", 0), this.renderer.scroller.setAttribute("role", "group"), this.renderer.scroller.setAttribute("aria-roledescription", S("editor")), this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName), this.renderer.scroller.setAttribute("aria-label", S("Editor content, press Enter to start editing, press Escape to exit")), this.renderer.scroller.addEventListener("keyup", n2.bind(this)), this.commands.addCommand(t2), this.renderer.$gutter.setAttribute("tabindex", 0), this.renderer.$gutter.setAttribute("aria-hidden", false), this.renderer.$gutter.setAttribute("role", "group"), this.renderer.$gutter.setAttribute("aria-roledescription", S("editor")), this.renderer.$gutter.setAttribute("aria-label", S("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")), this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName), this.renderer.content.setAttribute("aria-hidden", true), r3 || (r3 = new E(this)), r3.addListener()) : (this.renderer.enableKeyboardAccessibility = false, this.textInput.getElement().setAttribute("tabindex", 0), this.textInput.setNumberOfExtraLines(0), this.renderer.scroller.setAttribute("tabindex", -1), this.renderer.scroller.removeAttribute("role"), this.renderer.scroller.removeAttribute("aria-roledescription"), this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName), this.renderer.scroller.removeAttribute("aria-label"), this.renderer.scroller.removeEventListener("keyup", n2.bind(this)), this.commands.removeCommand(t2), this.renderer.content.removeAttribute("aria-hidden"), this.renderer.$gutter.setAttribute("tabindex", -1), this.renderer.$gutter.setAttribute("aria-hidden", true), this.renderer.$gutter.removeAttribute("role"), this.renderer.$gutter.removeAttribute("aria-roledescription"), this.renderer.$gutter.removeAttribute("aria-label"), this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName), r3 && r3.removeListener());
25319
25363
  }, initialValue: false }, customScrollbar: "renderer", hScrollBarAlwaysVisible: "renderer", vScrollBarAlwaysVisible: "renderer", highlightGutterLine: "renderer", animatedScroll: "renderer", showInvisibles: "renderer", showPrintMargin: "renderer", printMarginColumn: "renderer", printMargin: "renderer", fadeFoldWidgets: "renderer", showFoldWidgets: "renderer", displayIndentGuides: "renderer", highlightIndentGuides: "renderer", showGutter: "renderer", fontSize: "renderer", fontFamily: "renderer", maxLines: "renderer", minLines: "renderer", scrollPastEnd: "renderer", fixedWidthGutter: "renderer", theme: "renderer", hasCssTransforms: "renderer", maxPixelHeight: "renderer", useTextareaForIME: "renderer", useResizeObserver: "renderer", useSvgGutterIcons: "renderer", showFoldedAnnotations: "renderer", scrollSpeed: "$mouseHandler", dragDelay: "$mouseHandler", dragEnabled: "$mouseHandler", focusTimeout: "$mouseHandler", tooltipFollowsMouse: "$mouseHandler", firstLineNumber: "session", overwrite: "session", newLineMode: "session", useWorker: "session", useSoftTabs: "session", navigateWithinSoftTabs: "session", tabSize: "session", wrap: "session", indentedSoftWrap: "session", foldStyle: "session", mode: "session" });
25320
25364
  var C = { getText: function(e2, t2) {
25321
25365
  return (Math.abs(e2.selection.lead.row - t2) || t2 + 1 + (t2 < 9 ? "·" : "")) + "";
@@ -27393,7 +27437,7 @@ var ace$1 = { exports: {} };
27393
27437
  this.setOption("showInvisibles", e3), this.session.$bidiHandler.setShowInvisibles(e3);
27394
27438
  }, e2.prototype.getShowInvisibles = function() {
27395
27439
  return this.getOption("showInvisibles");
27396
- }, e2.prototype.getDisplayIndentGuide = function() {
27440
+ }, e2.prototype.getDisplayIndentGuides = function() {
27397
27441
  return this.getOption("displayIndentGuides");
27398
27442
  }, e2.prototype.setDisplayIndentGuides = function(e3) {
27399
27443
  this.setOption("displayIndentGuides", e3);
@@ -28660,14 +28704,21 @@ var ace$1 = { exports: {} };
28660
28704
  a.config.init(true);
28661
28705
  a.define = ace.define;
28662
28706
  }
28663
- if (!window.ace)
28664
- window.ace = a;
28707
+ var global2 = function() {
28708
+ return this;
28709
+ }();
28710
+ if (!global2 && typeof window != "undefined")
28711
+ global2 = window;
28712
+ if (!global2 && typeof self != "undefined")
28713
+ global2 = self;
28714
+ if (!global2.ace)
28715
+ global2.ace = a;
28665
28716
  for (var key2 in a)
28666
28717
  if (a.hasOwnProperty(key2))
28667
- window.ace[key2] = a[key2];
28668
- window.ace["default"] = window.ace;
28718
+ global2.ace[key2] = a[key2];
28719
+ global2.ace["default"] = global2.ace;
28669
28720
  if (module) {
28670
- module.exports = window.ace;
28721
+ module.exports = global2.ace;
28671
28722
  }
28672
28723
  });
28673
28724
  })();
@@ -28920,14 +28971,11 @@ var extLanguage_tools = { exports: {} };
28920
28971
  return n2.text;
28921
28972
  }, e2.prototype.insertSnippetForSelection = function(e3, t2, n2) {
28922
28973
  n2 === void 0 && (n2 = {});
28923
- var r3 = v.call(this, e3, t2, n2), i3 = e3.getSelectionRange();
28924
- n2.range && n2.range.compareRange(i3) === 0 && (i3 = n2.range);
28925
- var s2 = e3.session.replace(i3, r3.text), o2 = new m(e3), u2 = e3.inVirtualSelectionMode && e3.selection.index;
28974
+ var r3 = v.call(this, e3, t2, n2), i3 = e3.getSelectionRange(), s2 = e3.session.replace(i3, r3.text), o2 = new m(e3), u2 = e3.inVirtualSelectionMode && e3.selection.index;
28926
28975
  o2.addTabstops(r3.tabstops, i3.start, s2, u2);
28927
28976
  }, e2.prototype.insertSnippet = function(e3, t2, n2) {
28928
28977
  n2 === void 0 && (n2 = {});
28929
28978
  var r3 = this;
28930
- n2.range && !(n2.range instanceof u) && (n2.range = u.fromPoints(n2.range.start, n2.range.end));
28931
28979
  if (e3.inVirtualSelectionMode)
28932
28980
  return r3.insertSnippetForSelection(e3, t2, n2);
28933
28981
  e3.forEachSelection(function() {
@@ -29243,7 +29291,7 @@ var extLanguage_tools = { exports: {} };
29243
29291
  }, h2 = function() {
29244
29292
  function e2(e3) {
29245
29293
  var t2 = a.createElement("div"), n2 = new c2(t2);
29246
- e3 && e3.appendChild(t2), t2.style.display = "none", n2.renderer.content.style.cursor = "default", n2.renderer.setStyle("ace_autocomplete"), n2.renderer.container.setAttribute("role", "listbox"), n2.renderer.container.setAttribute("aria-label", f2("Autocomplete suggestions")), n2.setOption("displayIndentGuides", false), n2.setOption("dragDelay", 150);
29294
+ e3 && e3.appendChild(t2), t2.style.display = "none", n2.renderer.content.style.cursor = "default", n2.renderer.setStyle("ace_autocomplete"), n2.renderer.$textLayer.element.setAttribute("role", "listbox"), n2.renderer.$textLayer.element.setAttribute("aria-label", f2("Autocomplete suggestions")), n2.renderer.textarea.setAttribute("aria-hidden", "true"), n2.setOption("displayIndentGuides", false), n2.setOption("dragDelay", 150);
29247
29295
  var r3 = function() {
29248
29296
  };
29249
29297
  n2.focus = r3, n2.$isFocused = true, n2.renderer.$cursorLayer.restartTimer = r3, n2.renderer.$cursorLayer.element.style.opacity = 0, n2.renderer.$maxLines = 8, n2.renderer.$keepTextAreaAtCursor = false, n2.setHighlightActiveLine(false), n2.session.highlight(""), n2.session.$searchHighlight.clazz = "ace_highlight-marker", n2.on("mousedown", function(e4) {
@@ -29275,7 +29323,7 @@ var extLanguage_tools = { exports: {} };
29275
29323
  if (r4) {
29276
29324
  a.addCssClass(r4, "ace_selected");
29277
29325
  var s2 = l(e4);
29278
- r4.id = s2, n2.renderer.container.setAttribute("aria-activedescendant", s2), i4.setAttribute("aria-activedescendant", s2), r4.setAttribute("role", "option"), r4.setAttribute("aria-label", n2.getData(e4).value), r4.setAttribute("aria-setsize", n2.data.length), r4.setAttribute("aria-posinset", e4), r4.setAttribute("aria-describedby", "doc-tooltip");
29326
+ r4.id = s2, t3.element.setAttribute("aria-activedescendant", s2), i4.setAttribute("aria-activedescendant", s2), r4.setAttribute("role", "option"), r4.setAttribute("aria-label", n2.getData(e4).value), r4.setAttribute("aria-setsize", n2.data.length), r4.setAttribute("aria-posinset", e4 + 1), r4.setAttribute("aria-describedby", "doc-tooltip");
29279
29327
  }
29280
29328
  });
29281
29329
  var d = function() {
@@ -29505,8 +29553,8 @@ var extLanguage_tools = { exports: {} };
29505
29553
  return this.completions == n2 && this.detach(), r3;
29506
29554
  }, e2.prototype.showPopup = function(e3, t2) {
29507
29555
  this.editor && this.detach(), this.activated = true, this.editor = e3, e3.completer != this && (e3.completer && e3.completer.detach(), e3.completer = this), e3.on("changeSelection", this.changeListener), e3.on("blur", this.blurListener), e3.on("mousedown", this.mousedownListener), e3.on("mousewheel", this.mousewheelListener), this.updateCompletions(false, t2);
29508
- }, e2.prototype.getCompletionProvider = function() {
29509
- return this.completionProvider || (this.completionProvider = new d()), this.completionProvider;
29556
+ }, e2.prototype.getCompletionProvider = function(e3) {
29557
+ return this.completionProvider || (this.completionProvider = new d(e3)), this.completionProvider;
29510
29558
  }, e2.prototype.gatherCompletions = function(e3, t2) {
29511
29559
  return this.getCompletionProvider().gatherCompletions(e3, t2);
29512
29560
  }, e2.prototype.updateCompletions = function(e3, t2) {
@@ -29529,7 +29577,7 @@ var extLanguage_tools = { exports: {} };
29529
29577
  var i3 = this.editor.getSession(), n2 = this.editor.getCursorPosition(), r3 = u.getCompletionPrefix(this.editor);
29530
29578
  this.base = i3.doc.createAnchor(n2.row, n2.column - r3.length), this.base.$insertRight = true;
29531
29579
  var s2 = { exactMatch: this.exactMatch };
29532
- this.getCompletionProvider().provideCompletions(this.editor, s2, function(t3, n3, r4) {
29580
+ this.getCompletionProvider({ prefix: r3, pos: n2 }).provideCompletions(this.editor, s2, function(t3, n3, r4) {
29533
29581
  var i4 = n3.filtered, s3 = u.getCompletionPrefix(this.editor);
29534
29582
  if (r4) {
29535
29583
  if (!i4.length) {
@@ -29630,8 +29678,8 @@ var extLanguage_tools = { exports: {} };
29630
29678
  n2.autoInsert = false, n2.autoSelect = true, n2.autoShown = false, n2.showPopup(e2, t2), n2.cancelContextMenu();
29631
29679
  }, bindKey: "Ctrl-Space|Ctrl-Shift-Space|Alt-Space" };
29632
29680
  var d = function() {
29633
- function e2() {
29634
- this.active = true;
29681
+ function e2(e3) {
29682
+ this.initialPosition = e3, this.active = true;
29635
29683
  }
29636
29684
  return e2.prototype.insertByIndex = function(e3, t2, n2) {
29637
29685
  return !this.completions || !this.completions.filtered ? false : this.insertMatch(e3, this.completions.filtered[t2], n2);
@@ -29644,26 +29692,20 @@ var extLanguage_tools = { exports: {} };
29644
29692
  else {
29645
29693
  if (!this.completions)
29646
29694
  return false;
29647
- if (this.completions.filterText) {
29648
- var r3;
29649
- e3.selection.getAllRanges ? r3 = e3.selection.getAllRanges() : r3 = [e3.getSelectionRange()];
29650
- for (var i3 = 0, s2; s2 = r3[i3]; i3++)
29651
- s2.start.column -= this.completions.filterText.length, e3.session.remove(s2);
29695
+ var r3 = this.completions.filterText.length, i3 = 0;
29696
+ t2.range && t2.range.start.row === t2.range.end.row && (r3 -= this.initialPosition.prefix.length, r3 += this.initialPosition.pos.column - t2.range.start.column, i3 += t2.range.end.column - this.initialPosition.pos.column);
29697
+ if (r3 || i3) {
29698
+ var s2;
29699
+ e3.selection.getAllRanges ? s2 = e3.selection.getAllRanges() : s2 = [e3.getSelectionRange()];
29700
+ for (var o2 = 0, u2; u2 = s2[o2]; o2++)
29701
+ u2.start.column -= r3, u2.end.column += i3, e3.session.remove(u2);
29652
29702
  }
29653
- t2.snippet ? l.insertSnippet(e3, t2.snippet, { range: t2.range }) : this.$insertString(e3, t2), t2.command && t2.command === "startAutocomplete" && e3.execCommand(t2.command);
29703
+ t2.snippet ? l.insertSnippet(e3, t2.snippet) : this.$insertString(e3, t2), t2.command && t2.command === "startAutocomplete" && e3.execCommand(t2.command);
29654
29704
  }
29655
29705
  return e3.endOperation(), true;
29656
29706
  }, e2.prototype.$insertString = function(e3, t2) {
29657
29707
  var n2 = t2.value || t2;
29658
- if (t2.range) {
29659
- if (e3.inVirtualSelectionMode)
29660
- return e3.session.replace(t2.range, n2);
29661
- e3.forEachSelection(function() {
29662
- var r3 = e3.getSelectionRange();
29663
- t2.range.compareRange(r3) === 0 ? e3.session.replace(t2.range, n2) : e3.insert(n2);
29664
- }, null, { keepOrder: true });
29665
- } else
29666
- e3.execCommand("insertstring", n2);
29708
+ e3.execCommand("insertstring", n2);
29667
29709
  }, e2.prototype.gatherCompletions = function(e3, t2) {
29668
29710
  var n2 = e3.getSession(), r3 = e3.getCursorPosition(), i3 = u.getCompletionPrefix(e3), s2 = [];
29669
29711
  this.completers = e3.completers;
@@ -29836,7 +29878,7 @@ var extLanguage_tools = { exports: {} };
29836
29878
  w(y);
29837
29879
  }, 0), w = function(e2) {
29838
29880
  var t2 = e2.editor, n2 = u.getCompletionPrefix(t2), r3 = u.triggerAutocomplete(t2);
29839
- if ((n2 || r3) && n2.length >= t2.$liveAutocompletionThreshold) {
29881
+ if (n2 && n2.length >= t2.$liveAutocompletionThreshold || r3) {
29840
29882
  var s2 = i2.for(t2);
29841
29883
  s2.autoShown = true, s2.showPopup(t2);
29842
29884
  }