@epam/ai-dial-chat-shared 1.1.0-dev.456 → 1.1.0-dev.459

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/utils/latex.js +59 -14
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-chat-shared",
3
3
  "description": "Shared domain models, utilities, and UI components for AI DIAL Chat libraries",
4
- "version": "1.1.0-dev.456",
4
+ "version": "1.1.0-dev.459",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "sideEffects": [
package/utils/latex.js CHANGED
@@ -1,15 +1,15 @@
1
1
  //#region src/utils/latex.ts
2
- var e = /\$\\ce\{/g, t = /\$\\pu\{/g, n = /\$\\\\ce\{[^}]*\}\$/g, r = /\$\\\\pu\{[^}]*\}\$/g, i = /(?<![\\$])\$(?!\$)(?=\d+(?:,\d{3})*(?:\.\d+)?(?:[KMBkmb])?(?:\s|$|[^a-zA-Z\d]))/g, a = /(?<!\\)\$(?!\$)((?:[^$\n]|\\[$])+?)(?<!\\)(?<!`)\$(?!\$)/g, o = (i) => {
2
+ var e = /\$\\ce\{/g, t = /\$\\pu\{/g, n = /\$\\\\ce\{[^}]*\}\$/g, r = /\$\\\\pu\{[^}]*\}\$/g, i = /\$\$([\s\S]*?)\$\$/g, a = /^[ \t]*\r?\n/, o = /\r?\n[ \t]*$/, s = /\d+(?:,\d{3})*(?:\.\d+)?(?:[KMBkmb])?/y, c = /\s|[^a-zA-Z\d]/y, l = /[\^_\\]/y, u = /(?:[<>]|\\(?:le|leq|ll|ge|geq|gg|ne|neq|approx|equiv|sim|simeq|cong|in|notin|subset|subseteq|supset|supseteq|to|rightarrow|leftarrow|mapsto|implies|iff)\b)/y, d = (i) => {
3
3
  let a = i.replace(e, "$\\\\ce{");
4
4
  return a = a.replace(t, "$\\\\pu{"), a = a.replace(n, (e) => `$${e}$`), a = a.replace(r, (e) => `$${e}$`), a;
5
- }, s = (e) => {
5
+ }, f = (e) => {
6
6
  let t = [], n = -1, r = -1;
7
7
  for (let i = 0; i < e.length; i++) {
8
8
  let a = e[i];
9
9
  a === "`" && i + 2 < e.length && e[i + 1] === "`" && e[i + 2] === "`" ? r === -1 ? (r = i, i += 2) : (t.push([r, i + 2]), r = -1, i += 2) : a === "`" && r === -1 && (n === -1 ? n = i : (t.push([n, i]), n = -1));
10
10
  }
11
11
  return t;
12
- }, c = (e, t) => {
12
+ }, p = (e, t) => {
13
13
  let n = 0, r = t.length - 1;
14
14
  for (; n <= r;) {
15
15
  let i = Math.floor((n + r) / 2), [a, o] = t[i];
@@ -17,18 +17,63 @@ var e = /\$\\ce\{/g, t = /\$\\pu\{/g, n = /\$\\\\ce\{[^}]*\}\$/g, r = /\$\\\\pu\
17
17
  e < a ? r = i - 1 : n = i + 1;
18
18
  }
19
19
  return !1;
20
- }, l = (e) => {
20
+ }, m = (e, t, n) => (e.lastIndex = n, e.exec(t)), h = /\s/, g = (e, t) => {
21
+ let n = t;
22
+ for (; n < e.length && h.test(e[n]);) n++;
23
+ return n;
24
+ }, _ = (e) => {
25
+ if (!e.includes("$$")) return e;
26
+ let t = f(e), n = [], r = 0, s;
27
+ for (i.lastIndex = 0; (s = i.exec(e)) !== null;) {
28
+ let i = s.index, c = i + s[0].length, l = s[1];
29
+ if (!l.includes("\n") || p(i, t)) continue;
30
+ let u = e.lastIndexOf("\n", i - 1) + 1;
31
+ if (e.slice(u, i).trim() !== "") continue;
32
+ let d = l.replace(a, "").replace(o, ""), f = e.indexOf("\n", c), m = e.slice(c, f === -1 ? e.length : f);
33
+ n.push(e.slice(r, i)), n.push(`$$\n${d}\n$$${m.trim() === "" ? "" : "\n"}`), r = c;
34
+ }
35
+ return n.push(e.substring(r)), n.join("");
36
+ }, v = (e, t) => {
37
+ let n = m(s, e, t + 1);
38
+ return n ? t + 1 + n[0].length : -1;
39
+ }, y = (e, t) => t >= e.length ? !0 : !(!m(c, e, t) || m(l, e, t) || m(u, e, g(e, t))), b = (e, t) => {
40
+ let n = [];
41
+ for (let r = 0; r < e.length; r++) {
42
+ if (e[r] !== "$") continue;
43
+ let i = r;
44
+ for (; i + 1 < e.length && e[i + 1] === "$";) i++;
45
+ if (i > r) {
46
+ r = i;
47
+ continue;
48
+ }
49
+ r > 0 && e[r - 1] === "\\" || p(r, t) || n.push(r);
50
+ }
51
+ return n;
52
+ }, x = (e, t, n, r) => {
53
+ if (n <= t + 1 || e[n - 1] === "`") return !1;
54
+ for (let i = t + 1; i < n; i++) if (e[i] === "\n" || e[i] === "$" && !(e[i - 1] === "\\" || r.has(i))) return !1;
55
+ return !0;
56
+ }, S = (e) => {
21
57
  if (!e.includes("$")) return e;
22
58
  let t = e;
23
- (e.includes("\\ce{") || e.includes("\\pu{")) && (t = o(e));
24
- let n = s(t), r = [], l = 0;
25
- i.lastIndex = 0;
26
- let u;
27
- for (; (u = i.exec(t)) !== null;) c(u.index, n) || (r.push(t.substring(l, u.index)), r.push("\\$"), l = u.index + 1);
28
- r.push(t.substring(l)), t = r.join("");
29
- let d = [];
30
- for (l = 0, a.lastIndex = 0; (u = a.exec(t)) !== null;) c(u.index, n) || (d.push(t.substring(l, u.index)), d.push(`$$${u[1]}$$`), l = u.index + u[0].length);
31
- return d.push(t.substring(l)), d.join("");
59
+ (e.includes("\\ce{") || e.includes("\\pu{")) && (t = d(e)), t = _(t);
60
+ let n = f(t), r = b(t, n), i = /* @__PURE__ */ new Map(), a = -1;
61
+ for (let e = 0; e < r.length; e++) {
62
+ let n = r[e], o = v(t, n);
63
+ if (o !== -1 && y(t, o)) {
64
+ i.set(n, "\\$"), a === -1 && r[e + 1] === o && (i.set(o, "\\$"), e++);
65
+ continue;
66
+ }
67
+ if (a === -1) {
68
+ a = n;
69
+ continue;
70
+ }
71
+ x(t, a, n, i) ? (i.set(a, "$$"), i.set(n, "$$"), a = -1) : a = n;
72
+ }
73
+ if (i.size === 0) return t;
74
+ let o = [], s = 0;
75
+ for (let e of [...i.keys()].sort((e, t) => e - t)) o.push(t.slice(s, e)), o.push(i.get(e)), s = e + 1;
76
+ return o.push(t.substring(s)), o.join("");
32
77
  };
33
78
  //#endregion
34
- export { l as preprocessLaTeX };
79
+ export { S as preprocessLaTeX };