Created
July 18, 2024 15:27
-
-
Save rskvp93/0ea92e6028903cbc8bfacf37f6bd9f66 to your computer and use it in GitHub Desktop.
Substack_base-6fd039df.js
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var vf = Object.defineProperty, | |
xf = Object.defineProperties; | |
var yf = Object.getOwnPropertyDescriptors; | |
var Ts = Object.getOwnPropertySymbols; | |
var Ni = Object.prototype.hasOwnProperty, | |
Mi = Object.prototype.propertyIsEnumerable; | |
var Xa = Math.pow, | |
Ii = (t, e, n) => e in t ? vf(t, e, { | |
enumerable: !0, | |
configurable: !0, | |
writable: !0, | |
value: n | |
}) : t[e] = n, | |
S = (t, e) => { | |
for (var n in e || (e = {})) Ni.call(e, n) && Ii(t, n, e[n]); | |
if (Ts) | |
for (var n of Ts(e)) Mi.call(e, n) && Ii(t, n, e[n]); | |
return t | |
}, | |
P = (t, e) => xf(t, yf(e)); | |
var st = (t, e) => { | |
var n = {}; | |
for (var s in t) Ni.call(t, s) && e.indexOf(s) < 0 && (n[s] = t[s]); | |
if (t != null && Ts) | |
for (var s of Ts(t)) e.indexOf(s) < 0 && Mi.call(t, s) && (n[s] = t[s]); | |
return n | |
}; | |
var N = (t, e, n) => new Promise((s, a) => { | |
var o = c => { | |
try { | |
i(n.next(c)) | |
} catch (l) { | |
a(l) | |
} | |
}, | |
r = c => { | |
try { | |
i(n.throw(c)) | |
} catch (l) { | |
a(l) | |
} | |
}, | |
i = c => c.done ? s(c.value) : Promise.resolve(c.value).then(o, r); | |
i((n = n.apply(t, e)).next()) | |
}); | |
import { | |
dO as wf, | |
p as U, | |
H as J, | |
b0 as de, | |
aA as we, | |
bO as ge, | |
h as z, | |
ck as In, | |
c1 as kf, | |
eT as cr, | |
i_ as Un, | |
e8 as ya, | |
cQ as Nt, | |
eP as _f, | |
bt as wa, | |
eM as Cf, | |
bq as lr, | |
y as p, | |
t as se, | |
E as ae, | |
i$ as Ef, | |
j0 as Af, | |
g5 as Sf, | |
fj as Tf, | |
cP as it, | |
bn as Ue, | |
dY as ur, | |
j1 as Fl, | |
j as rt, | |
gs as jl, | |
gt as pr, | |
h5 as Df, | |
fZ as ka, | |
j2 as lt, | |
j3 as $l, | |
j4 as Ul, | |
i as yt, | |
c as qe, | |
U as Ut, | |
ah as Kn, | |
Y as q, | |
g_ as Oi, | |
hh as Li, | |
R as If, | |
bC as Vl, | |
dh as Hl, | |
df as Nf, | |
j5 as Gl, | |
j6 as Mf, | |
j7 as Of, | |
bh as dr, | |
fc as ce, | |
O as _n, | |
G as Cn, | |
j8 as Wl, | |
$ as Jl, | |
iZ as Yl, | |
j9 as Kl, | |
fC as Lf, | |
ja as Rf, | |
ge as mr, | |
a8 as Xl, | |
jb as Zl, | |
jc as Pf, | |
e$ as Bf, | |
fA as fr, | |
ga as zf, | |
f_ as Ri, | |
jd as Ds, | |
hZ as hr, | |
je as Ql, | |
hX as Is, | |
fi as qf, | |
jf as Ff, | |
h_ as Bo, | |
h$ as zo, | |
dS as Ks, | |
M as eu, | |
F as En, | |
jg as os, | |
cs as tu, | |
fP as jf, | |
jh as Ns, | |
J as Ft, | |
A as be, | |
g3 as Za, | |
bM as Xs, | |
m as nu, | |
cc as _a, | |
ji as $f, | |
jj as Uf, | |
jk as Vf, | |
bz as Xn, | |
c3 as Hf, | |
V as Gf, | |
e as su, | |
dA as au, | |
jl as Wf, | |
eA as Jf, | |
d as Yf, | |
jm as Pi, | |
jn as Kf, | |
jo as Xf, | |
di as Zf, | |
gQ as Zs, | |
eZ as Qf, | |
jp as Qs, | |
aY as eh, | |
l as Bi, | |
bJ as th, | |
u as ou, | |
hz as ru, | |
it as nh, | |
bW as Qa, | |
_ as sh, | |
jq as ah, | |
cS as oh, | |
bR as zi, | |
jr as rh, | |
js as ih, | |
jt as ch, | |
g0 as lh, | |
v as qi | |
} from "./tracking-5779d19a.js"; | |
import { | |
N as Qt, | |
m as en, | |
t as uh, | |
c as Ee, | |
d as Je, | |
n as iu, | |
M as cu, | |
e as gr, | |
f as qo, | |
h as wt, | |
b as Ca, | |
F as Kt, | |
i as lu, | |
j as uu, | |
k as Ea, | |
l as Pe, | |
R as kt, | |
o as _t, | |
p as Fo, | |
q as ph, | |
r as pu, | |
s as du, | |
v as jo, | |
w as dh, | |
x as mh, | |
y as fh, | |
z as St, | |
C as hh, | |
G as gh, | |
H as eo, | |
I as bh, | |
J as vh, | |
K as xh, | |
L as yh, | |
O as gt, | |
Q as wh, | |
U as ea, | |
V as kh, | |
W as _h, | |
X as Ch, | |
D as mu, | |
P as fu, | |
T as hu, | |
Y as Eh, | |
Z as Ah, | |
_ as gu, | |
$ as Sh, | |
A as Th, | |
a0 as Dh, | |
a1 as Ih, | |
a2 as Nh, | |
a3 as Mh, | |
a4 as Fi, | |
a5 as Ms, | |
a6 as ji, | |
a7 as Oh, | |
a8 as Lh, | |
E as Rh, | |
a9 as Ph | |
} from "./autocomplete_results-829164f2.js"; | |
import { | |
u as ue, | |
l as bu, | |
F as Y, | |
f as ta, | |
j as br, | |
T as X, | |
a as ne, | |
S as vr, | |
B as Aa, | |
c as fe, | |
h as ft, | |
O as Ae, | |
i as vu, | |
b as xe, | |
k as Bh, | |
w as zh, | |
n as qh, | |
M as mn | |
} from "./FlexBox-8b7f0d6c.js"; | |
import { | |
n as Fh, | |
i as $i | |
} from "./share_dialog-f2ebc006.js"; | |
import { | |
M as $t | |
} from "./mousetrap-6acb8cb1.js"; | |
import { | |
u as jh, | |
r as Ui, | |
H as xu, | |
h as $h | |
} from "./index-5fa16c7e.js"; | |
import { | |
r as he, | |
j as Uh, | |
M as ds | |
} from "./sortBy-53166f8e.js"; | |
import { | |
D as yu, | |
z as wu, | |
B as Vh, | |
G as Hh, | |
I as Gh, | |
J as ku, | |
K as Wh, | |
L as bt, | |
A as An, | |
N as xr, | |
c as Jh, | |
O as Yh, | |
Q as Me, | |
V as Kh, | |
W as Xh, | |
X as Zh, | |
Y as _u, | |
i as Qh, | |
Z as eg | |
} from "./post-72fb30bd.js"; | |
import { | |
B as Vs | |
} from "./button-8ee58a9a.js"; | |
import "./_sentry-release-injection-file-9254565a.js"; | |
import { | |
t as Cu, | |
a as Sa, | |
b as ms, | |
M as fs, | |
s as tg | |
} from "./Modal-83447875.js"; | |
import { | |
P as Eu | |
} from "./modal-3f58ef3d.js"; | |
import { | |
L as ng, | |
T as sg | |
} from "./TrashIcon-618c7548.js"; | |
import { | |
T as Vi | |
} from "./textarea-718e4ef4.js"; | |
import { | |
_ as Z, | |
d as ag, | |
u as $o, | |
R as og | |
} from "./responsive_img-3c51e57a.js"; | |
import { | |
e as Uo | |
} from "./encodeHtmlEntities-35ab9c34.js"; | |
import { | |
a as Fe, | |
T as rg | |
} from "./util-typed-d6d3f2ff.js"; | |
import { | |
c as pe, | |
X as yr | |
} from "./x-933ea65f.js"; | |
import { | |
c as ig | |
} from "./_arrayIncludesWith-27de2814.js"; | |
import { | |
_ as cg | |
} from "./toNumber-f902633e.js"; | |
import { | |
as as Vo, | |
at as Hi, | |
au as mt, | |
av as lg, | |
aw as ug, | |
T as Au, | |
q as Gi, | |
I as Ho, | |
ax as Vt, | |
ay as Jn, | |
aq as fn, | |
e as Su, | |
u as pg, | |
c as dg, | |
az as mg, | |
aA as fg, | |
aB as Wi, | |
aC as Ji, | |
aD as hg | |
} from "./Attachments-26bf7580.js"; | |
import { | |
b as Tu, | |
H as gg, | |
u as Du, | |
d as bg, | |
c as vg | |
} from "./AlertDialog-f1c63885.js"; | |
import { | |
d as wr | |
} from "./debounce-c95d884c.js"; | |
import { | |
p as na | |
} from "./pick-971b5e11.js"; | |
import { | |
V as Ta, | |
U as Iu, | |
M as xg, | |
P as yg, | |
b as wg, | |
l as kg, | |
c as _g, | |
d as Cg, | |
e as Eg, | |
f as Ag, | |
g as Sg, | |
h as Tg | |
} from "./video_editor-b834fb32.js"; | |
import { | |
A as Dg | |
} from "./AuditionPlayer-59a31fcb.js"; | |
import { | |
F as Nu | |
} from "./FilePicker-c9d24a53.js"; | |
import { | |
M as vn, | |
a as Mt, | |
b as to, | |
S as Ig | |
} from "./Menu-8ddb0f91.js"; | |
import { | |
S as Sn | |
} from "./Progress-d3ff4e14.js"; | |
import { | |
S as Ng, | |
U as Mg, | |
c as hn | |
} from "./VideoVerticalMenu-e627c680.js"; | |
import { | |
D as Mu | |
} from "./download-dea01c9e.js"; | |
import { | |
M as Og | |
} from "./menu-46e3f3ec.js"; | |
import { | |
c as Lg | |
} from "./tiktok-27b6efdb.js"; | |
import { | |
a as kr, | |
B as Ou, | |
b as _r, | |
C as Lu, | |
c as Ru, | |
I as Pu, | |
L as Bu, | |
O as Cr, | |
S as zu | |
} from "./index-2d69285b.js"; | |
import { | |
H as qu | |
} from "./index-e42bf16e.js"; | |
import { | |
m as Rg, | |
t as Er, | |
bd as Pg, | |
aJ as Bg, | |
bA as zg, | |
a as qg, | |
d as Fg | |
} from "./homepage_hooks-258e84da.js"; | |
import { | |
M as jg, | |
m as $g | |
} from "./mention-a2befbf1.js"; | |
import { | |
H as Ug, | |
u as Vg, | |
a as Yi, | |
C as sa | |
} from "./HoverCard-92fb7948.js"; | |
import { | |
D as Hg, | |
a as Gg | |
} from "./Divider-a2a4ef65.js"; | |
import { | |
I as Wg | |
} from "./ChooseGeneratedImageModal-21455ba2.js"; | |
import { | |
T as Pt | |
} from "./Tooltip-2b2b71ff.js"; | |
import { | |
P as Jg | |
} from "./PubAccentTheme-7a3e2ba8.js"; | |
import { | |
q as Ki | |
} from "./transition-d7aff1cb.js"; | |
import { | |
a as Yg | |
} from "./user-76406467.js"; | |
import "./Divider.module-10da8075.js"; | |
import { | |
k as Xi | |
} from "./keyBy-15cc8c09.js"; | |
import { | |
o as Kg | |
} from "./omit-7d67b4d6.js"; | |
import { | |
T as rs | |
} from "./TextInput-f605802a.js"; | |
import { | |
S as Xg | |
} from "./Select-169c9194.js"; | |
import { | |
B as Zg, | |
I as Qg, | |
S as eb, | |
L as tb, | |
T as nb | |
} from "./index-6384ea2c.js"; | |
import { | |
L as Fu | |
} from "./link-e8367f9e.js"; | |
import { | |
L as sb | |
} from "./list-5d68e69a.js"; | |
import { | |
C as Ar | |
} from "./chevron-down-0a2aacdb.js"; | |
import { | |
S as ab | |
} from "./Portal-64a61d16.js"; | |
import { | |
C as ob | |
} from "./candlestick-chart-3c1cfe3a.js"; | |
import { | |
a as ju, | |
M as $u | |
} from "./MathJax-f8068bcc.js"; | |
import { | |
S as rb | |
} from "./square-pen-04312085.js"; | |
import { | |
P as Zi | |
} from "./Popover-e1be8edd.js"; | |
import { | |
ImageViewerModal as ib | |
} from "./ImageViewerModal-93648707.js"; | |
import { | |
I as cb | |
} from "./info-4fcf7ea1.js"; | |
import { | |
R as Uu | |
} from "./Recipe-d18f4761.js"; | |
(function() { | |
try { | |
var t = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : {}, | |
e = new Error().stack; | |
e && (t._sentryDebugIds = t._sentryDebugIds || {}, t._sentryDebugIds[e] = "713640c8-09c6-4372-9ff7-1f3e5ac332af", t._sentryDebugIdIdentifier = "sentry-dbid-713640c8-09c6-4372-9ff7-1f3e5ac332af") | |
} catch (n) {} | |
})(); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const lb = pe("AlignCenter", [ | |
["line", { | |
x1: "21", | |
x2: "3", | |
y1: "6", | |
y2: "6", | |
key: "1fp77t" | |
}], | |
["line", { | |
x1: "17", | |
x2: "7", | |
y1: "12", | |
y2: "12", | |
key: "rsh8ii" | |
}], | |
["line", { | |
x1: "19", | |
x2: "5", | |
y1: "18", | |
y2: "18", | |
key: "1t0tuv" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const ub = pe("AlignRight", [ | |
["line", { | |
x1: "21", | |
x2: "3", | |
y1: "6", | |
y2: "6", | |
key: "1fp77t" | |
}], | |
["line", { | |
x1: "21", | |
x2: "9", | |
y1: "12", | |
y2: "12", | |
key: "1uyos4" | |
}], | |
["line", { | |
x1: "21", | |
x2: "7", | |
y1: "18", | |
y2: "18", | |
key: "1g9eri" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const pb = pe("Asterisk", [ | |
["path", { | |
d: "M12 6v12", | |
key: "1vza4d" | |
}], | |
["path", { | |
d: "M17.196 9 6.804 15", | |
key: "1ah31z" | |
}], | |
["path", { | |
d: "m6.804 9 10.392 6", | |
key: "1b6pxd" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const db = pe("CodeSquare", [ | |
["rect", { | |
width: "18", | |
height: "18", | |
x: "3", | |
y: "3", | |
rx: "2", | |
key: "afitv7" | |
}], | |
["path", { | |
d: "m10 10-2 2 2 2", | |
key: "p6et6i" | |
}], | |
["path", { | |
d: "m14 14 2-2-2-2", | |
key: "m075q2" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const mb = pe("Croissant", [ | |
["path", { | |
d: "m4.6 13.11 5.79-3.21c1.89-1.05 4.79 1.78 3.71 3.71l-3.22 5.81C8.8 23.16.79 15.23 4.6 13.11Z", | |
key: "1ozxlb" | |
}], | |
["path", { | |
d: "m10.5 9.5-1-2.29C9.2 6.48 8.8 6 8 6H4.5C2.79 6 2 6.5 2 8.5a7.71 7.71 0 0 0 2 4.83", | |
key: "ffuyb5" | |
}], | |
["path", { | |
d: "M8 6c0-1.55.24-4-2-4-2 0-2.5 2.17-2.5 4", | |
key: "osnpzi" | |
}], | |
["path", { | |
d: "m14.5 13.5 2.29 1c.73.3 1.21.7 1.21 1.5v3.5c0 1.71-.5 2.5-2.5 2.5a7.71 7.71 0 0 1-4.83-2", | |
key: "1vubaw" | |
}], | |
["path", { | |
d: "M18 16c1.55 0 4-.24 4 2 0 2-2.17 2.5-4 2.5", | |
key: "wxr772" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const fb = pe("DollarSign", [ | |
["line", { | |
x1: "12", | |
x2: "12", | |
y1: "2", | |
y2: "22", | |
key: "7eqyqh" | |
}], | |
["path", { | |
d: "M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6", | |
key: "1b0p4s" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const hb = pe("Expand", [ | |
["path", { | |
d: "m21 21-6-6m6 6v-4.8m0 4.8h-4.8", | |
key: "1c15vz" | |
}], | |
["path", { | |
d: "M3 16.2V21m0 0h4.8M3 21l6-6", | |
key: "1fsnz2" | |
}], | |
["path", { | |
d: "M21 7.8V3m0 0h-4.8M21 3l-6 6", | |
key: "hawz9i" | |
}], | |
["path", { | |
d: "M3 7.8V3m0 0h4.8M3 3l6 6", | |
key: "u9ee12" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const gb = pe("Feather", [ | |
["path", { | |
d: "M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z", | |
key: "u4sw5n" | |
}], | |
["line", { | |
x1: "16", | |
x2: "2", | |
y1: "8", | |
y2: "22", | |
key: "1c47m2" | |
}], | |
["line", { | |
x1: "17.5", | |
x2: "9", | |
y1: "15", | |
y2: "15", | |
key: "2fj3pr" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const bb = pe("Heading1", [ | |
["path", { | |
d: "M4 12h8", | |
key: "17cfdx" | |
}], | |
["path", { | |
d: "M4 18V6", | |
key: "1rz3zl" | |
}], | |
["path", { | |
d: "M12 18V6", | |
key: "zqpxq5" | |
}], | |
["path", { | |
d: "m17 12 3-2v8", | |
key: "1hhhft" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const vb = pe("Heading2", [ | |
["path", { | |
d: "M4 12h8", | |
key: "17cfdx" | |
}], | |
["path", { | |
d: "M4 18V6", | |
key: "1rz3zl" | |
}], | |
["path", { | |
d: "M12 18V6", | |
key: "zqpxq5" | |
}], | |
["path", { | |
d: "M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1", | |
key: "9jr5yi" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const xb = pe("Heading3", [ | |
["path", { | |
d: "M4 12h8", | |
key: "17cfdx" | |
}], | |
["path", { | |
d: "M4 18V6", | |
key: "1rz3zl" | |
}], | |
["path", { | |
d: "M12 18V6", | |
key: "zqpxq5" | |
}], | |
["path", { | |
d: "M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2", | |
key: "68ncm8" | |
}], | |
["path", { | |
d: "M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2", | |
key: "1ejuhz" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const yb = pe("Heading4", [ | |
["path", { | |
d: "M4 12h8", | |
key: "17cfdx" | |
}], | |
["path", { | |
d: "M4 18V6", | |
key: "1rz3zl" | |
}], | |
["path", { | |
d: "M12 18V6", | |
key: "zqpxq5" | |
}], | |
["path", { | |
d: "M17 10v4h4", | |
key: "13sv97" | |
}], | |
["path", { | |
d: "M21 10v8", | |
key: "1kdml4" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const wb = pe("Heading5", [ | |
["path", { | |
d: "M4 12h8", | |
key: "17cfdx" | |
}], | |
["path", { | |
d: "M4 18V6", | |
key: "1rz3zl" | |
}], | |
["path", { | |
d: "M12 18V6", | |
key: "zqpxq5" | |
}], | |
["path", { | |
d: "M17 13v-3h4", | |
key: "1nvgqp" | |
}], | |
["path", { | |
d: "M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17", | |
key: "2nebdn" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const kb = pe("Heading6", [ | |
["path", { | |
d: "M4 12h8", | |
key: "17cfdx" | |
}], | |
["path", { | |
d: "M4 18V6", | |
key: "1rz3zl" | |
}], | |
["path", { | |
d: "M12 18V6", | |
key: "zqpxq5" | |
}], | |
["circle", { | |
cx: "19", | |
cy: "16", | |
r: "2", | |
key: "15mx69" | |
}], | |
["path", { | |
d: "M20 10c-2 2-3 3.5-3 6", | |
key: "f35dl0" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const _b = pe("Heading", [ | |
["path", { | |
d: "M6 12h12", | |
key: "8npq4p" | |
}], | |
["path", { | |
d: "M6 20V4", | |
key: "1w1bmo" | |
}], | |
["path", { | |
d: "M18 20V4", | |
key: "o2hl4u" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Cb = pe("HelpCircle", [ | |
["circle", { | |
cx: "12", | |
cy: "12", | |
r: "10", | |
key: "1mglay" | |
}], | |
["path", { | |
d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", | |
key: "1u773s" | |
}], | |
["path", { | |
d: "M12 17h.01", | |
key: "p32p05" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Eb = pe("ImageOff", [ | |
["line", { | |
x1: "2", | |
x2: "22", | |
y1: "2", | |
y2: "22", | |
key: "a6p6uj" | |
}], | |
["path", { | |
d: "M10.41 10.41a2 2 0 1 1-2.83-2.83", | |
key: "1bzlo9" | |
}], | |
["line", { | |
x1: "13.5", | |
x2: "6", | |
y1: "13.5", | |
y2: "21", | |
key: "1q0aeu" | |
}], | |
["line", { | |
x1: "18", | |
x2: "21", | |
y1: "12", | |
y2: "15", | |
key: "5mozeu" | |
}], | |
["path", { | |
d: "M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59", | |
key: "mmje98" | |
}], | |
["path", { | |
d: "M21 15V5a2 2 0 0 0-2-2H9", | |
key: "43el77" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Qi = pe("Indent", [ | |
["polyline", { | |
points: "3 8 7 12 3 16", | |
key: "f3rxhf" | |
}], | |
["line", { | |
x1: "21", | |
x2: "11", | |
y1: "12", | |
y2: "12", | |
key: "1fxxak" | |
}], | |
["line", { | |
x1: "21", | |
x2: "11", | |
y1: "6", | |
y2: "6", | |
key: "asgu94" | |
}], | |
["line", { | |
x1: "21", | |
x2: "11", | |
y1: "18", | |
y2: "18", | |
key: "13dsj7" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Ab = pe("Maximize2", [ | |
["polyline", { | |
points: "15 3 21 3 21 9", | |
key: "mznyad" | |
}], | |
["polyline", { | |
points: "9 21 3 21 3 15", | |
key: "1avn1i" | |
}], | |
["line", { | |
x1: "21", | |
x2: "14", | |
y1: "3", | |
y2: "10", | |
key: "ota7mn" | |
}], | |
["line", { | |
x1: "3", | |
x2: "10", | |
y1: "21", | |
y2: "14", | |
key: "1atl0r" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Sb = pe("MessageSquareQuote", [ | |
["path", { | |
d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z", | |
key: "1lielz" | |
}], | |
["path", { | |
d: "M8 12a2 2 0 0 0 2-2V8H8", | |
key: "1jfesj" | |
}], | |
["path", { | |
d: "M14 12a2 2 0 0 0 2-2V8h-2", | |
key: "1dq9mh" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Go = pe("Mic", [ | |
["path", { | |
d: "M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z", | |
key: "131961" | |
}], | |
["path", { | |
d: "M19 10v2a7 7 0 0 1-14 0v-2", | |
key: "1vc78b" | |
}], | |
["line", { | |
x1: "12", | |
x2: "12", | |
y1: "19", | |
y2: "22", | |
key: "x3vr5v" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Tb = pe("MoveDiagonal2", [ | |
["polyline", { | |
points: "5 11 5 5 11 5", | |
key: "ncfzxk" | |
}], | |
["polyline", { | |
points: "19 13 19 19 13 19", | |
key: "1mk7hk" | |
}], | |
["line", { | |
x1: "5", | |
x2: "19", | |
y1: "5", | |
y2: "19", | |
key: "mcyte3" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Db = pe("Pilcrow", [ | |
["path", { | |
d: "M13 4v16", | |
key: "8vvj80" | |
}], | |
["path", { | |
d: "M17 4v16", | |
key: "7dpous" | |
}], | |
["path", { | |
d: "M19 4H9.5a4.5 4.5 0 0 0 0 9H13", | |
key: "sh4n9v" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Ib = pe("PlaySquare", [ | |
["rect", { | |
width: "18", | |
height: "18", | |
x: "3", | |
y: "3", | |
rx: "2", | |
key: "afitv7" | |
}], | |
["path", { | |
d: "m9 8 6 4-6 4Z", | |
key: "f1r3lt" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Nb = pe("Redo", [ | |
["path", { | |
d: "M21 7v6h-6", | |
key: "3ptur4" | |
}], | |
["path", { | |
d: "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7", | |
key: "1kgawr" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Mb = pe("Sigma", [ | |
["path", { | |
d: "M18 7V4H6l6 8-6 8h12v-3", | |
key: "zis8ev" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Ob = pe("Undo", [ | |
["path", { | |
d: "M3 7v6h6", | |
key: "1v2h90" | |
}], | |
["path", { | |
d: "M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13", | |
key: "1r6uu6" | |
}] | |
]); | |
/** | |
* @license lucide-preact v0.323.0 - ISC | |
* | |
* This source code is licensed under the ISC license. | |
* See the LICENSE file in the root directory of this source tree. | |
*/ | |
const Lb = pe("Wand", [ | |
["path", { | |
d: "M15 4V2", | |
key: "z1p9b7" | |
}], | |
["path", { | |
d: "M15 16v-2", | |
key: "px0unx" | |
}], | |
["path", { | |
d: "M8 9h2", | |
key: "1g203m" | |
}], | |
["path", { | |
d: "M20 9h2", | |
key: "19tzq7" | |
}], | |
["path", { | |
d: "M17.8 11.8 19 13", | |
key: "yihg8r" | |
}], | |
["path", { | |
d: "M15 9h0", | |
key: "kg5t1u" | |
}], | |
["path", { | |
d: "M17.8 6.2 19 5", | |
key: "fd4us0" | |
}], | |
["path", { | |
d: "m3 21 9-9", | |
key: "1jfql5" | |
}], | |
["path", { | |
d: "M12.2 6.2 11 5", | |
key: "i3da3b" | |
}] | |
]); | |
function Rb() { | |
for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n]; | |
return de(() => s => { | |
e.forEach(a => a(s)) | |
}, e) | |
} | |
const Da = typeof window != "undefined" && typeof window.document != "undefined" && typeof window.document.createElement != "undefined"; | |
function Nn(t) { | |
const e = Object.prototype.toString.call(t); | |
return e === "[object Window]" || e === "[object global]" | |
} | |
function Sr(t) { | |
return "nodeType" in t | |
} | |
function je(t) { | |
var e, n; | |
return t ? Nn(t) ? t : Sr(t) && (e = (n = t.ownerDocument) == null ? void 0 : n.defaultView) != null ? e : window : window | |
} | |
function Tr(t) { | |
const { | |
Document: e | |
} = je(t); | |
return t instanceof e | |
} | |
function hs(t) { | |
return Nn(t) ? !1 : t instanceof je(t).HTMLElement | |
} | |
function Pb(t) { | |
return t instanceof je(t).SVGElement | |
} | |
function Mn(t) { | |
return t ? Nn(t) ? t.document : Sr(t) ? Tr(t) ? t : hs(t) ? t.ownerDocument : document : document : document | |
} | |
const Qe = Da ? wf : U; | |
function Ia(t) { | |
const e = J(t); | |
return Qe(() => { | |
e.current = t | |
}), we(function() { | |
for (var n = arguments.length, s = new Array(n), a = 0; a < n; a++) s[a] = arguments[a]; | |
return e.current == null ? void 0 : e.current(...s) | |
}, []) | |
} | |
function Bb() { | |
const t = J(null), | |
e = we((s, a) => { | |
t.current = setInterval(s, a) | |
}, []), | |
n = we(() => { | |
t.current !== null && (clearInterval(t.current), t.current = null) | |
}, []); | |
return [e, n] | |
} | |
function is(t, e) { | |
e === void 0 && (e = [t]); | |
const n = J(t); | |
return Qe(() => { | |
n.current !== t && (n.current = t) | |
}, e), n | |
} | |
function gs(t, e) { | |
const n = J(); | |
return de(() => { | |
const s = t(n.current); | |
return n.current = s, s | |
}, [...e]) | |
} | |
function aa(t) { | |
const e = Ia(t), | |
n = J(null), | |
s = we(a => { | |
a !== n.current && (e == null || e(a, n.current)), n.current = a | |
}, []); | |
return [n, s] | |
} | |
function oa(t) { | |
const e = J(); | |
return U(() => { | |
e.current = t | |
}, [t]), e.current | |
} | |
let no = {}; | |
function bs(t, e) { | |
return de(() => { | |
if (e) return e; | |
const n = no[t] == null ? 0 : no[t] + 1; | |
return no[t] = n, t + "-" + n | |
}, [t, e]) | |
} | |
function Vu(t) { | |
return function(e) { | |
for (var n = arguments.length, s = new Array(n > 1 ? n - 1 : 0), a = 1; a < n; a++) s[a - 1] = arguments[a]; | |
return s.reduce((o, r) => { | |
const i = Object.entries(r); | |
for (const [c, l] of i) { | |
const u = o[c]; | |
u != null && (o[c] = u + t * l) | |
} | |
return o | |
}, S({}, e)) | |
} | |
} | |
const xn = Vu(1), | |
cs = Vu(-1); | |
function zb(t) { | |
return "clientX" in t && "clientY" in t | |
} | |
function Na(t) { | |
if (!t) return !1; | |
const { | |
KeyboardEvent: e | |
} = je(t.target); | |
return e && t instanceof e | |
} | |
function qb(t) { | |
if (!t) return !1; | |
const { | |
TouchEvent: e | |
} = je(t.target); | |
return e && t instanceof e | |
} | |
function ra(t) { | |
if (qb(t)) { | |
if (t.touches && t.touches.length) { | |
const { | |
clientX: e, | |
clientY: n | |
} = t.touches[0]; | |
return { | |
x: e, | |
y: n | |
} | |
} else if (t.changedTouches && t.changedTouches.length) { | |
const { | |
clientX: e, | |
clientY: n | |
} = t.changedTouches[0]; | |
return { | |
x: e, | |
y: n | |
} | |
} | |
} | |
return zb(t) ? { | |
x: t.clientX, | |
y: t.clientY | |
} : null | |
} | |
const Ht = Object.freeze({ | |
Translate: { | |
toString(t) { | |
if (!t) return; | |
const { | |
x: e, | |
y: n | |
} = t; | |
return "translate3d(" + (e ? Math.round(e) : 0) + "px, " + (n ? Math.round(n) : 0) + "px, 0)" | |
} | |
}, | |
Scale: { | |
toString(t) { | |
if (!t) return; | |
const { | |
scaleX: e, | |
scaleY: n | |
} = t; | |
return "scaleX(" + e + ") scaleY(" + n + ")" | |
} | |
}, | |
Transform: { | |
toString(t) { | |
if (t) return [Ht.Translate.toString(t), Ht.Scale.toString(t)].join(" ") | |
} | |
}, | |
Transition: { | |
toString(t) { | |
let { | |
property: e, | |
duration: n, | |
easing: s | |
} = t; | |
return e + " " + n + "ms " + s | |
} | |
} | |
}), | |
ec = "a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]"; | |
function Fb(t) { | |
return t.matches(ec) ? t : t.querySelector(ec) | |
} | |
const jb = { | |
display: "none" | |
}; | |
function $b(t) { | |
let { | |
id: e, | |
value: n | |
} = t; | |
return ge.createElement("div", { | |
id: e, | |
style: jb | |
}, n) | |
} | |
const Ub = { | |
position: "fixed", | |
width: 1, | |
height: 1, | |
margin: -1, | |
border: 0, | |
padding: 0, | |
overflow: "hidden", | |
clip: "rect(0 0 0 0)", | |
clipPath: "inset(100%)", | |
whiteSpace: "nowrap" | |
}; | |
function Vb(t) { | |
let { | |
id: e, | |
announcement: n | |
} = t; | |
return ge.createElement("div", { | |
id: e, | |
style: Ub, | |
role: "status", | |
"aria-live": "assertive", | |
"aria-atomic": !0 | |
}, n) | |
} | |
function Hb() { | |
const [t, e] = z(""); | |
return { | |
announce: we(s => { | |
s != null && e(s) | |
}, []), | |
announcement: t | |
} | |
} | |
const Hu = In(null); | |
function Gb(t) { | |
const e = Nt(Hu); | |
U(() => { | |
if (!e) throw new Error("useDndMonitor must be used within a children of <DndContext>"); | |
return e(t) | |
}, [t, e]) | |
} | |
function Wb() { | |
const [t] = z(() => new Set), e = we(s => (t.add(s), () => t.delete(s)), [t]); | |
return [we(s => { | |
let { | |
type: a, | |
event: o | |
} = s; | |
t.forEach(r => { | |
var i; | |
return (i = r[a]) == null ? void 0 : i.call(r, o) | |
}) | |
}, [t]), e] | |
} | |
const Jb = { | |
draggable: ` | |
To pick up a draggable item, press the space bar. | |
While dragging, use the arrow keys to move the item. | |
Press space again to drop the item in its new position, or press escape to cancel. | |
` | |
}, | |
Yb = { | |
onDragStart(t) { | |
let { | |
active: e | |
} = t; | |
return "Picked up draggable item " + e.id + "." | |
}, | |
onDragOver(t) { | |
let { | |
active: e, | |
over: n | |
} = t; | |
return n ? "Draggable item " + e.id + " was moved over droppable area " + n.id + "." : "Draggable item " + e.id + " is no longer over a droppable area." | |
}, | |
onDragEnd(t) { | |
let { | |
active: e, | |
over: n | |
} = t; | |
return n ? "Draggable item " + e.id + " was dropped over droppable area " + n.id : "Draggable item " + e.id + " was dropped." | |
}, | |
onDragCancel(t) { | |
let { | |
active: e | |
} = t; | |
return "Dragging was cancelled. Draggable item " + e.id + " was dropped." | |
} | |
}; | |
function Kb(t) { | |
let { | |
announcements: e = Yb, | |
container: n, | |
hiddenTextDescribedById: s, | |
screenReaderInstructions: a = Jb | |
} = t; | |
const { | |
announce: o, | |
announcement: r | |
} = Hb(), i = bs("DndLiveRegion"), [c, l] = z(!1); | |
if (U(() => { | |
l(!0) | |
}, []), Gb(de(() => ({ | |
onDragStart(d) { | |
let { | |
active: m | |
} = d; | |
o(e.onDragStart({ | |
active: m | |
})) | |
}, | |
onDragMove(d) { | |
let { | |
active: m, | |
over: f | |
} = d; | |
e.onDragMove && o(e.onDragMove({ | |
active: m, | |
over: f | |
})) | |
}, | |
onDragOver(d) { | |
let { | |
active: m, | |
over: f | |
} = d; | |
o(e.onDragOver({ | |
active: m, | |
over: f | |
})) | |
}, | |
onDragEnd(d) { | |
let { | |
active: m, | |
over: f | |
} = d; | |
o(e.onDragEnd({ | |
active: m, | |
over: f | |
})) | |
}, | |
onDragCancel(d) { | |
let { | |
active: m, | |
over: f | |
} = d; | |
o(e.onDragCancel({ | |
active: m, | |
over: f | |
})) | |
} | |
}), [o, e])), !c) return null; | |
const u = ge.createElement(ge.Fragment, null, ge.createElement($b, { | |
id: s, | |
value: a.draggable | |
}), ge.createElement(Vb, { | |
id: i, | |
announcement: r | |
})); | |
return n ? ya(u, n) : u | |
} | |
var Ce; | |
(function(t) { | |
t.DragStart = "dragStart", t.DragMove = "dragMove", t.DragEnd = "dragEnd", t.DragCancel = "dragCancel", t.DragOver = "dragOver", t.RegisterDroppable = "registerDroppable", t.SetDroppableDisabled = "setDroppableDisabled", t.UnregisterDroppable = "unregisterDroppable" | |
})(Ce || (Ce = {})); | |
function ia() {} | |
function tc(t, e) { | |
return de(() => ({ | |
sensor: t, | |
options: e != null ? e : {} | |
}), [t, e]) | |
} | |
function Xb() { | |
for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n]; | |
return de(() => [...e].filter(s => s != null), [...e]) | |
} | |
const ct = Object.freeze({ | |
x: 0, | |
y: 0 | |
}); | |
function Gu(t, e) { | |
return Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2)) | |
} | |
function Zb(t, e) { | |
const n = ra(t); | |
if (!n) return "0 0"; | |
const s = { | |
x: (n.x - e.left) / e.width * 100, | |
y: (n.y - e.top) / e.height * 100 | |
}; | |
return s.x + "% " + s.y + "%" | |
} | |
function Wu(t, e) { | |
let { | |
data: { | |
value: n | |
} | |
} = t, { | |
data: { | |
value: s | |
} | |
} = e; | |
return n - s | |
} | |
function Qb(t, e) { | |
let { | |
data: { | |
value: n | |
} | |
} = t, { | |
data: { | |
value: s | |
} | |
} = e; | |
return s - n | |
} | |
function nc(t) { | |
let { | |
left: e, | |
top: n, | |
height: s, | |
width: a | |
} = t; | |
return [{ | |
x: e, | |
y: n | |
}, { | |
x: e + a, | |
y: n | |
}, { | |
x: e, | |
y: n + s | |
}, { | |
x: e + a, | |
y: n + s | |
}] | |
} | |
function Ju(t, e) { | |
if (!t || t.length === 0) return null; | |
const [n] = t; | |
return e ? n[e] : n | |
} | |
function sc(t, e, n) { | |
return e === void 0 && (e = t.left), n === void 0 && (n = t.top), { | |
x: e + t.width * .5, | |
y: n + t.height * .5 | |
} | |
} | |
const ev = t => { | |
let { | |
collisionRect: e, | |
droppableRects: n, | |
droppableContainers: s | |
} = t; | |
const a = sc(e, e.left, e.top), | |
o = []; | |
for (const r of s) { | |
const { | |
id: i | |
} = r, c = n.get(i); | |
if (c) { | |
const l = Gu(sc(c), a); | |
o.push({ | |
id: i, | |
data: { | |
droppableContainer: r, | |
value: l | |
} | |
}) | |
} | |
} | |
return o.sort(Wu) | |
}, | |
tv = t => { | |
let { | |
collisionRect: e, | |
droppableRects: n, | |
droppableContainers: s | |
} = t; | |
const a = nc(e), | |
o = []; | |
for (const r of s) { | |
const { | |
id: i | |
} = r, c = n.get(i); | |
if (c) { | |
const l = nc(c), | |
u = a.reduce((m, f, h) => m + Gu(l[h], f), 0), | |
d = Number((u / 4).toFixed(4)); | |
o.push({ | |
id: i, | |
data: { | |
droppableContainer: r, | |
value: d | |
} | |
}) | |
} | |
} | |
return o.sort(Wu) | |
}; | |
function nv(t, e) { | |
const n = Math.max(e.top, t.top), | |
s = Math.max(e.left, t.left), | |
a = Math.min(e.left + e.width, t.left + t.width), | |
o = Math.min(e.top + e.height, t.top + t.height), | |
r = a - s, | |
i = o - n; | |
if (s < a && n < o) { | |
const c = e.width * e.height, | |
l = t.width * t.height, | |
u = r * i, | |
d = u / (c + l - u); | |
return Number(d.toFixed(4)) | |
} | |
return 0 | |
} | |
const sv = t => { | |
let { | |
collisionRect: e, | |
droppableRects: n, | |
droppableContainers: s | |
} = t; | |
const a = []; | |
for (const o of s) { | |
const { | |
id: r | |
} = o, i = n.get(r); | |
if (i) { | |
const c = nv(i, e); | |
c > 0 && a.push({ | |
id: r, | |
data: { | |
droppableContainer: o, | |
value: c | |
} | |
}) | |
} | |
} | |
return a.sort(Qb) | |
}; | |
function av(t, e, n) { | |
return P(S({}, t), { | |
scaleX: e && n ? e.width / n.width : 1, | |
scaleY: e && n ? e.height / n.height : 1 | |
}) | |
} | |
function Yu(t, e) { | |
return t && e ? { | |
x: t.left - e.left, | |
y: t.top - e.top | |
} : ct | |
} | |
function ov(t) { | |
return function(n) { | |
for (var s = arguments.length, a = new Array(s > 1 ? s - 1 : 0), o = 1; o < s; o++) a[o - 1] = arguments[o]; | |
return a.reduce((r, i) => P(S({}, r), { | |
top: r.top + t * i.y, | |
bottom: r.bottom + t * i.y, | |
left: r.left + t * i.x, | |
right: r.right + t * i.x | |
}), S({}, n)) | |
} | |
} | |
const rv = ov(1); | |
function Ku(t) { | |
if (t.startsWith("matrix3d(")) { | |
const e = t.slice(9, -1).split(/, /); | |
return { | |
x: +e[12], | |
y: +e[13], | |
scaleX: +e[0], | |
scaleY: +e[5] | |
} | |
} else if (t.startsWith("matrix(")) { | |
const e = t.slice(7, -1).split(/, /); | |
return { | |
x: +e[4], | |
y: +e[5], | |
scaleX: +e[0], | |
scaleY: +e[3] | |
} | |
} | |
return null | |
} | |
function iv(t, e, n) { | |
const s = Ku(e); | |
if (!s) return t; | |
const { | |
scaleX: a, | |
scaleY: o, | |
x: r, | |
y: i | |
} = s, c = t.left - r - (1 - a) * parseFloat(n), l = t.top - i - (1 - o) * parseFloat(n.slice(n.indexOf(" ") + 1)), u = a ? t.width / a : t.width, d = o ? t.height / o : t.height; | |
return { | |
width: u, | |
height: d, | |
top: l, | |
right: c + u, | |
bottom: l + d, | |
left: c | |
} | |
} | |
const cv = { | |
ignoreTransform: !1 | |
}; | |
function On(t, e) { | |
e === void 0 && (e = cv); | |
let n = t.getBoundingClientRect(); | |
if (e.ignoreTransform) { | |
const { | |
getComputedStyle: l | |
} = je(t), { | |
transform: u, | |
transformOrigin: d | |
} = l(t); | |
u && (n = iv(n, u, d)) | |
} | |
const { | |
top: s, | |
left: a, | |
width: o, | |
height: r, | |
bottom: i, | |
right: c | |
} = n; | |
return { | |
top: s, | |
left: a, | |
width: o, | |
height: r, | |
bottom: i, | |
right: c | |
} | |
} | |
function ac(t) { | |
return On(t, { | |
ignoreTransform: !0 | |
}) | |
} | |
function lv(t) { | |
const e = t.innerWidth, | |
n = t.innerHeight; | |
return { | |
top: 0, | |
left: 0, | |
right: e, | |
bottom: n, | |
width: e, | |
height: n | |
} | |
} | |
function uv(t, e) { | |
return e === void 0 && (e = je(t).getComputedStyle(t)), e.position === "fixed" | |
} | |
function pv(t, e) { | |
e === void 0 && (e = je(t).getComputedStyle(t)); | |
const n = /(auto|scroll|overlay)/; | |
return ["overflow", "overflowX", "overflowY"].some(a => { | |
const o = e[a]; | |
return typeof o == "string" ? n.test(o) : !1 | |
}) | |
} | |
function Ma(t, e) { | |
const n = []; | |
function s(a) { | |
if (e != null && n.length >= e || !a) return n; | |
if (Tr(a) && a.scrollingElement != null && !n.includes(a.scrollingElement)) return n.push(a.scrollingElement), n; | |
if (!hs(a) || Pb(a) || n.includes(a)) return n; | |
const { | |
getComputedStyle: o | |
} = je(a), r = o(a); | |
return a !== t && pv(a, r) && n.push(a), uv(a, r) ? n : s(a.parentNode) | |
} | |
return t ? s(t) : n | |
} | |
function Xu(t) { | |
const [e] = Ma(t, 1); | |
return e != null ? e : null | |
} | |
function so(t) { | |
return !Da || !t ? null : Nn(t) ? t : Sr(t) ? Tr(t) || t === Mn(t).scrollingElement ? window : hs(t) ? t : null : null | |
} | |
function Zu(t) { | |
return Nn(t) ? t.scrollX : t.scrollLeft | |
} | |
function Qu(t) { | |
return Nn(t) ? t.scrollY : t.scrollTop | |
} | |
function Wo(t) { | |
return { | |
x: Zu(t), | |
y: Qu(t) | |
} | |
} | |
var Ie; | |
(function(t) { | |
t[t.Forward = 1] = "Forward", t[t.Backward = -1] = "Backward" | |
})(Ie || (Ie = {})); | |
function ep(t) { | |
return !Da || !t ? !1 : t === document.scrollingElement | |
} | |
function tp(t) { | |
const e = { | |
x: 0, | |
y: 0 | |
}, | |
n = ep(t) ? { | |
height: window.innerHeight, | |
width: window.innerWidth | |
} : { | |
height: t.clientHeight, | |
width: t.clientWidth | |
}, | |
s = { | |
x: t.scrollWidth - n.width, | |
y: t.scrollHeight - n.height | |
}, | |
a = t.scrollTop <= e.y, | |
o = t.scrollLeft <= e.x, | |
r = t.scrollTop >= s.y, | |
i = t.scrollLeft >= s.x; | |
return { | |
isTop: a, | |
isLeft: o, | |
isBottom: r, | |
isRight: i, | |
maxScroll: s, | |
minScroll: e | |
} | |
} | |
const dv = { | |
x: .2, | |
y: .2 | |
}; | |
function mv(t, e, n, s, a) { | |
let { | |
top: o, | |
left: r, | |
right: i, | |
bottom: c | |
} = n; | |
s === void 0 && (s = 10), a === void 0 && (a = dv); | |
const { | |
isTop: l, | |
isBottom: u, | |
isLeft: d, | |
isRight: m | |
} = tp(t), f = { | |
x: 0, | |
y: 0 | |
}, h = { | |
x: 0, | |
y: 0 | |
}, g = { | |
height: e.height * a.y, | |
width: e.width * a.x | |
}; | |
return !l && o <= e.top + g.height ? (f.y = Ie.Backward, h.y = s * Math.abs((e.top + g.height - o) / g.height)) : !u && c >= e.bottom - g.height && (f.y = Ie.Forward, h.y = s * Math.abs((e.bottom - g.height - c) / g.height)), !m && i >= e.right - g.width ? (f.x = Ie.Forward, h.x = s * Math.abs((e.right - g.width - i) / g.width)) : !d && r <= e.left + g.width && (f.x = Ie.Backward, h.x = s * Math.abs((e.left + g.width - r) / g.width)), { | |
direction: f, | |
speed: h | |
} | |
} | |
function fv(t) { | |
if (t === document.scrollingElement) { | |
const { | |
innerWidth: o, | |
innerHeight: r | |
} = window; | |
return { | |
top: 0, | |
left: 0, | |
right: o, | |
bottom: r, | |
width: o, | |
height: r | |
} | |
} | |
const { | |
top: e, | |
left: n, | |
right: s, | |
bottom: a | |
} = t.getBoundingClientRect(); | |
return { | |
top: e, | |
left: n, | |
right: s, | |
bottom: a, | |
width: t.clientWidth, | |
height: t.clientHeight | |
} | |
} | |
function np(t) { | |
return t.reduce((e, n) => xn(e, Wo(n)), ct) | |
} | |
function hv(t) { | |
return t.reduce((e, n) => e + Zu(n), 0) | |
} | |
function gv(t) { | |
return t.reduce((e, n) => e + Qu(n), 0) | |
} | |
function sp(t, e) { | |
if (e === void 0 && (e = On), !t) return; | |
const { | |
top: n, | |
left: s, | |
bottom: a, | |
right: o | |
} = e(t); | |
Xu(t) && (a <= 0 || o <= 0 || n >= window.innerHeight || s >= window.innerWidth) && t.scrollIntoView({ | |
block: "center", | |
inline: "center" | |
}) | |
} | |
const bv = [ | |
["x", ["left", "right"], hv], | |
["y", ["top", "bottom"], gv] | |
]; | |
class Dr { | |
constructor(e, n) { | |
this.rect = void 0, this.width = void 0, this.height = void 0, this.top = void 0, this.bottom = void 0, this.right = void 0, this.left = void 0; | |
const s = Ma(n), | |
a = np(s); | |
this.rect = S({}, e), this.width = e.width, this.height = e.height; | |
for (const [o, r, i] of bv) | |
for (const c of r) Object.defineProperty(this, c, { | |
get: () => { | |
const l = i(s), | |
u = a[o] - l; | |
return this.rect[c] + u | |
}, | |
enumerable: !0 | |
}); | |
Object.defineProperty(this, "rect", { | |
enumerable: !1 | |
}) | |
} | |
} | |
class Zn { | |
constructor(e) { | |
this.target = void 0, this.listeners = [], this.removeAll = () => { | |
this.listeners.forEach(n => { | |
var s; | |
return (s = this.target) == null ? void 0 : s.removeEventListener(...n) | |
}) | |
}, this.target = e | |
} | |
add(e, n, s) { | |
var a; | |
(a = this.target) == null || a.addEventListener(e, n, s), this.listeners.push([e, n, s]) | |
} | |
} | |
function vv(t) { | |
const { | |
EventTarget: e | |
} = je(t); | |
return t instanceof e ? t : Mn(t) | |
} | |
function ao(t, e) { | |
const n = Math.abs(t.x), | |
s = Math.abs(t.y); | |
return typeof e == "number" ? Math.sqrt(Xa(n, 2) + Xa(s, 2)) > e : "x" in e && "y" in e ? n > e.x && s > e.y : "x" in e ? n > e.x : "y" in e ? s > e.y : !1 | |
} | |
var Ze; | |
(function(t) { | |
t.Click = "click", t.DragStart = "dragstart", t.Keydown = "keydown", t.ContextMenu = "contextmenu", t.Resize = "resize", t.SelectionChange = "selectionchange", t.VisibilityChange = "visibilitychange" | |
})(Ze || (Ze = {})); | |
function oc(t) { | |
t.preventDefault() | |
} | |
function xv(t) { | |
t.stopPropagation() | |
} | |
var te; | |
(function(t) { | |
t.Space = "Space", t.Down = "ArrowDown", t.Right = "ArrowRight", t.Left = "ArrowLeft", t.Up = "ArrowUp", t.Esc = "Escape", t.Enter = "Enter" | |
})(te || (te = {})); | |
const ap = { | |
start: [te.Space, te.Enter], | |
cancel: [te.Esc], | |
end: [te.Space, te.Enter] | |
}, | |
yv = (t, e) => { | |
let { | |
currentCoordinates: n | |
} = e; | |
switch (t.code) { | |
case te.Right: | |
return P(S({}, n), { | |
x: n.x + 25 | |
}); | |
case te.Left: | |
return P(S({}, n), { | |
x: n.x - 25 | |
}); | |
case te.Down: | |
return P(S({}, n), { | |
y: n.y + 25 | |
}); | |
case te.Up: | |
return P(S({}, n), { | |
y: n.y - 25 | |
}) | |
} | |
}; | |
class Ir { | |
constructor(e) { | |
this.props = void 0, this.autoScrollEnabled = !1, this.referenceCoordinates = void 0, this.listeners = void 0, this.windowListeners = void 0, this.props = e; | |
const { | |
event: { | |
target: n | |
} | |
} = e; | |
this.props = e, this.listeners = new Zn(Mn(n)), this.windowListeners = new Zn(je(n)), this.handleKeyDown = this.handleKeyDown.bind(this), this.handleCancel = this.handleCancel.bind(this), this.attach() | |
} | |
attach() { | |
this.handleStart(), this.windowListeners.add(Ze.Resize, this.handleCancel), this.windowListeners.add(Ze.VisibilityChange, this.handleCancel), setTimeout(() => this.listeners.add(Ze.Keydown, this.handleKeyDown)) | |
} | |
handleStart() { | |
const { | |
activeNode: e, | |
onStart: n | |
} = this.props, s = e.node.current; | |
s && sp(s), n(ct) | |
} | |
handleKeyDown(e) { | |
if (Na(e)) { | |
const { | |
active: n, | |
context: s, | |
options: a | |
} = this.props, { | |
keyboardCodes: o = ap, | |
coordinateGetter: r = yv, | |
scrollBehavior: i = "smooth" | |
} = a, { | |
code: c | |
} = e; | |
if (o.end.includes(c)) { | |
this.handleEnd(e); | |
return | |
} | |
if (o.cancel.includes(c)) { | |
this.handleCancel(e); | |
return | |
} | |
const { | |
collisionRect: l | |
} = s.current, u = l ? { | |
x: l.left, | |
y: l.top | |
} : ct; | |
this.referenceCoordinates || (this.referenceCoordinates = u); | |
const d = r(e, { | |
active: n, | |
context: s.current, | |
currentCoordinates: u | |
}); | |
if (d) { | |
const m = cs(d, u), | |
f = { | |
x: 0, | |
y: 0 | |
}, | |
{ | |
scrollableAncestors: h | |
} = s.current; | |
for (const g of h) { | |
const b = e.code, | |
{ | |
isTop: x, | |
isRight: v, | |
isLeft: w, | |
isBottom: E, | |
maxScroll: _, | |
minScroll: k | |
} = tp(g), | |
M = fv(g), | |
y = { | |
x: Math.min(b === te.Right ? M.right - M.width / 2 : M.right, Math.max(b === te.Right ? M.left : M.left + M.width / 2, d.x)), | |
y: Math.min(b === te.Down ? M.bottom - M.height / 2 : M.bottom, Math.max(b === te.Down ? M.top : M.top + M.height / 2, d.y)) | |
}, | |
T = b === te.Right && !v || b === te.Left && !w, | |
D = b === te.Down && !E || b === te.Up && !x; | |
if (T && y.x !== d.x) { | |
const C = g.scrollLeft + m.x, | |
L = b === te.Right && C <= _.x || b === te.Left && C >= k.x; | |
if (L && !m.y) { | |
g.scrollTo({ | |
left: C, | |
behavior: i | |
}); | |
return | |
} | |
L ? f.x = g.scrollLeft - C : f.x = b === te.Right ? g.scrollLeft - _.x : g.scrollLeft - k.x, f.x && g.scrollBy({ | |
left: -f.x, | |
behavior: i | |
}); | |
break | |
} else if (D && y.y !== d.y) { | |
const C = g.scrollTop + m.y, | |
L = b === te.Down && C <= _.y || b === te.Up && C >= k.y; | |
if (L && !m.x) { | |
g.scrollTo({ | |
top: C, | |
behavior: i | |
}); | |
return | |
} | |
L ? f.y = g.scrollTop - C : f.y = b === te.Down ? g.scrollTop - _.y : g.scrollTop - k.y, f.y && g.scrollBy({ | |
top: -f.y, | |
behavior: i | |
}); | |
break | |
} | |
} | |
this.handleMove(e, xn(cs(d, this.referenceCoordinates), f)) | |
} | |
} | |
} | |
handleMove(e, n) { | |
const { | |
onMove: s | |
} = this.props; | |
e.preventDefault(), s(n) | |
} | |
handleEnd(e) { | |
const { | |
onEnd: n | |
} = this.props; | |
e.preventDefault(), this.detach(), n() | |
} | |
handleCancel(e) { | |
const { | |
onCancel: n | |
} = this.props; | |
e.preventDefault(), this.detach(), n() | |
} | |
detach() { | |
this.listeners.removeAll(), this.windowListeners.removeAll() | |
} | |
} | |
Ir.activators = [{ | |
eventName: "onKeyDown", | |
handler: (t, e, n) => { | |
let { | |
keyboardCodes: s = ap, | |
onActivation: a | |
} = e, { | |
active: o | |
} = n; | |
const { | |
code: r | |
} = t.nativeEvent; | |
if (s.start.includes(r)) { | |
const i = o.activatorNode.current; | |
return i && t.target !== i ? !1 : (t.preventDefault(), a == null || a({ | |
event: t.nativeEvent | |
}), !0) | |
} | |
return !1 | |
} | |
}]; | |
function rc(t) { | |
return !!(t && "distance" in t) | |
} | |
function ic(t) { | |
return !!(t && "delay" in t) | |
} | |
class Nr { | |
constructor(e, n, s) { | |
var a; | |
s === void 0 && (s = vv(e.event.target)), this.props = void 0, this.events = void 0, this.autoScrollEnabled = !0, this.document = void 0, this.activated = !1, this.initialCoordinates = void 0, this.timeoutId = null, this.listeners = void 0, this.documentListeners = void 0, this.windowListeners = void 0, this.props = e, this.events = n; | |
const { | |
event: o | |
} = e, { | |
target: r | |
} = o; | |
this.props = e, this.events = n, this.document = Mn(r), this.documentListeners = new Zn(this.document), this.listeners = new Zn(s), this.windowListeners = new Zn(je(r)), this.initialCoordinates = (a = ra(o)) != null ? a : ct, this.handleStart = this.handleStart.bind(this), this.handleMove = this.handleMove.bind(this), this.handleEnd = this.handleEnd.bind(this), this.handleCancel = this.handleCancel.bind(this), this.handleKeydown = this.handleKeydown.bind(this), this.removeTextSelection = this.removeTextSelection.bind(this), this.attach() | |
} | |
attach() { | |
const { | |
events: e, | |
props: { | |
options: { | |
activationConstraint: n | |
} | |
} | |
} = this; | |
if (this.listeners.add(e.move.name, this.handleMove, { | |
passive: !1 | |
}), this.listeners.add(e.end.name, this.handleEnd), this.windowListeners.add(Ze.Resize, this.handleCancel), this.windowListeners.add(Ze.DragStart, oc), this.windowListeners.add(Ze.VisibilityChange, this.handleCancel), this.windowListeners.add(Ze.ContextMenu, oc), this.documentListeners.add(Ze.Keydown, this.handleKeydown), n) { | |
if (rc(n)) return; | |
if (ic(n)) { | |
this.timeoutId = setTimeout(this.handleStart, n.delay); | |
return | |
} | |
} | |
this.handleStart() | |
} | |
detach() { | |
this.listeners.removeAll(), this.windowListeners.removeAll(), setTimeout(this.documentListeners.removeAll, 50), this.timeoutId !== null && (clearTimeout(this.timeoutId), this.timeoutId = null) | |
} | |
handleStart() { | |
const { | |
initialCoordinates: e | |
} = this, { | |
onStart: n | |
} = this.props; | |
e && (this.activated = !0, this.documentListeners.add(Ze.Click, xv, { | |
capture: !0 | |
}), this.removeTextSelection(), this.documentListeners.add(Ze.SelectionChange, this.removeTextSelection), n(e)) | |
} | |
handleMove(e) { | |
var n; | |
const { | |
activated: s, | |
initialCoordinates: a, | |
props: o | |
} = this, { | |
onMove: r, | |
options: { | |
activationConstraint: i | |
} | |
} = o; | |
if (!a) return; | |
const c = (n = ra(e)) != null ? n : ct, | |
l = cs(a, c); | |
if (!s && i) { | |
if (ic(i)) return ao(l, i.tolerance) ? this.handleCancel() : void 0; | |
if (rc(i)) return i.tolerance != null && ao(l, i.tolerance) ? this.handleCancel() : ao(l, i.distance) ? this.handleStart() : void 0 | |
} | |
e.cancelable && e.preventDefault(), r(c) | |
} | |
handleEnd() { | |
const { | |
onEnd: e | |
} = this.props; | |
this.detach(), e() | |
} | |
handleCancel() { | |
const { | |
onCancel: e | |
} = this.props; | |
this.detach(), e() | |
} | |
handleKeydown(e) { | |
e.code === te.Esc && this.handleCancel() | |
} | |
removeTextSelection() { | |
var e; | |
(e = this.document.getSelection()) == null || e.removeAllRanges() | |
} | |
} | |
const wv = { | |
move: { | |
name: "pointermove" | |
}, | |
end: { | |
name: "pointerup" | |
} | |
}; | |
class Mr extends Nr { | |
constructor(e) { | |
const { | |
event: n | |
} = e, s = Mn(n.target); | |
super(e, wv, s) | |
} | |
} | |
Mr.activators = [{ | |
eventName: "onPointerDown", | |
handler: (t, e) => { | |
let { | |
nativeEvent: n | |
} = t, { | |
onActivation: s | |
} = e; | |
return !n.isPrimary || n.button !== 0 ? !1 : (s == null || s({ | |
event: n | |
}), !0) | |
} | |
}]; | |
const kv = { | |
move: { | |
name: "mousemove" | |
}, | |
end: { | |
name: "mouseup" | |
} | |
}; | |
var Jo; | |
(function(t) { | |
t[t.RightClick = 2] = "RightClick" | |
})(Jo || (Jo = {})); | |
class _v extends Nr { | |
constructor(e) { | |
super(e, kv, Mn(e.event.target)) | |
} | |
} | |
_v.activators = [{ | |
eventName: "onMouseDown", | |
handler: (t, e) => { | |
let { | |
nativeEvent: n | |
} = t, { | |
onActivation: s | |
} = e; | |
return n.button === Jo.RightClick ? !1 : (s == null || s({ | |
event: n | |
}), !0) | |
} | |
}]; | |
const oo = { | |
move: { | |
name: "touchmove" | |
}, | |
end: { | |
name: "touchend" | |
} | |
}; | |
class Cv extends Nr { | |
constructor(e) { | |
super(e, oo) | |
} | |
static setup() { | |
return window.addEventListener(oo.move.name, e, { | |
capture: !1, | |
passive: !1 | |
}), | |
function() { | |
window.removeEventListener(oo.move.name, e) | |
}; | |
function e() {} | |
} | |
} | |
Cv.activators = [{ | |
eventName: "onTouchStart", | |
handler: (t, e) => { | |
let { | |
nativeEvent: n | |
} = t, { | |
onActivation: s | |
} = e; | |
const { | |
touches: a | |
} = n; | |
return a.length > 1 ? !1 : (s == null || s({ | |
event: n | |
}), !0) | |
} | |
}]; | |
var Qn; | |
(function(t) { | |
t[t.Pointer = 0] = "Pointer", t[t.DraggableRect = 1] = "DraggableRect" | |
})(Qn || (Qn = {})); | |
var ca; | |
(function(t) { | |
t[t.TreeOrder = 0] = "TreeOrder", t[t.ReversedTreeOrder = 1] = "ReversedTreeOrder" | |
})(ca || (ca = {})); | |
function Ev(t) { | |
let { | |
acceleration: e, | |
activator: n = Qn.Pointer, | |
canScroll: s, | |
draggingRect: a, | |
enabled: o, | |
interval: r = 5, | |
order: i = ca.TreeOrder, | |
pointerCoordinates: c, | |
scrollableAncestors: l, | |
scrollableAncestorRects: u, | |
delta: d, | |
threshold: m | |
} = t; | |
const f = Sv({ | |
delta: d, | |
disabled: !o | |
}), | |
[h, g] = Bb(), | |
b = J({ | |
x: 0, | |
y: 0 | |
}), | |
x = J({ | |
x: 0, | |
y: 0 | |
}), | |
v = de(() => { | |
switch (n) { | |
case Qn.Pointer: | |
return c ? { | |
top: c.y, | |
bottom: c.y, | |
left: c.x, | |
right: c.x | |
} : null; | |
case Qn.DraggableRect: | |
return a | |
} | |
}, [n, a, c]), | |
w = J(null), | |
E = we(() => { | |
const k = w.current; | |
if (!k) return; | |
const M = b.current.x * x.current.x, | |
y = b.current.y * x.current.y; | |
k.scrollBy(M, y) | |
}, []), | |
_ = de(() => i === ca.TreeOrder ? [...l].reverse() : l, [i, l]); | |
U(() => { | |
if (!o || !l.length || !v) { | |
g(); | |
return | |
} | |
for (const k of _) { | |
if ((s == null ? void 0 : s(k)) === !1) continue; | |
const M = l.indexOf(k), | |
y = u[M]; | |
if (!y) continue; | |
const { | |
direction: T, | |
speed: D | |
} = mv(k, y, v, e, m); | |
for (const C of ["x", "y"]) f[C][T[C]] || (D[C] = 0, T[C] = 0); | |
if (D.x > 0 || D.y > 0) { | |
g(), w.current = k, h(E, r), b.current = D, x.current = T; | |
return | |
} | |
} | |
b.current = { | |
x: 0, | |
y: 0 | |
}, x.current = { | |
x: 0, | |
y: 0 | |
}, g() | |
}, [e, E, s, g, o, r, JSON.stringify(v), JSON.stringify(f), h, l, _, u, JSON.stringify(m)]) | |
} | |
const Av = { | |
x: { | |
[Ie.Backward]: !1, | |
[Ie.Forward]: !1 | |
}, | |
y: { | |
[Ie.Backward]: !1, | |
[Ie.Forward]: !1 | |
} | |
}; | |
function Sv(t) { | |
let { | |
delta: e, | |
disabled: n | |
} = t; | |
const s = oa(e); | |
return gs(a => { | |
if (n || !s || !a) return Av; | |
const o = { | |
x: Math.sign(e.x - s.x), | |
y: Math.sign(e.y - s.y) | |
}; | |
return { | |
x: { | |
[Ie.Backward]: a.x[Ie.Backward] || o.x === -1, | |
[Ie.Forward]: a.x[Ie.Forward] || o.x === 1 | |
}, | |
y: { | |
[Ie.Backward]: a.y[Ie.Backward] || o.y === -1, | |
[Ie.Forward]: a.y[Ie.Forward] || o.y === 1 | |
} | |
} | |
}, [n, e, s]) | |
} | |
function Tv(t, e) { | |
const n = e !== null ? t.get(e) : void 0, | |
s = n ? n.node.current : null; | |
return gs(a => { | |
var o; | |
return e === null ? null : (o = s != null ? s : a) != null ? o : null | |
}, [s, e]) | |
} | |
function Dv(t, e) { | |
return de(() => t.reduce((n, s) => { | |
const { | |
sensor: a | |
} = s, o = a.activators.map(r => ({ | |
eventName: r.eventName, | |
handler: e(r.handler, s) | |
})); | |
return [...n, ...o] | |
}, []), [t, e]) | |
} | |
var ls; | |
(function(t) { | |
t[t.Always = 0] = "Always", t[t.BeforeDragging = 1] = "BeforeDragging", t[t.WhileDragging = 2] = "WhileDragging" | |
})(ls || (ls = {})); | |
var Yo; | |
(function(t) { | |
t.Optimized = "optimized" | |
})(Yo || (Yo = {})); | |
const cc = new Map; | |
function Iv(t, e) { | |
let { | |
dragging: n, | |
dependencies: s, | |
config: a | |
} = e; | |
const [o, r] = z(null), i = o != null, { | |
frequency: c, | |
measure: l, | |
strategy: u | |
} = a, d = J(t), m = x(), f = is(m), h = we(function(v) { | |
v === void 0 && (v = []), !f.current && r(w => w ? w.concat(v) : v) | |
}, [f]), g = J(null), b = gs(v => { | |
if (m && !n) return cc; | |
const w = o; | |
if (!v || v === cc || d.current !== t || w != null) { | |
const E = new Map; | |
for (let _ of t) { | |
if (!_) continue; | |
if (w && w.length > 0 && !w.includes(_.id) && _.rect.current) { | |
E.set(_.id, _.rect.current); | |
continue | |
} | |
const k = _.node.current, | |
M = k ? new Dr(l(k), k) : null; | |
_.rect.current = M, M && E.set(_.id, M) | |
} | |
return E | |
} | |
return v | |
}, [t, o, n, m, l]); | |
return U(() => { | |
d.current = t | |
}, [t]), U(() => { | |
m || requestAnimationFrame(() => h()) | |
}, [n, m]), U(() => { | |
i && r(null) | |
}, [i]), U(() => { | |
m || typeof c != "number" || g.current !== null || (g.current = setTimeout(() => { | |
h(), g.current = null | |
}, c)) | |
}, [c, m, h, ...s]), { | |
droppableRects: b, | |
measureDroppableContainers: h, | |
measuringScheduled: i | |
}; | |
function x() { | |
switch (u) { | |
case ls.Always: | |
return !1; | |
case ls.BeforeDragging: | |
return n; | |
default: | |
return !n | |
} | |
} | |
} | |
function Or(t, e) { | |
return gs(n => t ? n || (typeof e == "function" ? e(t) : t) : null, [e, t]) | |
} | |
function Nv(t, e) { | |
return Or(t, e) | |
} | |
function Mv(t) { | |
let { | |
callback: e, | |
disabled: n | |
} = t; | |
const s = Ia(e), | |
a = de(() => { | |
if (n || typeof window == "undefined" || typeof window.MutationObserver == "undefined") return; | |
const { | |
MutationObserver: o | |
} = window; | |
return new o(s) | |
}, [s, n]); | |
return U(() => () => a == null ? void 0 : a.disconnect(), [a]), a | |
} | |
function Oa(t) { | |
let { | |
callback: e, | |
disabled: n | |
} = t; | |
const s = Ia(e), | |
a = de(() => { | |
if (n || typeof window == "undefined" || typeof window.ResizeObserver == "undefined") return; | |
const { | |
ResizeObserver: o | |
} = window; | |
return new o(s) | |
}, [n]); | |
return U(() => () => a == null ? void 0 : a.disconnect(), [a]), a | |
} | |
function Ov(t) { | |
return new Dr(On(t), t) | |
} | |
function lc(t, e, n) { | |
e === void 0 && (e = Ov); | |
const [s, a] = cr(i, null), o = Mv({ | |
callback(c) { | |
if (t) | |
for (const l of c) { | |
const { | |
type: u, | |
target: d | |
} = l; | |
if (u === "childList" && d instanceof HTMLElement && d.contains(t)) { | |
a(); | |
break | |
} | |
} | |
} | |
}), r = Oa({ | |
callback: a | |
}); | |
return Qe(() => { | |
a(), t ? (r == null || r.observe(t), o == null || o.observe(document.body, { | |
childList: !0, | |
subtree: !0 | |
})) : (r == null || r.disconnect(), o == null || o.disconnect()) | |
}, [t]), s; | |
function i(c) { | |
if (!t) return null; | |
if (t.isConnected === !1) { | |
var l; | |
return (l = c != null ? c : n) != null ? l : null | |
} | |
const u = e(t); | |
return JSON.stringify(c) === JSON.stringify(u) ? c : u | |
} | |
} | |
function Lv(t) { | |
const e = Or(t); | |
return Yu(t, e) | |
} | |
const uc = []; | |
function Rv(t) { | |
const e = J(t), | |
n = gs(s => t ? s && s !== uc && t && e.current && t.parentNode === e.current.parentNode ? s : Ma(t) : uc, [t]); | |
return U(() => { | |
e.current = t | |
}, [t]), n | |
} | |
function Pv(t) { | |
const [e, n] = z(null), s = J(t), a = we(o => { | |
const r = so(o.target); | |
r && n(i => i ? (i.set(r, Wo(r)), new Map(i)) : null) | |
}, []); | |
return U(() => { | |
const o = s.current; | |
if (t !== o) { | |
r(o); | |
const i = t.map(c => { | |
const l = so(c); | |
return l ? (l.addEventListener("scroll", a, { | |
passive: !0 | |
}), [l, Wo(l)]) : null | |
}).filter(c => c != null); | |
n(i.length ? new Map(i) : null), s.current = t | |
} | |
return () => { | |
r(t), r(o) | |
}; | |
function r(i) { | |
i.forEach(c => { | |
const l = so(c); | |
l == null || l.removeEventListener("scroll", a) | |
}) | |
} | |
}, [a, t]), de(() => t.length ? e ? Array.from(e.values()).reduce((o, r) => xn(o, r), ct) : np(t) : ct, [t, e]) | |
} | |
function pc(t, e) { | |
e === void 0 && (e = []); | |
const n = J(null); | |
return U(() => { | |
n.current = null | |
}, e), U(() => { | |
const s = t !== ct; | |
s && !n.current && (n.current = t), !s && n.current && (n.current = null) | |
}, [t]), n.current ? cs(t, n.current) : ct | |
} | |
function Bv(t) { | |
U(() => { | |
if (!Da) return; | |
const e = t.map(n => { | |
let { | |
sensor: s | |
} = n; | |
return s.setup == null ? void 0 : s.setup() | |
}); | |
return () => { | |
for (const n of e) n == null || n() | |
} | |
}, t.map(e => { | |
let { | |
sensor: n | |
} = e; | |
return n | |
})) | |
} | |
function zv(t, e) { | |
return de(() => t.reduce((n, s) => { | |
let { | |
eventName: a, | |
handler: o | |
} = s; | |
return n[a] = r => { | |
o(r, e) | |
}, n | |
}, {}), [t, e]) | |
} | |
function op(t) { | |
return de(() => t ? lv(t) : null, [t]) | |
} | |
const ro = []; | |
function qv(t, e) { | |
e === void 0 && (e = On); | |
const [n] = t, s = op(n ? je(n) : null), [a, o] = cr(i, ro), r = Oa({ | |
callback: o | |
}); | |
return t.length > 0 && a === ro && o(), Qe(() => { | |
t.length ? t.forEach(c => r == null ? void 0 : r.observe(c)) : (r == null || r.disconnect(), o()) | |
}, [t]), a; | |
function i() { | |
return t.length ? t.map(c => ep(c) ? s : new Dr(e(c), c)) : ro | |
} | |
} | |
function rp(t) { | |
if (!t) return null; | |
if (t.children.length > 1) return t; | |
const e = t.children[0]; | |
return hs(e) ? e : t | |
} | |
function Fv(t) { | |
let { | |
measure: e | |
} = t; | |
const [n, s] = z(null), a = we(l => { | |
for (const { | |
target: u | |
} of l) | |
if (hs(u)) { | |
s(d => { | |
const m = e(u); | |
return d ? P(S({}, d), { | |
width: m.width, | |
height: m.height | |
}) : m | |
}); | |
break | |
} | |
}, [e]), o = Oa({ | |
callback: a | |
}), r = we(l => { | |
const u = rp(l); | |
o == null || o.disconnect(), u && (o == null || o.observe(u)), s(u ? e(u) : null) | |
}, [e, o]), [i, c] = aa(r); | |
return de(() => ({ | |
nodeRef: i, | |
rect: n, | |
setRef: c | |
}), [n, i, c]) | |
} | |
const jv = [{ | |
sensor: Mr, | |
options: {} | |
}, { | |
sensor: Ir, | |
options: {} | |
}], | |
$v = { | |
current: {} | |
}, | |
Hs = { | |
draggable: { | |
measure: ac | |
}, | |
droppable: { | |
measure: ac, | |
strategy: ls.WhileDragging, | |
frequency: Yo.Optimized | |
}, | |
dragOverlay: { | |
measure: On | |
} | |
}; | |
class es extends Map { | |
get(e) { | |
var n; | |
return e != null && (n = super.get(e)) != null ? n : void 0 | |
} | |
toArray() { | |
return Array.from(this.values()) | |
} | |
getEnabled() { | |
return this.toArray().filter(e => { | |
let { | |
disabled: n | |
} = e; | |
return !n | |
}) | |
} | |
getNodeFor(e) { | |
var n, s; | |
return (n = (s = this.get(e)) == null ? void 0 : s.node.current) != null ? n : void 0 | |
} | |
} | |
const Uv = { | |
activatorEvent: null, | |
active: null, | |
activeNode: null, | |
activeNodeRect: null, | |
collisions: null, | |
containerNodeRect: null, | |
draggableNodes: new Map, | |
droppableRects: new Map, | |
droppableContainers: new es, | |
over: null, | |
dragOverlay: { | |
nodeRef: { | |
current: null | |
}, | |
rect: null, | |
setRef: ia | |
}, | |
scrollableAncestors: [], | |
scrollableAncestorRects: [], | |
measuringConfiguration: Hs, | |
measureDroppableContainers: ia, | |
windowRect: null, | |
measuringScheduled: !1 | |
}, | |
ip = { | |
activatorEvent: null, | |
activators: [], | |
active: null, | |
activeNodeRect: null, | |
ariaDescribedById: { | |
draggable: "" | |
}, | |
dispatch: ia, | |
draggableNodes: new Map, | |
over: null, | |
measureDroppableContainers: ia | |
}, | |
vs = In(ip), | |
cp = In(Uv); | |
function Vv() { | |
return { | |
draggable: { | |
active: null, | |
initialCoordinates: { | |
x: 0, | |
y: 0 | |
}, | |
nodes: new Map, | |
translate: { | |
x: 0, | |
y: 0 | |
} | |
}, | |
droppable: { | |
containers: new es | |
} | |
} | |
} | |
function Hv(t, e) { | |
switch (e.type) { | |
case Ce.DragStart: | |
return P(S({}, t), { | |
draggable: P(S({}, t.draggable), { | |
initialCoordinates: e.initialCoordinates, | |
active: e.active | |
}) | |
}); | |
case Ce.DragMove: | |
return t.draggable.active ? P(S({}, t), { | |
draggable: P(S({}, t.draggable), { | |
translate: { | |
x: e.coordinates.x - t.draggable.initialCoordinates.x, | |
y: e.coordinates.y - t.draggable.initialCoordinates.y | |
} | |
}) | |
}) : t; | |
case Ce.DragEnd: | |
case Ce.DragCancel: | |
return P(S({}, t), { | |
draggable: P(S({}, t.draggable), { | |
active: null, | |
initialCoordinates: { | |
x: 0, | |
y: 0 | |
}, | |
translate: { | |
x: 0, | |
y: 0 | |
} | |
}) | |
}); | |
case Ce.RegisterDroppable: | |
{ | |
const { | |
element: n | |
} = e, | |
{ | |
id: s | |
} = n, | |
a = new es(t.droppable.containers); | |
return a.set(s, n), | |
P(S({}, t), { | |
droppable: P(S({}, t.droppable), { | |
containers: a | |
}) | |
}) | |
} | |
case Ce.SetDroppableDisabled: | |
{ | |
const { | |
id: n, | |
key: s, | |
disabled: a | |
} = e, | |
o = t.droppable.containers.get(n); | |
if (!o || s !== o.key) return t; | |
const r = new es(t.droppable.containers); | |
return r.set(n, P(S({}, o), { | |
disabled: a | |
})), | |
P(S({}, t), { | |
droppable: P(S({}, t.droppable), { | |
containers: r | |
}) | |
}) | |
} | |
case Ce.UnregisterDroppable: | |
{ | |
const { | |
id: n, | |
key: s | |
} = e, | |
a = t.droppable.containers.get(n); | |
if (!a || s !== a.key) return t; | |
const o = new es(t.droppable.containers); | |
return o.delete(n), | |
P(S({}, t), { | |
droppable: P(S({}, t.droppable), { | |
containers: o | |
}) | |
}) | |
} | |
default: | |
return t | |
} | |
} | |
function Gv(t) { | |
let { | |
disabled: e | |
} = t; | |
const { | |
active: n, | |
activatorEvent: s, | |
draggableNodes: a | |
} = Nt(vs), o = oa(s), r = oa(n == null ? void 0 : n.id); | |
return U(() => { | |
if (!e && !s && o && r != null) { | |
if (!Na(o) || document.activeElement === o.target) return; | |
const i = a.get(r); | |
if (!i) return; | |
const { | |
activatorNode: c, | |
node: l | |
} = i; | |
if (!c.current && !l.current) return; | |
requestAnimationFrame(() => { | |
for (const u of [c.current, l.current]) { | |
if (!u) continue; | |
const d = Fb(u); | |
if (d) { | |
d.focus(); | |
break | |
} | |
} | |
}) | |
} | |
}, [s, e, a, r, o]), null | |
} | |
function lp(t, e) { | |
let a = e, | |
{ | |
transform: n | |
} = a, | |
s = st(a, ["transform"]); | |
return t != null && t.length ? t.reduce((o, r) => r(S({ | |
transform: o | |
}, s)), n) : n | |
} | |
function Wv(t) { | |
return de(() => ({ | |
draggable: S(S({}, Hs.draggable), t == null ? void 0 : t.draggable), | |
droppable: S(S({}, Hs.droppable), t == null ? void 0 : t.droppable), | |
dragOverlay: S(S({}, Hs.dragOverlay), t == null ? void 0 : t.dragOverlay) | |
}), [t == null ? void 0 : t.draggable, t == null ? void 0 : t.droppable, t == null ? void 0 : t.dragOverlay]) | |
} | |
function Jv(t) { | |
let { | |
activeNode: e, | |
measure: n, | |
initialRect: s, | |
config: a = !0 | |
} = t; | |
const o = J(!1), | |
{ | |
x: r, | |
y: i | |
} = typeof a == "boolean" ? { | |
x: a, | |
y: a | |
} : a; | |
Qe(() => { | |
if (!r && !i || !e) { | |
o.current = !1; | |
return | |
} | |
if (o.current || !s) return; | |
const l = e == null ? void 0 : e.node.current; | |
if (!l || l.isConnected === !1) return; | |
const u = n(l), | |
d = Yu(u, s); | |
if (r || (d.x = 0), i || (d.y = 0), o.current = !0, Math.abs(d.x) > 0 || Math.abs(d.y) > 0) { | |
const m = Xu(l); | |
m && m.scrollBy({ | |
top: d.y, | |
left: d.x | |
}) | |
} | |
}, [e, r, i, s, n]) | |
} | |
const La = In(P(S({}, ct), { | |
scaleX: 1, | |
scaleY: 1 | |
})); | |
var Bt; | |
(function(t) { | |
t[t.Uninitialized = 0] = "Uninitialized", t[t.Initializing = 1] = "Initializing", t[t.Initialized = 2] = "Initialized" | |
})(Bt || (Bt = {})); | |
const Yv = kf(function(e) { | |
var n, s, a, o; | |
let Ti = e, | |
{ | |
id: r, | |
accessibility: i, | |
autoScroll: c = !0, | |
children: l, | |
sensors: u = jv, | |
collisionDetection: d = sv, | |
measuring: m, | |
modifiers: f | |
} = Ti, | |
h = st(Ti, ["id", "accessibility", "autoScroll", "children", "sensors", "collisionDetection", "measuring", "modifiers"]); | |
const g = cr(Hv, void 0, Vv), | |
[b, x] = g, | |
[v, w] = Wb(), | |
[E, _] = z(Bt.Uninitialized), | |
k = E === Bt.Initialized, | |
{ | |
draggable: { | |
active: M, | |
nodes: y, | |
translate: T | |
}, | |
droppable: { | |
containers: D | |
} | |
} = b, | |
C = M ? y.get(M) : null, | |
L = J({ | |
initial: null, | |
translated: null | |
}), | |
R = de(() => { | |
var Ne; | |
return M != null ? { | |
id: M, | |
data: (Ne = C == null ? void 0 : C.data) != null ? Ne : $v, | |
rect: L | |
} : null | |
}, [M, C]), | |
A = J(null), | |
[I, O] = z(null), | |
[B, j] = z(null), | |
G = is(h, Object.values(h)), | |
ke = bs("DndDescribedBy", r), | |
Re = de(() => D.getEnabled(), [D]), | |
ve = Wv(m), | |
{ | |
droppableRects: _e, | |
measureDroppableContainers: W, | |
measuringScheduled: le | |
} = Iv(Re, { | |
dragging: k, | |
dependencies: [T.x, T.y], | |
config: ve.droppable | |
}), | |
K = Tv(y, M), | |
H = de(() => B ? ra(B) : null, [B]), | |
me = bf(), | |
V = Nv(K, ve.draggable.measure); | |
Jv({ | |
activeNode: M ? y.get(M) : null, | |
config: me.layoutShiftCompensation, | |
initialRect: V, | |
measure: ve.draggable.measure | |
}); | |
const $ = lc(K, ve.draggable.measure, V), | |
He = lc(K ? K.parentElement : null), | |
pt = J({ | |
activatorEvent: null, | |
active: null, | |
activeNode: K, | |
collisionRect: null, | |
collisions: null, | |
droppableRects: _e, | |
draggableNodes: y, | |
draggingNode: null, | |
draggingNodeRect: null, | |
droppableContainers: D, | |
over: null, | |
scrollableAncestors: [], | |
scrollAdjustedTranslate: null | |
}), | |
sn = D.getNodeFor((n = pt.current.over) == null ? void 0 : n.id), | |
At = Fv({ | |
measure: ve.dragOverlay.measure | |
}), | |
an = (s = At.nodeRef.current) != null ? s : K, | |
on = k ? (a = At.rect) != null ? a : $ : null, | |
yi = !!(At.nodeRef.current && At.rect), | |
wi = Lv(yi ? null : $), | |
Ya = op(an ? je(an) : null), | |
Ot = Rv(k ? sn != null ? sn : K : null), | |
Cs = qv(Ot), | |
Es = lp(f, { | |
transform: { | |
x: T.x - wi.x, | |
y: T.y - wi.y, | |
scaleX: 1, | |
scaleY: 1 | |
}, | |
activatorEvent: B, | |
active: R, | |
activeNodeRect: $, | |
containerNodeRect: He, | |
draggingNodeRect: on, | |
over: pt.current.over, | |
overlayNodeRect: At.rect, | |
scrollableAncestors: Ot, | |
scrollableAncestorRects: Cs, | |
windowRect: Ya | |
}), | |
ki = H ? xn(H, T) : null, | |
_i = Pv(Ot), | |
uf = pc(_i), | |
pf = pc(_i, [$]), | |
rn = xn(Es, uf), | |
cn = on ? rv(on, Es) : null, | |
zn = R && cn ? d({ | |
active: R, | |
collisionRect: cn, | |
droppableRects: _e, | |
droppableContainers: Re, | |
pointerCoordinates: ki | |
}) : null, | |
Ci = Ju(zn, "id"), | |
[Lt, Ei] = z(null), | |
df = yi ? Es : xn(Es, pf), | |
mf = av(df, (o = Lt == null ? void 0 : Lt.rect) != null ? o : null, $), | |
Ai = we((Ne, Ge) => { | |
let { | |
sensor: We, | |
options: Rt | |
} = Ge; | |
if (A.current == null) return; | |
const Xe = y.get(A.current); | |
if (!Xe) return; | |
const tt = Ne.nativeEvent, | |
dt = new We({ | |
active: A.current, | |
activeNode: Xe, | |
event: tt, | |
options: Rt, | |
context: pt, | |
onStart(nt) { | |
const qn = A.current; | |
if (qn == null) return; | |
const Fn = y.get(qn); | |
if (!Fn) return; | |
const { | |
onDragStart: As | |
} = G.current, Ss = { | |
active: { | |
id: qn, | |
data: Fn.data, | |
rect: L | |
} | |
}; | |
Un(() => { | |
As == null || As(Ss), _(Bt.Initializing), x({ | |
type: Ce.DragStart, | |
initialCoordinates: nt, | |
active: qn | |
}), v({ | |
type: "onDragStart", | |
event: Ss | |
}) | |
}) | |
}, | |
onMove(nt) { | |
x({ | |
type: Ce.DragMove, | |
coordinates: nt | |
}) | |
}, | |
onEnd: ln(Ce.DragEnd), | |
onCancel: ln(Ce.DragCancel) | |
}); | |
Un(() => { | |
O(dt), j(Ne.nativeEvent) | |
}); | |
function ln(nt) { | |
return function() { | |
return N(this, null, function*() { | |
const { | |
active: Fn, | |
collisions: As, | |
over: Ss, | |
scrollAdjustedTranslate: Di | |
} = pt.current; | |
let jn = null; | |
if (Fn && Di) { | |
const { | |
cancelDrop: $n | |
} = G.current; | |
jn = { | |
activatorEvent: tt, | |
active: Fn, | |
collisions: As, | |
delta: Di, | |
over: Ss | |
}, nt === Ce.DragEnd && typeof $n == "function" && (yield Promise.resolve($n(jn))) && (nt = Ce.DragCancel) | |
} | |
A.current = null, Un(() => { | |
x({ | |
type: nt | |
}), _(Bt.Uninitialized), Ei(null), O(null), j(null); | |
const $n = nt === Ce.DragEnd ? "onDragEnd" : "onDragCancel"; | |
if (jn) { | |
const Ka = G.current[$n]; | |
Ka == null || Ka(jn), v({ | |
type: $n, | |
event: jn | |
}) | |
} | |
}) | |
}) | |
} | |
} | |
}, [y]), | |
ff = we((Ne, Ge) => (We, Rt) => { | |
const Xe = We.nativeEvent, | |
tt = y.get(Rt); | |
if (A.current !== null || !tt || Xe.dndKit || Xe.defaultPrevented) return; | |
const dt = { | |
active: tt | |
}; | |
Ne(We, Ge.options, dt) === !0 && (Xe.dndKit = { | |
capturedBy: Ge.sensor | |
}, A.current = Rt, Ai(We, Ge)) | |
}, [y, Ai]), | |
Si = Dv(u, ff); | |
Bv(u), Qe(() => { | |
$ && E === Bt.Initializing && _(Bt.Initialized) | |
}, [$, E]), U(() => { | |
const { | |
onDragMove: Ne | |
} = G.current, { | |
active: Ge, | |
activatorEvent: We, | |
collisions: Rt, | |
over: Xe | |
} = pt.current; | |
if (!Ge || !We) return; | |
const tt = { | |
active: Ge, | |
activatorEvent: We, | |
collisions: Rt, | |
delta: { | |
x: rn.x, | |
y: rn.y | |
}, | |
over: Xe | |
}; | |
Un(() => { | |
Ne == null || Ne(tt), v({ | |
type: "onDragMove", | |
event: tt | |
}) | |
}) | |
}, [rn.x, rn.y]), U(() => { | |
const { | |
active: Ne, | |
activatorEvent: Ge, | |
collisions: We, | |
droppableContainers: Rt, | |
scrollAdjustedTranslate: Xe | |
} = pt.current; | |
if (!Ne || A.current == null || !Ge || !Xe) return; | |
const { | |
onDragOver: tt | |
} = G.current, dt = Rt.get(Ci), ln = dt && dt.rect.current ? { | |
id: dt.id, | |
rect: dt.rect.current, | |
data: dt.data, | |
disabled: dt.disabled | |
} : null, nt = { | |
active: Ne, | |
activatorEvent: Ge, | |
collisions: We, | |
delta: { | |
x: Xe.x, | |
y: Xe.y | |
}, | |
over: ln | |
}; | |
Un(() => { | |
Ei(ln), tt == null || tt(nt), v({ | |
type: "onDragOver", | |
event: nt | |
}) | |
}) | |
}, [Ci]), Qe(() => { | |
pt.current = { | |
activatorEvent: B, | |
active: R, | |
activeNode: K, | |
collisionRect: cn, | |
collisions: zn, | |
droppableRects: _e, | |
draggableNodes: y, | |
draggingNode: an, | |
draggingNodeRect: on, | |
droppableContainers: D, | |
over: Lt, | |
scrollableAncestors: Ot, | |
scrollAdjustedTranslate: rn | |
}, L.current = { | |
initial: on, | |
translated: cn | |
} | |
}, [R, K, zn, cn, y, an, on, _e, D, Lt, Ot, rn]), Ev(P(S({}, me), { | |
delta: T, | |
draggingRect: cn, | |
pointerCoordinates: ki, | |
scrollableAncestors: Ot, | |
scrollableAncestorRects: Cs | |
})); | |
const hf = de(() => ({ | |
active: R, | |
activeNode: K, | |
activeNodeRect: $, | |
activatorEvent: B, | |
collisions: zn, | |
containerNodeRect: He, | |
dragOverlay: At, | |
draggableNodes: y, | |
droppableContainers: D, | |
droppableRects: _e, | |
over: Lt, | |
measureDroppableContainers: W, | |
scrollableAncestors: Ot, | |
scrollableAncestorRects: Cs, | |
measuringConfiguration: ve, | |
measuringScheduled: le, | |
windowRect: Ya | |
}), [R, K, $, B, zn, He, At, y, D, _e, Lt, W, Ot, Cs, ve, le, Ya]), | |
gf = de(() => ({ | |
activatorEvent: B, | |
activators: Si, | |
active: R, | |
activeNodeRect: $, | |
ariaDescribedById: { | |
draggable: ke | |
}, | |
dispatch: x, | |
draggableNodes: y, | |
over: Lt, | |
measureDroppableContainers: W | |
}), [B, Si, R, $, x, ke, y, Lt, W]); | |
return ge.createElement(Hu.Provider, { | |
value: w | |
}, ge.createElement(vs.Provider, { | |
value: gf | |
}, ge.createElement(cp.Provider, { | |
value: hf | |
}, ge.createElement(La.Provider, { | |
value: mf | |
}, l)), ge.createElement(Gv, { | |
disabled: (i == null ? void 0 : i.restoreFocus) === !1 | |
})), ge.createElement(Kb, P(S({}, i), { | |
hiddenTextDescribedById: ke | |
}))); | |
function bf() { | |
const Ne = (I == null ? void 0 : I.autoScrollEnabled) === !1, | |
Ge = typeof c == "object" ? c.enabled === !1 : c === !1, | |
We = k && !Ne && !Ge; | |
return typeof c == "object" ? P(S({}, c), { | |
enabled: We | |
}) : { | |
enabled: We | |
} | |
} | |
}), | |
Kv = In(null), | |
dc = "button", | |
Xv = "Droppable"; | |
function Zv(t) { | |
let { | |
id: e, | |
data: n, | |
disabled: s = !1, | |
attributes: a | |
} = t; | |
const o = bs(Xv), | |
{ | |
activators: r, | |
activatorEvent: i, | |
active: c, | |
activeNodeRect: l, | |
ariaDescribedById: u, | |
draggableNodes: d, | |
over: m | |
} = Nt(vs), | |
{ | |
role: f = dc, | |
roleDescription: h = "draggable", | |
tabIndex: g = 0 | |
} = a != null ? a : {}, | |
b = (c == null ? void 0 : c.id) === e, | |
x = Nt(b ? La : Kv), | |
[v, w] = aa(), | |
[E, _] = aa(), | |
k = zv(r, e), | |
M = is(n); | |
Qe(() => (d.set(e, { | |
id: e, | |
key: o, | |
node: v, | |
activatorNode: E, | |
data: M | |
}), () => { | |
const T = d.get(e); | |
T && T.key === o && d.delete(e) | |
}), [d, e]); | |
const y = de(() => ({ | |
role: f, | |
tabIndex: g, | |
"aria-disabled": s, | |
"aria-pressed": b && f === dc ? !0 : void 0, | |
"aria-roledescription": h, | |
"aria-describedby": u.draggable | |
}), [s, f, g, b, h, u.draggable]); | |
return { | |
active: c, | |
activatorEvent: i, | |
activeNodeRect: l, | |
attributes: y, | |
isDragging: b, | |
listeners: s ? void 0 : k, | |
node: v, | |
over: m, | |
setNodeRef: w, | |
setActivatorNodeRef: _, | |
transform: x | |
} | |
} | |
function up() { | |
return Nt(cp) | |
} | |
const Qv = "Droppable", | |
ex = { | |
timeout: 25 | |
}; | |
function tx(t) { | |
let { | |
data: e, | |
disabled: n = !1, | |
id: s, | |
resizeObserverConfig: a | |
} = t; | |
const o = bs(Qv), | |
{ | |
active: r, | |
dispatch: i, | |
over: c, | |
measureDroppableContainers: l | |
} = Nt(vs), | |
u = J({ | |
disabled: n | |
}), | |
d = J(!1), | |
m = J(null), | |
f = J(null), | |
{ | |
disabled: h, | |
updateMeasurementsFor: g, | |
timeout: b | |
} = S(S({}, ex), a), | |
x = is(g != null ? g : s), | |
v = we(() => { | |
if (!d.current) { | |
d.current = !0; | |
return | |
} | |
f.current != null && clearTimeout(f.current), f.current = setTimeout(() => { | |
l(Array.isArray(x.current) ? x.current : [x.current]), f.current = null | |
}, b) | |
}, [b]), | |
w = Oa({ | |
callback: v, | |
disabled: h || !r | |
}), | |
E = we((y, T) => { | |
w && (T && (w.unobserve(T), d.current = !1), y && w.observe(y)) | |
}, [w]), | |
[_, k] = aa(E), | |
M = is(e); | |
return U(() => { | |
!w || !_.current || (w.disconnect(), d.current = !1, w.observe(_.current)) | |
}, [_, w]), Qe(() => (i({ | |
type: Ce.RegisterDroppable, | |
element: { | |
id: s, | |
key: o, | |
disabled: n, | |
node: _, | |
rect: m, | |
data: M | |
} | |
}), () => i({ | |
type: Ce.UnregisterDroppable, | |
key: o, | |
id: s | |
})), [s]), U(() => { | |
n !== u.current.disabled && (i({ | |
type: Ce.SetDroppableDisabled, | |
id: s, | |
key: o, | |
disabled: n | |
}), u.current.disabled = n) | |
}, [s, o, n, i]), { | |
active: r, | |
rect: m, | |
isOver: (c == null ? void 0 : c.id) === s, | |
node: _, | |
over: c, | |
setNodeRef: k | |
} | |
} | |
function nx(t) { | |
let { | |
animation: e, | |
children: n | |
} = t; | |
const [s, a] = z(null), [o, r] = z(null), i = oa(n); | |
return !n && !s && i && a(i), Qe(() => { | |
if (!o) return; | |
const c = s == null ? void 0 : s.key, | |
l = s == null ? void 0 : s.props.id; | |
if (c == null || l == null) { | |
a(null); | |
return | |
} | |
Promise.resolve(e(l, o)).then(() => { | |
a(null) | |
}) | |
}, [e, s, o]), ge.createElement(ge.Fragment, null, n, s ? _f(s, { | |
ref: r | |
}) : null) | |
} | |
const sx = { | |
x: 0, | |
y: 0, | |
scaleX: 1, | |
scaleY: 1 | |
}; | |
function ax(t) { | |
let { | |
children: e | |
} = t; | |
return ge.createElement(vs.Provider, { | |
value: ip | |
}, ge.createElement(La.Provider, { | |
value: sx | |
}, e)) | |
} | |
const ox = { | |
position: "fixed", | |
touchAction: "none" | |
}, | |
rx = t => Na(t) ? "transform 250ms ease" : void 0, | |
ix = wa((t, e) => { | |
let { | |
as: n, | |
activatorEvent: s, | |
adjustScale: a, | |
children: o, | |
className: r, | |
rect: i, | |
style: c, | |
transform: l, | |
transition: u = rx | |
} = t; | |
if (!i) return null; | |
const d = a ? l : P(S({}, l), { | |
scaleX: 1, | |
scaleY: 1 | |
}), | |
m = S(P(S({}, ox), { | |
width: i.width, | |
height: i.height, | |
top: i.top, | |
left: i.left, | |
transform: Ht.Transform.toString(d), | |
transformOrigin: a && s ? Zb(s, i) : void 0, | |
transition: typeof u == "function" ? u(s) : u | |
}), c); | |
return ge.createElement(n, { | |
className: r, | |
style: m, | |
ref: e | |
}, o) | |
}), | |
cx = t => e => { | |
let { | |
active: n, | |
dragOverlay: s | |
} = e; | |
const a = {}, | |
{ | |
styles: o, | |
className: r | |
} = t; | |
if (o != null && o.active) | |
for (const [i, c] of Object.entries(o.active)) c !== void 0 && (a[i] = n.node.style.getPropertyValue(i), n.node.style.setProperty(i, c)); | |
if (o != null && o.dragOverlay) | |
for (const [i, c] of Object.entries(o.dragOverlay)) c !== void 0 && s.node.style.setProperty(i, c); | |
return r != null && r.active && n.node.classList.add(r.active), r != null && r.dragOverlay && s.node.classList.add(r.dragOverlay), | |
function() { | |
for (const [c, l] of Object.entries(a)) n.node.style.setProperty(c, l); | |
r != null && r.active && n.node.classList.remove(r.active) | |
} | |
}, | |
lx = t => { | |
let { | |
transform: { | |
initial: e, | |
final: n | |
} | |
} = t; | |
return [{ | |
transform: Ht.Transform.toString(e) | |
}, { | |
transform: Ht.Transform.toString(n) | |
}] | |
}, | |
ux = { | |
duration: 250, | |
easing: "ease", | |
keyframes: lx, | |
sideEffects: cx({ | |
styles: { | |
active: { | |
opacity: "0" | |
} | |
} | |
}) | |
}; | |
function px(t) { | |
let { | |
config: e, | |
draggableNodes: n, | |
droppableContainers: s, | |
measuringConfiguration: a | |
} = t; | |
return Ia((o, r) => { | |
if (e === null) return; | |
const i = n.get(o); | |
if (!i) return; | |
const c = i.node.current; | |
if (!c) return; | |
const l = rp(r); | |
if (!l) return; | |
const { | |
transform: u | |
} = je(r).getComputedStyle(r), d = Ku(u); | |
if (!d) return; | |
const m = typeof e == "function" ? e : dx(e); | |
return sp(c, a.draggable.measure), m({ | |
active: { | |
id: o, | |
data: i.data, | |
node: c, | |
rect: a.draggable.measure(c) | |
}, | |
draggableNodes: n, | |
dragOverlay: { | |
node: r, | |
rect: a.dragOverlay.measure(l) | |
}, | |
droppableContainers: s, | |
measuringConfiguration: a, | |
transform: d | |
}) | |
}) | |
} | |
function dx(t) { | |
const { | |
duration: e, | |
easing: n, | |
sideEffects: s, | |
keyframes: a | |
} = S(S({}, ux), t); | |
return o => { | |
let v = o, | |
{ | |
active: r, | |
dragOverlay: i, | |
transform: c | |
} = v, | |
l = st(v, ["active", "dragOverlay", "transform"]); | |
if (!e) return; | |
const u = { | |
x: i.rect.left - r.rect.left, | |
y: i.rect.top - r.rect.top | |
}, | |
d = { | |
scaleX: c.scaleX !== 1 ? r.rect.width * c.scaleX / i.rect.width : 1, | |
scaleY: c.scaleY !== 1 ? r.rect.height * c.scaleY / i.rect.height : 1 | |
}, | |
m = S({ | |
x: c.x - u.x, | |
y: c.y - u.y | |
}, d), | |
f = a(P(S({}, l), { | |
active: r, | |
dragOverlay: i, | |
transform: { | |
initial: c, | |
final: m | |
} | |
})), | |
[h] = f, | |
g = f[f.length - 1]; | |
if (JSON.stringify(h) === JSON.stringify(g)) return; | |
const b = s == null ? void 0 : s(S({ | |
active: r, | |
dragOverlay: i | |
}, l)), | |
x = i.node.animate(f, { | |
duration: e, | |
easing: n, | |
fill: "forwards" | |
}); | |
return new Promise(w => { | |
x.onfinish = () => { | |
b == null || b(), w() | |
} | |
}) | |
} | |
} | |
let mc = 0; | |
function mx(t) { | |
return de(() => { | |
if (t != null) return mc++, mc | |
}, [t]) | |
} | |
const sle = ge.memo(t => { | |
let { | |
adjustScale: e = !1, | |
children: n, | |
dropAnimation: s, | |
style: a, | |
transition: o, | |
modifiers: r, | |
wrapperElement: i = "div", | |
className: c, | |
zIndex: l = 999 | |
} = t; | |
const { | |
activatorEvent: u, | |
active: d, | |
activeNodeRect: m, | |
containerNodeRect: f, | |
draggableNodes: h, | |
droppableContainers: g, | |
dragOverlay: b, | |
over: x, | |
measuringConfiguration: v, | |
scrollableAncestors: w, | |
scrollableAncestorRects: E, | |
windowRect: _ | |
} = up(), k = Nt(La), M = mx(d == null ? void 0 : d.id), y = lp(r, { | |
activatorEvent: u, | |
active: d, | |
activeNodeRect: m, | |
containerNodeRect: f, | |
draggingNodeRect: b.rect, | |
over: x, | |
overlayNodeRect: b.rect, | |
scrollableAncestors: w, | |
scrollableAncestorRects: E, | |
transform: k, | |
windowRect: _ | |
}), T = Or(m), D = px({ | |
config: s, | |
draggableNodes: h, | |
droppableContainers: g, | |
measuringConfiguration: v | |
}), C = T ? b.setRef : void 0; | |
return ge.createElement(ax, null, ge.createElement(nx, { | |
animation: D | |
}, d && M ? ge.createElement(ix, { | |
key: M, | |
id: d.id, | |
ref: C, | |
as: i, | |
activatorEvent: u, | |
adjustScale: e, | |
className: c, | |
transition: o, | |
rect: T, | |
style: S({ | |
zIndex: l | |
}, a), | |
transform: y | |
}, n) : null)) | |
}); | |
function Lr(t, e, n) { | |
const s = t.slice(); | |
return s.splice(n < 0 ? s.length + n : n, 0, s.splice(e, 1)[0]), s | |
} | |
function fx(t, e) { | |
return t.reduce((n, s, a) => { | |
const o = e.get(s); | |
return o && (n[a] = o), n | |
}, Array(t.length)) | |
} | |
function Os(t) { | |
return t !== null && t >= 0 | |
} | |
function hx(t, e) { | |
if (t === e) return !0; | |
if (t.length !== e.length) return !1; | |
for (let n = 0; n < t.length; n++) | |
if (t[n] !== e[n]) return !1; | |
return !0 | |
} | |
function gx(t) { | |
return typeof t == "boolean" ? { | |
draggable: t, | |
droppable: t | |
} : t | |
} | |
const Rr = t => { | |
let { | |
rects: e, | |
activeIndex: n, | |
overIndex: s, | |
index: a | |
} = t; | |
const o = Lr(e, s, n), | |
r = e[a], | |
i = o[a]; | |
return !i || !r ? null : { | |
x: i.left - r.left, | |
y: i.top - r.top, | |
scaleX: i.width / r.width, | |
scaleY: i.height / r.height | |
} | |
}, | |
Ls = { | |
scaleX: 1, | |
scaleY: 1 | |
}, | |
ale = t => { | |
var e; | |
let { | |
activeIndex: n, | |
activeNodeRect: s, | |
index: a, | |
rects: o, | |
overIndex: r | |
} = t; | |
const i = (e = o[n]) != null ? e : s; | |
if (!i) return null; | |
if (a === n) { | |
const l = o[r]; | |
return l ? S({ | |
x: 0, | |
y: n < r ? l.top + l.height - (i.top + i.height) : l.top - i.top | |
}, Ls) : null | |
} | |
const c = bx(o, a, n); | |
return a > n && a <= r ? S({ | |
x: 0, | |
y: -i.height - c | |
}, Ls) : a < n && a >= r ? S({ | |
x: 0, | |
y: i.height + c | |
}, Ls) : S({ | |
x: 0, | |
y: 0 | |
}, Ls) | |
}; | |
function bx(t, e, n) { | |
const s = t[e], | |
a = t[e - 1], | |
o = t[e + 1]; | |
return s ? n < e ? a ? s.top - (a.top + a.height) : o ? o.top - (s.top + s.height) : 0 : o ? o.top - (s.top + s.height) : a ? s.top - (a.top + a.height) : 0 : 0 | |
} | |
const pp = "Sortable", | |
dp = ge.createContext({ | |
activeIndex: -1, | |
containerId: pp, | |
disableTransforms: !1, | |
items: [], | |
overIndex: -1, | |
useDragOverlay: !1, | |
sortedRects: [], | |
strategy: Rr, | |
disabled: { | |
draggable: !1, | |
droppable: !1 | |
} | |
}); | |
function vx(t) { | |
let { | |
children: e, | |
id: n, | |
items: s, | |
strategy: a = Rr, | |
disabled: o = !1 | |
} = t; | |
const { | |
active: r, | |
dragOverlay: i, | |
droppableRects: c, | |
over: l, | |
measureDroppableContainers: u, | |
measuringScheduled: d | |
} = up(), m = bs(pp, n), f = i.rect !== null, h = de(() => s.map(M => typeof M == "object" && "id" in M ? M.id : M), [s]), g = r != null, b = r ? h.indexOf(r.id) : -1, x = l ? h.indexOf(l.id) : -1, v = J(h), w = !hx(h, v.current), E = x !== -1 && b === -1 || w, _ = gx(o); | |
Qe(() => { | |
w && g && !d && u(h) | |
}, [w, h, g, u, d]), U(() => { | |
v.current = h | |
}, [h]); | |
const k = de(() => ({ | |
activeIndex: b, | |
containerId: m, | |
disabled: _, | |
disableTransforms: E, | |
items: h, | |
overIndex: x, | |
useDragOverlay: f, | |
sortedRects: fx(h, c), | |
strategy: a | |
}), [b, m, _.draggable, _.droppable, E, h, x, c, f, a]); | |
return ge.createElement(dp.Provider, { | |
value: k | |
}, e) | |
} | |
const xx = t => { | |
let { | |
id: e, | |
items: n, | |
activeIndex: s, | |
overIndex: a | |
} = t; | |
return Lr(n, s, a).indexOf(e) | |
}, | |
yx = t => { | |
let { | |
containerId: e, | |
isSorting: n, | |
wasDragging: s, | |
index: a, | |
items: o, | |
newIndex: r, | |
previousItems: i, | |
previousContainerId: c, | |
transition: l | |
} = t; | |
return !l || !s || i !== o && a === r ? !1 : n ? !0 : r !== a && e === c | |
}, | |
wx = { | |
duration: 200, | |
easing: "ease" | |
}, | |
mp = "transform", | |
kx = Ht.Transition.toString({ | |
property: mp, | |
duration: 0, | |
easing: "linear" | |
}), | |
_x = { | |
roleDescription: "sortable" | |
}; | |
function Cx(t) { | |
let { | |
disabled: e, | |
index: n, | |
node: s, | |
rect: a | |
} = t; | |
const [o, r] = z(null), i = J(n); | |
return Qe(() => { | |
if (!e && n !== i.current && s.current) { | |
const c = a.current; | |
if (c) { | |
const l = On(s.current, { | |
ignoreTransform: !0 | |
}), | |
u = { | |
x: c.left - l.left, | |
y: c.top - l.top, | |
scaleX: c.width / l.width, | |
scaleY: c.height / l.height | |
}; | |
(u.x || u.y) && r(u) | |
} | |
} | |
n !== i.current && (i.current = n) | |
}, [e, n, s, a]), U(() => { | |
o && requestAnimationFrame(() => { | |
r(null) | |
}) | |
}, [o]), o | |
} | |
function Ex(t) { | |
let { | |
animateLayoutChanges: e = yx, | |
attributes: n, | |
disabled: s, | |
data: a, | |
getNewIndex: o = xx, | |
id: r, | |
strategy: i, | |
resizeObserverConfig: c, | |
transition: l = wx | |
} = t; | |
const { | |
items: u, | |
containerId: d, | |
activeIndex: m, | |
disabled: f, | |
disableTransforms: h, | |
sortedRects: g, | |
overIndex: b, | |
useDragOverlay: x, | |
strategy: v | |
} = Nt(dp), w = Ax(s, f), E = u.indexOf(r), _ = de(() => S({ | |
sortable: { | |
containerId: d, | |
index: E, | |
items: u | |
} | |
}, a), [d, a, E, u]), k = de(() => u.slice(u.indexOf(r)), [u, r]), { | |
rect: M, | |
node: y, | |
isOver: T, | |
setNodeRef: D | |
} = tx({ | |
id: r, | |
data: _, | |
disabled: w.droppable, | |
resizeObserverConfig: S({ | |
updateMeasurementsFor: k | |
}, c) | |
}), { | |
active: C, | |
activatorEvent: L, | |
activeNodeRect: R, | |
attributes: A, | |
setNodeRef: I, | |
listeners: O, | |
isDragging: B, | |
over: j, | |
setActivatorNodeRef: G, | |
transform: ke | |
} = Zv({ | |
id: r, | |
data: _, | |
attributes: S(S({}, _x), n), | |
disabled: w.draggable | |
}), Re = Rb(D, I), ve = !!C, _e = ve && !h && Os(m) && Os(b), W = !x && B, le = W && _e ? ke : null, K = i != null ? i : v, H = _e ? le != null ? le : K({ | |
rects: g, | |
activeNodeRect: R, | |
activeIndex: m, | |
overIndex: b, | |
index: E | |
}) : null, me = Os(m) && Os(b) ? o({ | |
id: r, | |
items: u, | |
activeIndex: m, | |
overIndex: b | |
}) : E, V = C == null ? void 0 : C.id, $ = J({ | |
activeId: V, | |
items: u, | |
newIndex: me, | |
containerId: d | |
}), He = u !== $.current.items, pt = e({ | |
active: C, | |
containerId: d, | |
isDragging: B, | |
isSorting: ve, | |
id: r, | |
index: E, | |
items: u, | |
newIndex: $.current.newIndex, | |
previousItems: $.current.items, | |
previousContainerId: $.current.containerId, | |
transition: l, | |
wasDragging: $.current.activeId != null | |
}), sn = Cx({ | |
disabled: !pt, | |
index: E, | |
node: y, | |
rect: M | |
}); | |
return U(() => { | |
ve && $.current.newIndex !== me && ($.current.newIndex = me), d !== $.current.containerId && ($.current.containerId = d), u !== $.current.items && ($.current.items = u) | |
}, [ve, me, d, u]), U(() => { | |
if (V === $.current.activeId) return; | |
if (V && !$.current.activeId) { | |
$.current.activeId = V; | |
return | |
} | |
const an = setTimeout(() => { | |
$.current.activeId = V | |
}, 50); | |
return () => clearTimeout(an) | |
}, [V]), { | |
active: C, | |
activeIndex: m, | |
attributes: A, | |
data: _, | |
rect: M, | |
index: E, | |
newIndex: me, | |
items: u, | |
isOver: T, | |
isSorting: ve, | |
isDragging: B, | |
listeners: O, | |
node: y, | |
overIndex: b, | |
over: j, | |
setNodeRef: Re, | |
setActivatorNodeRef: G, | |
setDroppableNodeRef: D, | |
setDraggableNodeRef: I, | |
transform: sn != null ? sn : H, | |
transition: At() | |
}; | |
function At() { | |
if (sn || He && $.current.newIndex === E) return kx; | |
if (!(W && !Na(L) || !l) && (ve || pt)) return Ht.Transition.toString(P(S({}, l), { | |
property: mp | |
})) | |
} | |
} | |
function Ax(t, e) { | |
var n, s; | |
return typeof t == "boolean" ? { | |
draggable: t, | |
droppable: !1 | |
} : { | |
draggable: (n = t == null ? void 0 : t.draggable) != null ? n : e.draggable, | |
droppable: (s = t == null ? void 0 : t.droppable) != null ? s : e.droppable | |
} | |
} | |
function la(t) { | |
if (!t) return !1; | |
const e = t.data.current; | |
return !!(e && "sortable" in e && typeof e.sortable == "object" && "containerId" in e.sortable && "items" in e.sortable && "index" in e.sortable) | |
} | |
const Sx = [te.Down, te.Right, te.Up, te.Left], | |
Tx = (t, e) => { | |
let { | |
context: { | |
active: n, | |
collisionRect: s, | |
droppableRects: a, | |
droppableContainers: o, | |
over: r, | |
scrollableAncestors: i | |
} | |
} = e; | |
if (Sx.includes(t.code)) { | |
if (t.preventDefault(), !n || !s) return; | |
const c = []; | |
o.getEnabled().forEach(d => { | |
if (!d || d != null && d.disabled) return; | |
const m = a.get(d.id); | |
if (m) switch (t.code) { | |
case te.Down: | |
s.top < m.top && c.push(d); | |
break; | |
case te.Up: | |
s.top > m.top && c.push(d); | |
break; | |
case te.Left: | |
s.left > m.left && c.push(d); | |
break; | |
case te.Right: | |
s.left < m.left && c.push(d); | |
break | |
} | |
}); | |
const l = tv({ | |
active: n, | |
collisionRect: s, | |
droppableRects: a, | |
droppableContainers: c, | |
pointerCoordinates: null | |
}); | |
let u = Ju(l, "id"); | |
if (u === (r == null ? void 0 : r.id) && l.length > 1 && (u = l[1].id), u != null) { | |
const d = o.get(n.id), | |
m = o.get(u), | |
f = m ? a.get(m.id) : null, | |
h = m == null ? void 0 : m.node.current; | |
if (h && f && d && m) { | |
const b = Ma(h).some((k, M) => i[M] !== k), | |
x = fp(d, m), | |
v = Dx(d, m), | |
w = b || !x ? { | |
x: 0, | |
y: 0 | |
} : { | |
x: v ? s.width - f.width : 0, | |
y: v ? s.height - f.height : 0 | |
}, | |
E = { | |
x: f.left, | |
y: f.top | |
}; | |
return w.x && w.y ? E : cs(E, w) | |
} | |
} | |
} | |
}; | |
function fp(t, e) { | |
return !la(t) || !la(e) ? !1 : t.data.current.sortable.containerId === e.data.current.sortable.containerId | |
} | |
function Dx(t, e) { | |
return !la(t) || !la(e) || !fp(t, e) ? !1 : t.data.current.sortable.index < e.data.current.sortable.index | |
} | |
const hp = Qt.create({ | |
name: "heading", | |
addOptions() { | |
return { | |
levels: [1, 2, 3, 4, 5, 6], | |
HTMLAttributes: {} | |
} | |
}, | |
content: "inline*", | |
group: "block", | |
defining: !0, | |
addAttributes() { | |
return { | |
level: { | |
default: 1, | |
rendered: !1 | |
} | |
} | |
}, | |
parseHTML() { | |
return this.options.levels.map(t => ({ | |
tag: `h${t}`, | |
attrs: { | |
level: t | |
} | |
})) | |
}, | |
renderHTML({ | |
node: t, | |
HTMLAttributes: e | |
}) { | |
return [`h${this.options.levels.includes(t.attrs.level)?t.attrs.level:this.options.levels[0]}`, en(this.options.HTMLAttributes, e), 0] | |
}, | |
addCommands() { | |
return { | |
setHeading: t => ({ | |
commands: e | |
}) => this.options.levels.includes(t.level) ? e.setNode(this.name, t) : !1, | |
toggleHeading: t => ({ | |
commands: e | |
}) => this.options.levels.includes(t.level) ? e.toggleNode(this.name, "paragraph", t) : !1 | |
} | |
}, | |
addKeyboardShortcuts() { | |
return this.options.levels.reduce((t, e) => P(S({}, t), { | |
[`Mod-Alt-${e}`]: () => this.editor.commands.toggleHeading({ | |
level: e | |
}) | |
}), {}) | |
}, | |
addInputRules() { | |
return this.options.levels.map(t => uh({ | |
find: new RegExp(`^(#{1,${t}})\\s$`), | |
type: this.type, | |
getAttributes: { | |
level: t | |
} | |
})) | |
} | |
}), | |
Pr = Qt.create({ | |
name: "horizontalRule", | |
addOptions() { | |
return { | |
HTMLAttributes: {} | |
} | |
}, | |
group: "block", | |
parseHTML() { | |
return [{ | |
tag: "hr" | |
}] | |
}, | |
renderHTML({ | |
HTMLAttributes: t | |
}) { | |
return ["hr", en(this.options.HTMLAttributes, t)] | |
}, | |
addCommands() { | |
return { | |
setHorizontalRule: () => ({ | |
chain: t, | |
state: e | |
}) => { | |
const { | |
$to: n | |
} = e.selection, s = t(); | |
return n.parentOffset === 0 ? s.insertContentAt(Math.max(n.pos - 2, 0), { | |
type: this.name | |
}) : s.insertContent({ | |
type: this.name | |
}), s.command(({ | |
tr: a, | |
dispatch: o | |
}) => { | |
var r; | |
if (o) { | |
const { | |
$to: i | |
} = a.selection, c = i.end(); | |
if (i.nodeAfter) i.nodeAfter.isTextblock ? a.setSelection(Ee.create(a.doc, i.pos + 1)) : i.nodeAfter.isBlock ? a.setSelection(Je.create(a.doc, i.pos)) : a.setSelection(Ee.create(a.doc, i.pos)); | |
else { | |
const l = (r = i.parent.type.contentMatch.defaultType) === null || r === void 0 ? void 0 : r.create(); | |
l && (a.insert(c, l), a.setSelection(Ee.create(a.doc, c + 1))) | |
} | |
a.scrollIntoView() | |
} | |
return !0 | |
}).run() | |
} | |
} | |
}, | |
addInputRules() { | |
return [iu({ | |
find: /^(?:---|—-|___\s|\*\*\*\s)$/, | |
type: this.type | |
})] | |
} | |
}), | |
gp = cu.create({ | |
name: "subscript", | |
addOptions() { | |
return { | |
HTMLAttributes: {} | |
} | |
}, | |
parseHTML() { | |
return [{ | |
tag: "sub" | |
}, { | |
style: "vertical-align", | |
getAttrs(t) { | |
return t !== "sub" ? !1 : null | |
} | |
}] | |
}, | |
renderHTML({ | |
HTMLAttributes: t | |
}) { | |
return ["sub", en(this.options.HTMLAttributes, t), 0] | |
}, | |
addCommands() { | |
return { | |
setSubscript: () => ({ | |
commands: t | |
}) => t.setMark(this.name), | |
toggleSubscript: () => ({ | |
commands: t | |
}) => t.toggleMark(this.name), | |
unsetSubscript: () => ({ | |
commands: t | |
}) => t.unsetMark(this.name) | |
} | |
}, | |
addKeyboardShortcuts() { | |
return { | |
"Mod-,": () => this.editor.commands.toggleSubscript() | |
} | |
} | |
}), | |
bp = cu.create({ | |
name: "superscript", | |
addOptions() { | |
return { | |
HTMLAttributes: {} | |
} | |
}, | |
parseHTML() { | |
return [{ | |
tag: "sup" | |
}, { | |
style: "vertical-align", | |
getAttrs(t) { | |
return t !== "super" ? !1 : null | |
} | |
}] | |
}, | |
renderHTML({ | |
HTMLAttributes: t | |
}) { | |
return ["sup", en(this.options.HTMLAttributes, t), 0] | |
}, | |
addCommands() { | |
return { | |
setSuperscript: () => ({ | |
commands: t | |
}) => t.setMark(this.name), | |
toggleSuperscript: () => ({ | |
commands: t | |
}) => t.toggleMark(this.name), | |
unsetSuperscript: () => ({ | |
commands: t | |
}) => t.unsetMark(this.name) | |
} | |
}, | |
addKeyboardShortcuts() { | |
return { | |
"Mod-.": () => this.editor.commands.toggleSuperscript() | |
} | |
} | |
}); | |
var oe = {}; | |
const Ix = "Á", | |
Nx = "á", | |
Mx = "Ă", | |
Ox = "ă", | |
Lx = "∾", | |
Rx = "∿", | |
Px = "∾̳", | |
Bx = "Â", | |
zx = "â", | |
qx = "´", | |
Fx = "А", | |
jx = "а", | |
$x = "Æ", | |
Ux = "æ", | |
Vx = "", | |
Hx = "𝔄", | |
Gx = "𝔞", | |
Wx = "À", | |
Jx = "à", | |
Yx = "ℵ", | |
Kx = "ℵ", | |
Xx = "Α", | |
Zx = "α", | |
Qx = "Ā", | |
ey = "ā", | |
ty = "⨿", | |
ny = "&", | |
sy = "&", | |
ay = "⩕", | |
oy = "⩓", | |
ry = "∧", | |
iy = "⩜", | |
cy = "⩘", | |
ly = "⩚", | |
uy = "∠", | |
py = "⦤", | |
dy = "∠", | |
my = "⦨", | |
fy = "⦩", | |
hy = "⦪", | |
gy = "⦫", | |
by = "⦬", | |
vy = "⦭", | |
xy = "⦮", | |
yy = "⦯", | |
wy = "∡", | |
ky = "∟", | |
_y = "⊾", | |
Cy = "⦝", | |
Ey = "∢", | |
Ay = "Å", | |
Sy = "⍼", | |
Ty = "Ą", | |
Dy = "ą", | |
Iy = "𝔸", | |
Ny = "𝕒", | |
My = "⩯", | |
Oy = "≈", | |
Ly = "⩰", | |
Ry = "≊", | |
Py = "≋", | |
By = "'", | |
zy = "", | |
qy = "≈", | |
Fy = "≊", | |
jy = "Å", | |
$y = "å", | |
Uy = "𝒜", | |
Vy = "𝒶", | |
Hy = "≔", | |
Gy = "*", | |
Wy = "≈", | |
Jy = "≍", | |
Yy = "Ã", | |
Ky = "ã", | |
Xy = "Ä", | |
Zy = "ä", | |
Qy = "∳", | |
ew = "⨑", | |
tw = "≌", | |
nw = "϶", | |
sw = "‵", | |
aw = "∽", | |
ow = "⋍", | |
rw = "∖", | |
iw = "⫧", | |
cw = "⊽", | |
lw = "⌅", | |
uw = "⌆", | |
pw = "⌅", | |
dw = "⎵", | |
mw = "⎶", | |
fw = "≌", | |
hw = "Б", | |
gw = "б", | |
bw = "„", | |
vw = "∵", | |
xw = "∵", | |
yw = "∵", | |
ww = "⦰", | |
kw = "϶", | |
_w = "ℬ", | |
Cw = "ℬ", | |
Ew = "Β", | |
Aw = "β", | |
Sw = "ℶ", | |
Tw = "≬", | |
Dw = "𝔅", | |
Iw = "𝔟", | |
Nw = "⋂", | |
Mw = "◯", | |
Ow = "⋃", | |
Lw = "⨀", | |
Rw = "⨁", | |
Pw = "⨂", | |
Bw = "⨆", | |
zw = "★", | |
qw = "▽", | |
Fw = "△", | |
jw = "⨄", | |
$w = "⋁", | |
Uw = "⋀", | |
Vw = "⤍", | |
Hw = "⧫", | |
Gw = "▪", | |
Ww = "▴", | |
Jw = "▾", | |
Yw = "◂", | |
Kw = "▸", | |
Xw = "␣", | |
Zw = "▒", | |
Qw = "░", | |
ek = "▓", | |
tk = "█", | |
nk = "=⃥", | |
sk = "≡⃥", | |
ak = "⫭", | |
ok = "⌐", | |
rk = "𝔹", | |
ik = "𝕓", | |
ck = "⊥", | |
lk = "⊥", | |
uk = "⋈", | |
pk = "⧉", | |
dk = "┐", | |
mk = "╕", | |
fk = "╖", | |
hk = "╗", | |
gk = "┌", | |
bk = "╒", | |
vk = "╓", | |
xk = "╔", | |
yk = "─", | |
wk = "═", | |
kk = "┬", | |
_k = "╤", | |
Ck = "╥", | |
Ek = "╦", | |
Ak = "┴", | |
Sk = "╧", | |
Tk = "╨", | |
Dk = "╩", | |
Ik = "⊟", | |
Nk = "⊞", | |
Mk = "⊠", | |
Ok = "┘", | |
Lk = "╛", | |
Rk = "╜", | |
Pk = "╝", | |
Bk = "└", | |
zk = "╘", | |
qk = "╙", | |
Fk = "╚", | |
jk = "│", | |
$k = "║", | |
Uk = "┼", | |
Vk = "╪", | |
Hk = "╫", | |
Gk = "╬", | |
Wk = "┤", | |
Jk = "╡", | |
Yk = "╢", | |
Kk = "╣", | |
Xk = "├", | |
Zk = "╞", | |
Qk = "╟", | |
e0 = "╠", | |
t0 = "‵", | |
n0 = "˘", | |
s0 = "˘", | |
a0 = "¦", | |
o0 = "𝒷", | |
r0 = "ℬ", | |
i0 = "⁏", | |
c0 = "∽", | |
l0 = "⋍", | |
u0 = "⧅", | |
p0 = "\\", | |
d0 = "⟈", | |
m0 = "•", | |
f0 = "•", | |
h0 = "≎", | |
g0 = "⪮", | |
b0 = "≏", | |
v0 = "≎", | |
x0 = "≏", | |
y0 = "Ć", | |
w0 = "ć", | |
k0 = "⩄", | |
_0 = "⩉", | |
C0 = "⩋", | |
E0 = "∩", | |
A0 = "⋒", | |
S0 = "⩇", | |
T0 = "⩀", | |
D0 = "ⅅ", | |
I0 = "∩︀", | |
N0 = "⁁", | |
M0 = "ˇ", | |
O0 = "ℭ", | |
L0 = "⩍", | |
R0 = "Č", | |
P0 = "č", | |
B0 = "Ç", | |
z0 = "ç", | |
q0 = "Ĉ", | |
F0 = "ĉ", | |
j0 = "∰", | |
$0 = "⩌", | |
U0 = "⩐", | |
V0 = "Ċ", | |
H0 = "ċ", | |
G0 = "¸", | |
W0 = "¸", | |
J0 = "⦲", | |
Y0 = "¢", | |
K0 = "·", | |
X0 = "·", | |
Z0 = "𝔠", | |
Q0 = "ℭ", | |
e_ = "Ч", | |
t_ = "ч", | |
n_ = "✓", | |
s_ = "✓", | |
a_ = "Χ", | |
o_ = "χ", | |
r_ = "ˆ", | |
i_ = "≗", | |
c_ = "↺", | |
l_ = "↻", | |
u_ = "⊛", | |
p_ = "⊚", | |
d_ = "⊝", | |
m_ = "⊙", | |
f_ = "®", | |
h_ = "Ⓢ", | |
g_ = "⊖", | |
b_ = "⊕", | |
v_ = "⊗", | |
x_ = "○", | |
y_ = "⧃", | |
w_ = "≗", | |
k_ = "⨐", | |
__ = "⫯", | |
C_ = "⧂", | |
E_ = "∲", | |
A_ = "”", | |
S_ = "’", | |
T_ = "♣", | |
D_ = "♣", | |
I_ = ":", | |
N_ = "∷", | |
M_ = "⩴", | |
O_ = "≔", | |
L_ = "≔", | |
R_ = ",", | |
P_ = "@", | |
B_ = "∁", | |
z_ = "∘", | |
q_ = "∁", | |
F_ = "ℂ", | |
j_ = "≅", | |
$_ = "⩭", | |
U_ = "≡", | |
V_ = "∮", | |
H_ = "∯", | |
G_ = "∮", | |
W_ = "𝕔", | |
J_ = "ℂ", | |
Y_ = "∐", | |
K_ = "∐", | |
X_ = "©", | |
Z_ = "©", | |
Q_ = "℗", | |
e1 = "∳", | |
t1 = "↵", | |
n1 = "✗", | |
s1 = "⨯", | |
a1 = "𝒞", | |
o1 = "𝒸", | |
r1 = "⫏", | |
i1 = "⫑", | |
c1 = "⫐", | |
l1 = "⫒", | |
u1 = "⋯", | |
p1 = "⤸", | |
d1 = "⤵", | |
m1 = "⋞", | |
f1 = "⋟", | |
h1 = "↶", | |
g1 = "⤽", | |
b1 = "⩈", | |
v1 = "⩆", | |
x1 = "≍", | |
y1 = "∪", | |
w1 = "⋓", | |
k1 = "⩊", | |
_1 = "⊍", | |
C1 = "⩅", | |
E1 = "∪︀", | |
A1 = "↷", | |
S1 = "⤼", | |
T1 = "⋞", | |
D1 = "⋟", | |
I1 = "⋎", | |
N1 = "⋏", | |
M1 = "¤", | |
O1 = "↶", | |
L1 = "↷", | |
R1 = "⋎", | |
P1 = "⋏", | |
B1 = "∲", | |
z1 = "∱", | |
q1 = "⌭", | |
F1 = "†", | |
j1 = "‡", | |
$1 = "ℸ", | |
U1 = "↓", | |
V1 = "↡", | |
H1 = "⇓", | |
G1 = "‐", | |
W1 = "⫤", | |
J1 = "⊣", | |
Y1 = "⤏", | |
K1 = "˝", | |
X1 = "Ď", | |
Z1 = "ď", | |
Q1 = "Д", | |
eC = "д", | |
tC = "‡", | |
nC = "⇊", | |
sC = "ⅅ", | |
aC = "ⅆ", | |
oC = "⤑", | |
rC = "⩷", | |
iC = "°", | |
cC = "∇", | |
lC = "Δ", | |
uC = "δ", | |
pC = "⦱", | |
dC = "⥿", | |
mC = "𝔇", | |
fC = "𝔡", | |
hC = "⥥", | |
gC = "⇃", | |
bC = "⇂", | |
vC = "´", | |
xC = "˙", | |
yC = "˝", | |
wC = "`", | |
kC = "˜", | |
_C = "⋄", | |
CC = "⋄", | |
EC = "⋄", | |
AC = "♦", | |
SC = "♦", | |
TC = "¨", | |
DC = "ⅆ", | |
IC = "ϝ", | |
NC = "⋲", | |
MC = "÷", | |
OC = "÷", | |
LC = "⋇", | |
RC = "⋇", | |
PC = "Ђ", | |
BC = "ђ", | |
zC = "⌞", | |
qC = "⌍", | |
FC = "$", | |
jC = "𝔻", | |
$C = "𝕕", | |
UC = "¨", | |
VC = "˙", | |
HC = "⃜", | |
GC = "≐", | |
WC = "≑", | |
JC = "≐", | |
YC = "∸", | |
KC = "∔", | |
XC = "⊡", | |
ZC = "⌆", | |
QC = "∯", | |
eE = "¨", | |
tE = "⇓", | |
nE = "⇐", | |
sE = "⇔", | |
aE = "⫤", | |
oE = "⟸", | |
rE = "⟺", | |
iE = "⟹", | |
cE = "⇒", | |
lE = "⊨", | |
uE = "⇑", | |
pE = "⇕", | |
dE = "∥", | |
mE = "⤓", | |
fE = "↓", | |
hE = "↓", | |
gE = "⇓", | |
bE = "⇵", | |
vE = "̑", | |
xE = "⇊", | |
yE = "⇃", | |
wE = "⇂", | |
kE = "⥐", | |
_E = "⥞", | |
CE = "⥖", | |
EE = "↽", | |
AE = "⥟", | |
SE = "⥗", | |
TE = "⇁", | |
DE = "↧", | |
IE = "⊤", | |
NE = "⤐", | |
ME = "⌟", | |
OE = "⌌", | |
LE = "𝒟", | |
RE = "𝒹", | |
PE = "Ѕ", | |
BE = "ѕ", | |
zE = "⧶", | |
qE = "Đ", | |
FE = "đ", | |
jE = "⋱", | |
$E = "▿", | |
UE = "▾", | |
VE = "⇵", | |
HE = "⥯", | |
GE = "⦦", | |
WE = "Џ", | |
JE = "џ", | |
YE = "⟿", | |
KE = "É", | |
XE = "é", | |
ZE = "⩮", | |
QE = "Ě", | |
eA = "ě", | |
tA = "Ê", | |
nA = "ê", | |
sA = "≖", | |
aA = "≕", | |
oA = "Э", | |
rA = "э", | |
iA = "⩷", | |
cA = "Ė", | |
lA = "ė", | |
uA = "≑", | |
pA = "ⅇ", | |
dA = "≒", | |
mA = "𝔈", | |
fA = "𝔢", | |
hA = "⪚", | |
gA = "È", | |
bA = "è", | |
vA = "⪖", | |
xA = "⪘", | |
yA = "⪙", | |
wA = "∈", | |
kA = "⏧", | |
_A = "ℓ", | |
CA = "⪕", | |
EA = "⪗", | |
AA = "Ē", | |
SA = "ē", | |
TA = "∅", | |
DA = "∅", | |
IA = "◻", | |
NA = "∅", | |
MA = "▫", | |
OA = " ", | |
LA = " ", | |
RA = " ", | |
PA = "Ŋ", | |
BA = "ŋ", | |
zA = " ", | |
qA = "Ę", | |
FA = "ę", | |
jA = "𝔼", | |
$A = "𝕖", | |
UA = "⋕", | |
VA = "⧣", | |
HA = "⩱", | |
GA = "ε", | |
WA = "Ε", | |
JA = "ε", | |
YA = "ϵ", | |
KA = "≖", | |
XA = "≕", | |
ZA = "≂", | |
QA = "⪖", | |
eS = "⪕", | |
tS = "⩵", | |
nS = "=", | |
sS = "≂", | |
aS = "≟", | |
oS = "⇌", | |
rS = "≡", | |
iS = "⩸", | |
cS = "⧥", | |
lS = "⥱", | |
uS = "≓", | |
pS = "ℯ", | |
dS = "ℰ", | |
mS = "≐", | |
fS = "⩳", | |
hS = "≂", | |
gS = "Η", | |
bS = "η", | |
vS = "Ð", | |
xS = "ð", | |
yS = "Ë", | |
wS = "ë", | |
kS = "€", | |
_S = "!", | |
CS = "∃", | |
ES = "∃", | |
AS = "ℰ", | |
SS = "ⅇ", | |
TS = "ⅇ", | |
DS = "≒", | |
IS = "Ф", | |
NS = "ф", | |
MS = "♀", | |
OS = "ffi", | |
LS = "ff", | |
RS = "ffl", | |
PS = "𝔉", | |
BS = "𝔣", | |
zS = "fi", | |
qS = "◼", | |
FS = "▪", | |
jS = "fj", | |
$S = "♭", | |
US = "fl", | |
VS = "▱", | |
HS = "ƒ", | |
GS = "𝔽", | |
WS = "𝕗", | |
JS = "∀", | |
YS = "∀", | |
KS = "⋔", | |
XS = "⫙", | |
ZS = "ℱ", | |
QS = "⨍", | |
eT = "½", | |
tT = "⅓", | |
nT = "¼", | |
sT = "⅕", | |
aT = "⅙", | |
oT = "⅛", | |
rT = "⅔", | |
iT = "⅖", | |
cT = "¾", | |
lT = "⅗", | |
uT = "⅜", | |
pT = "⅘", | |
dT = "⅚", | |
mT = "⅝", | |
fT = "⅞", | |
hT = "⁄", | |
gT = "⌢", | |
bT = "𝒻", | |
vT = "ℱ", | |
xT = "ǵ", | |
yT = "Γ", | |
wT = "γ", | |
kT = "Ϝ", | |
_T = "ϝ", | |
CT = "⪆", | |
ET = "Ğ", | |
AT = "ğ", | |
ST = "Ģ", | |
TT = "Ĝ", | |
DT = "ĝ", | |
IT = "Г", | |
NT = "г", | |
MT = "Ġ", | |
OT = "ġ", | |
LT = "≥", | |
RT = "≧", | |
PT = "⪌", | |
BT = "⋛", | |
zT = "≥", | |
qT = "≧", | |
FT = "⩾", | |
jT = "⪩", | |
$T = "⩾", | |
UT = "⪀", | |
VT = "⪂", | |
HT = "⪄", | |
GT = "⋛︀", | |
WT = "⪔", | |
JT = "𝔊", | |
YT = "𝔤", | |
KT = "≫", | |
XT = "⋙", | |
ZT = "⋙", | |
QT = "ℷ", | |
e2 = "Ѓ", | |
t2 = "ѓ", | |
n2 = "⪥", | |
s2 = "≷", | |
a2 = "⪒", | |
o2 = "⪤", | |
r2 = "⪊", | |
i2 = "⪊", | |
c2 = "⪈", | |
l2 = "≩", | |
u2 = "⪈", | |
p2 = "≩", | |
d2 = "⋧", | |
m2 = "𝔾", | |
f2 = "𝕘", | |
h2 = "`", | |
g2 = "≥", | |
b2 = "⋛", | |
v2 = "≧", | |
x2 = "⪢", | |
y2 = "≷", | |
w2 = "⩾", | |
k2 = "≳", | |
_2 = "𝒢", | |
C2 = "ℊ", | |
E2 = "≳", | |
A2 = "⪎", | |
S2 = "⪐", | |
T2 = "⪧", | |
D2 = "⩺", | |
I2 = ">", | |
N2 = ">", | |
M2 = "≫", | |
O2 = "⋗", | |
L2 = "⦕", | |
R2 = "⩼", | |
P2 = "⪆", | |
B2 = "⥸", | |
z2 = "⋗", | |
q2 = "⋛", | |
F2 = "⪌", | |
j2 = "≷", | |
$2 = "≳", | |
U2 = "≩︀", | |
V2 = "≩︀", | |
H2 = "ˇ", | |
G2 = " ", | |
W2 = "½", | |
J2 = "ℋ", | |
Y2 = "Ъ", | |
K2 = "ъ", | |
X2 = "⥈", | |
Z2 = "↔", | |
Q2 = "⇔", | |
eD = "↭", | |
tD = "^", | |
nD = "ℏ", | |
sD = "Ĥ", | |
aD = "ĥ", | |
oD = "♥", | |
rD = "♥", | |
iD = "…", | |
cD = "⊹", | |
lD = "𝔥", | |
uD = "ℌ", | |
pD = "ℋ", | |
dD = "⤥", | |
mD = "⤦", | |
fD = "⇿", | |
hD = "∻", | |
gD = "↩", | |
bD = "↪", | |
vD = "𝕙", | |
xD = "ℍ", | |
yD = "―", | |
wD = "─", | |
kD = "𝒽", | |
_D = "ℋ", | |
CD = "ℏ", | |
ED = "Ħ", | |
AD = "ħ", | |
SD = "≎", | |
TD = "≏", | |
DD = "⁃", | |
ID = "‐", | |
ND = "Í", | |
MD = "í", | |
OD = "", | |
LD = "Î", | |
RD = "î", | |
PD = "И", | |
BD = "и", | |
zD = "İ", | |
qD = "Е", | |
FD = "е", | |
jD = "¡", | |
$D = "⇔", | |
UD = "𝔦", | |
VD = "ℑ", | |
HD = "Ì", | |
GD = "ì", | |
WD = "ⅈ", | |
JD = "⨌", | |
YD = "∭", | |
KD = "⧜", | |
XD = "℩", | |
ZD = "IJ", | |
QD = "ij", | |
eI = "Ī", | |
tI = "ī", | |
nI = "ℑ", | |
sI = "ⅈ", | |
aI = "ℐ", | |
oI = "ℑ", | |
rI = "ı", | |
iI = "ℑ", | |
cI = "⊷", | |
lI = "Ƶ", | |
uI = "⇒", | |
pI = "℅", | |
dI = "∞", | |
mI = "⧝", | |
fI = "ı", | |
hI = "⊺", | |
gI = "∫", | |
bI = "∬", | |
vI = "ℤ", | |
xI = "∫", | |
yI = "⊺", | |
wI = "⋂", | |
kI = "⨗", | |
_I = "⨼", | |
CI = "", | |
EI = "", | |
AI = "Ё", | |
SI = "ё", | |
TI = "Į", | |
DI = "į", | |
II = "𝕀", | |
NI = "𝕚", | |
MI = "Ι", | |
OI = "ι", | |
LI = "⨼", | |
RI = "¿", | |
PI = "𝒾", | |
BI = "ℐ", | |
zI = "∈", | |
qI = "⋵", | |
FI = "⋹", | |
jI = "⋴", | |
$I = "⋳", | |
UI = "∈", | |
VI = "", | |
HI = "Ĩ", | |
GI = "ĩ", | |
WI = "І", | |
JI = "і", | |
YI = "Ï", | |
KI = "ï", | |
XI = "Ĵ", | |
ZI = "ĵ", | |
QI = "Й", | |
eN = "й", | |
tN = "𝔍", | |
nN = "𝔧", | |
sN = "ȷ", | |
aN = "𝕁", | |
oN = "𝕛", | |
rN = "𝒥", | |
iN = "𝒿", | |
cN = "Ј", | |
lN = "ј", | |
uN = "Є", | |
pN = "є", | |
dN = "Κ", | |
mN = "κ", | |
fN = "ϰ", | |
hN = "Ķ", | |
gN = "ķ", | |
bN = "К", | |
vN = "к", | |
xN = "𝔎", | |
yN = "𝔨", | |
wN = "ĸ", | |
kN = "Х", | |
_N = "х", | |
CN = "Ќ", | |
EN = "ќ", | |
AN = "𝕂", | |
SN = "𝕜", | |
TN = "𝒦", | |
DN = "𝓀", | |
IN = "⇚", | |
NN = "Ĺ", | |
MN = "ĺ", | |
ON = "⦴", | |
LN = "ℒ", | |
RN = "Λ", | |
PN = "λ", | |
BN = "⟨", | |
zN = "⟪", | |
qN = "⦑", | |
FN = "⟨", | |
jN = "⪅", | |
$N = "ℒ", | |
UN = "«", | |
VN = "⇤", | |
HN = "⤟", | |
GN = "←", | |
WN = "↞", | |
JN = "⇐", | |
YN = "⤝", | |
KN = "↩", | |
XN = "↫", | |
ZN = "⤹", | |
QN = "⥳", | |
eM = "↢", | |
tM = "⤙", | |
nM = "⤛", | |
sM = "⪫", | |
aM = "⪭", | |
oM = "⪭︀", | |
rM = "⤌", | |
iM = "⤎", | |
cM = "❲", | |
lM = "{", | |
uM = "[", | |
pM = "⦋", | |
dM = "⦏", | |
mM = "⦍", | |
fM = "Ľ", | |
hM = "ľ", | |
gM = "Ļ", | |
bM = "ļ", | |
vM = "⌈", | |
xM = "{", | |
yM = "Л", | |
wM = "л", | |
kM = "⤶", | |
_M = "“", | |
CM = "„", | |
EM = "⥧", | |
AM = "⥋", | |
SM = "↲", | |
TM = "≤", | |
DM = "≦", | |
IM = "⟨", | |
NM = "⇤", | |
MM = "←", | |
OM = "←", | |
LM = "⇐", | |
RM = "⇆", | |
PM = "↢", | |
BM = "⌈", | |
zM = "⟦", | |
qM = "⥡", | |
FM = "⥙", | |
jM = "⇃", | |
$M = "⌊", | |
UM = "↽", | |
VM = "↼", | |
HM = "⇇", | |
GM = "↔", | |
WM = "↔", | |
JM = "⇔", | |
YM = "⇆", | |
KM = "⇋", | |
XM = "↭", | |
ZM = "⥎", | |
QM = "↤", | |
eO = "⊣", | |
tO = "⥚", | |
nO = "⋋", | |
sO = "⧏", | |
aO = "⊲", | |
oO = "⊴", | |
rO = "⥑", | |
iO = "⥠", | |
cO = "⥘", | |
lO = "↿", | |
uO = "⥒", | |
pO = "↼", | |
dO = "⪋", | |
mO = "⋚", | |
fO = "≤", | |
hO = "≦", | |
gO = "⩽", | |
bO = "⪨", | |
vO = "⩽", | |
xO = "⩿", | |
yO = "⪁", | |
wO = "⪃", | |
kO = "⋚︀", | |
_O = "⪓", | |
CO = "⪅", | |
EO = "⋖", | |
AO = "⋚", | |
SO = "⪋", | |
TO = "⋚", | |
DO = "≦", | |
IO = "≶", | |
NO = "≶", | |
MO = "⪡", | |
OO = "≲", | |
LO = "⩽", | |
RO = "≲", | |
PO = "⥼", | |
BO = "⌊", | |
zO = "𝔏", | |
qO = "𝔩", | |
FO = "≶", | |
jO = "⪑", | |
$O = "⥢", | |
UO = "↽", | |
VO = "↼", | |
HO = "⥪", | |
GO = "▄", | |
WO = "Љ", | |
JO = "љ", | |
YO = "⇇", | |
KO = "≪", | |
XO = "⋘", | |
ZO = "⌞", | |
QO = "⇚", | |
eL = "⥫", | |
tL = "◺", | |
nL = "Ŀ", | |
sL = "ŀ", | |
aL = "⎰", | |
oL = "⎰", | |
rL = "⪉", | |
iL = "⪉", | |
cL = "⪇", | |
lL = "≨", | |
uL = "⪇", | |
pL = "≨", | |
dL = "⋦", | |
mL = "⟬", | |
fL = "⇽", | |
hL = "⟦", | |
gL = "⟵", | |
bL = "⟵", | |
vL = "⟸", | |
xL = "⟷", | |
yL = "⟷", | |
wL = "⟺", | |
kL = "⟼", | |
_L = "⟶", | |
CL = "⟶", | |
EL = "⟹", | |
AL = "↫", | |
SL = "↬", | |
TL = "⦅", | |
DL = "𝕃", | |
IL = "𝕝", | |
NL = "⨭", | |
ML = "⨴", | |
OL = "∗", | |
LL = "_", | |
RL = "↙", | |
PL = "↘", | |
BL = "◊", | |
zL = "◊", | |
qL = "⧫", | |
FL = "(", | |
jL = "⦓", | |
$L = "⇆", | |
UL = "⌟", | |
VL = "⇋", | |
HL = "⥭", | |
GL = "", | |
WL = "⊿", | |
JL = "‹", | |
YL = "𝓁", | |
KL = "ℒ", | |
XL = "↰", | |
ZL = "↰", | |
QL = "≲", | |
e3 = "⪍", | |
t3 = "⪏", | |
n3 = "[", | |
s3 = "‘", | |
a3 = "‚", | |
o3 = "Ł", | |
r3 = "ł", | |
i3 = "⪦", | |
c3 = "⩹", | |
l3 = "<", | |
u3 = "<", | |
p3 = "≪", | |
d3 = "⋖", | |
m3 = "⋋", | |
f3 = "⋉", | |
h3 = "⥶", | |
g3 = "⩻", | |
b3 = "◃", | |
v3 = "⊴", | |
x3 = "◂", | |
y3 = "⦖", | |
w3 = "⥊", | |
k3 = "⥦", | |
_3 = "≨︀", | |
C3 = "≨︀", | |
E3 = "¯", | |
A3 = "♂", | |
S3 = "✠", | |
T3 = "✠", | |
D3 = "↦", | |
I3 = "↦", | |
N3 = "↧", | |
M3 = "↤", | |
O3 = "↥", | |
L3 = "▮", | |
R3 = "⨩", | |
P3 = "М", | |
B3 = "м", | |
z3 = "—", | |
q3 = "∺", | |
F3 = "∡", | |
j3 = " ", | |
$3 = "ℳ", | |
U3 = "𝔐", | |
V3 = "𝔪", | |
H3 = "℧", | |
G3 = "µ", | |
W3 = "*", | |
J3 = "⫰", | |
Y3 = "∣", | |
K3 = "·", | |
X3 = "⊟", | |
Z3 = "−", | |
Q3 = "∸", | |
eR = "⨪", | |
tR = "∓", | |
nR = "⫛", | |
sR = "…", | |
aR = "∓", | |
oR = "⊧", | |
rR = "𝕄", | |
iR = "𝕞", | |
cR = "∓", | |
lR = "𝓂", | |
uR = "ℳ", | |
pR = "∾", | |
dR = "Μ", | |
mR = "μ", | |
fR = "⊸", | |
hR = "⊸", | |
gR = "∇", | |
bR = "Ń", | |
vR = "ń", | |
xR = "∠⃒", | |
yR = "≉", | |
wR = "⩰̸", | |
kR = "≋̸", | |
_R = "ʼn", | |
CR = "≉", | |
ER = "♮", | |
AR = "ℕ", | |
SR = "♮", | |
TR = " ", | |
DR = "≎̸", | |
IR = "≏̸", | |
NR = "⩃", | |
MR = "Ň", | |
OR = "ň", | |
LR = "Ņ", | |
RR = "ņ", | |
PR = "≇", | |
BR = "⩭̸", | |
zR = "⩂", | |
qR = "Н", | |
FR = "н", | |
jR = "–", | |
$R = "⤤", | |
UR = "↗", | |
VR = "⇗", | |
HR = "↗", | |
GR = "≠", | |
WR = "≐̸", | |
JR = "", | |
YR = "", | |
KR = "", | |
XR = "", | |
ZR = "≢", | |
QR = "⤨", | |
eP = "≂̸", | |
tP = "≫", | |
nP = "≪", | |
sP = ` | |
`, | |
aP = "∄", | |
oP = "∄", | |
rP = "𝔑", | |
iP = "𝔫", | |
cP = "≧̸", | |
lP = "≱", | |
uP = "≱", | |
pP = "≧̸", | |
dP = "⩾̸", | |
mP = "⩾̸", | |
fP = "⋙̸", | |
hP = "≵", | |
gP = "≫⃒", | |
bP = "≯", | |
vP = "≯", | |
xP = "≫̸", | |
yP = "↮", | |
wP = "⇎", | |
kP = "⫲", | |
_P = "∋", | |
CP = "⋼", | |
EP = "⋺", | |
AP = "∋", | |
SP = "Њ", | |
TP = "њ", | |
DP = "↚", | |
IP = "⇍", | |
NP = "‥", | |
MP = "≦̸", | |
OP = "≰", | |
LP = "↚", | |
RP = "⇍", | |
PP = "↮", | |
BP = "⇎", | |
zP = "≰", | |
qP = "≦̸", | |
FP = "⩽̸", | |
jP = "⩽̸", | |
$P = "≮", | |
UP = "⋘̸", | |
VP = "≴", | |
HP = "≪⃒", | |
GP = "≮", | |
WP = "⋪", | |
JP = "⋬", | |
YP = "≪̸", | |
KP = "∤", | |
XP = "", | |
ZP = " ", | |
QP = "𝕟", | |
e4 = "ℕ", | |
t4 = "⫬", | |
n4 = "¬", | |
s4 = "≢", | |
a4 = "≭", | |
o4 = "∦", | |
r4 = "∉", | |
i4 = "≠", | |
c4 = "≂̸", | |
l4 = "∄", | |
u4 = "≯", | |
p4 = "≱", | |
d4 = "≧̸", | |
m4 = "≫̸", | |
f4 = "≹", | |
h4 = "⩾̸", | |
g4 = "≵", | |
b4 = "≎̸", | |
v4 = "≏̸", | |
x4 = "∉", | |
y4 = "⋵̸", | |
w4 = "⋹̸", | |
k4 = "∉", | |
_4 = "⋷", | |
C4 = "⋶", | |
E4 = "⧏̸", | |
A4 = "⋪", | |
S4 = "⋬", | |
T4 = "≮", | |
D4 = "≰", | |
I4 = "≸", | |
N4 = "≪̸", | |
M4 = "⩽̸", | |
O4 = "≴", | |
L4 = "⪢̸", | |
R4 = "⪡̸", | |
P4 = "∌", | |
B4 = "∌", | |
z4 = "⋾", | |
q4 = "⋽", | |
F4 = "⊀", | |
j4 = "⪯̸", | |
$4 = "⋠", | |
U4 = "∌", | |
V4 = "⧐̸", | |
H4 = "⋫", | |
G4 = "⋭", | |
W4 = "⊏̸", | |
J4 = "⋢", | |
Y4 = "⊐̸", | |
K4 = "⋣", | |
X4 = "⊂⃒", | |
Z4 = "⊈", | |
Q4 = "⊁", | |
e6 = "⪰̸", | |
t6 = "⋡", | |
n6 = "≿̸", | |
s6 = "⊃⃒", | |
a6 = "⊉", | |
o6 = "≁", | |
r6 = "≄", | |
i6 = "≇", | |
c6 = "≉", | |
l6 = "∤", | |
u6 = "∦", | |
p6 = "∦", | |
d6 = "⫽⃥", | |
m6 = "∂̸", | |
f6 = "⨔", | |
h6 = "⊀", | |
g6 = "⋠", | |
b6 = "⊀", | |
v6 = "⪯̸", | |
x6 = "⪯̸", | |
y6 = "⤳̸", | |
w6 = "↛", | |
k6 = "⇏", | |
_6 = "↝̸", | |
C6 = "↛", | |
E6 = "⇏", | |
A6 = "⋫", | |
S6 = "⋭", | |
T6 = "⊁", | |
D6 = "⋡", | |
I6 = "⪰̸", | |
N6 = "𝒩", | |
M6 = "𝓃", | |
O6 = "∤", | |
L6 = "∦", | |
R6 = "≁", | |
P6 = "≄", | |
B6 = "≄", | |
z6 = "∤", | |
q6 = "∦", | |
F6 = "⋢", | |
j6 = "⋣", | |
$6 = "⊄", | |
U6 = "⫅̸", | |
V6 = "⊈", | |
H6 = "⊂⃒", | |
G6 = "⊈", | |
W6 = "⫅̸", | |
J6 = "⊁", | |
Y6 = "⪰̸", | |
K6 = "⊅", | |
X6 = "⫆̸", | |
Z6 = "⊉", | |
Q6 = "⊃⃒", | |
eB = "⊉", | |
tB = "⫆̸", | |
nB = "≹", | |
sB = "Ñ", | |
aB = "ñ", | |
oB = "≸", | |
rB = "⋪", | |
iB = "⋬", | |
cB = "⋫", | |
lB = "⋭", | |
uB = "Ν", | |
pB = "ν", | |
dB = "#", | |
mB = "№", | |
fB = " ", | |
hB = "≍⃒", | |
gB = "⊬", | |
bB = "⊭", | |
vB = "⊮", | |
xB = "⊯", | |
yB = "≥⃒", | |
wB = ">⃒", | |
kB = "⤄", | |
_B = "⧞", | |
CB = "⤂", | |
EB = "≤⃒", | |
AB = "<⃒", | |
SB = "⊴⃒", | |
TB = "⤃", | |
DB = "⊵⃒", | |
IB = "∼⃒", | |
NB = "⤣", | |
MB = "↖", | |
OB = "⇖", | |
LB = "↖", | |
RB = "⤧", | |
PB = "Ó", | |
BB = "ó", | |
zB = "⊛", | |
qB = "Ô", | |
FB = "ô", | |
jB = "⊚", | |
$B = "О", | |
UB = "о", | |
VB = "⊝", | |
HB = "Ő", | |
GB = "ő", | |
WB = "⨸", | |
JB = "⊙", | |
YB = "⦼", | |
KB = "Œ", | |
XB = "œ", | |
ZB = "⦿", | |
QB = "𝔒", | |
e5 = "𝔬", | |
t5 = "˛", | |
n5 = "Ò", | |
s5 = "ò", | |
a5 = "⧁", | |
o5 = "⦵", | |
r5 = "Ω", | |
i5 = "∮", | |
c5 = "↺", | |
l5 = "⦾", | |
u5 = "⦻", | |
p5 = "‾", | |
d5 = "⧀", | |
m5 = "Ō", | |
f5 = "ō", | |
h5 = "Ω", | |
g5 = "ω", | |
b5 = "Ο", | |
v5 = "ο", | |
x5 = "⦶", | |
y5 = "⊖", | |
w5 = "𝕆", | |
k5 = "𝕠", | |
_5 = "⦷", | |
C5 = "“", | |
E5 = "‘", | |
A5 = "⦹", | |
S5 = "⊕", | |
T5 = "↻", | |
D5 = "⩔", | |
I5 = "∨", | |
N5 = "⩝", | |
M5 = "ℴ", | |
O5 = "ℴ", | |
L5 = "ª", | |
R5 = "º", | |
P5 = "⊶", | |
B5 = "⩖", | |
z5 = "⩗", | |
q5 = "⩛", | |
F5 = "Ⓢ", | |
j5 = "𝒪", | |
$5 = "ℴ", | |
U5 = "Ø", | |
V5 = "ø", | |
H5 = "⊘", | |
G5 = "Õ", | |
W5 = "õ", | |
J5 = "⨶", | |
Y5 = "⨷", | |
K5 = "⊗", | |
X5 = "Ö", | |
Z5 = "ö", | |
Q5 = "⌽", | |
ez = "‾", | |
tz = "⏞", | |
nz = "⎴", | |
sz = "⏜", | |
az = "¶", | |
oz = "∥", | |
rz = "∥", | |
iz = "⫳", | |
cz = "⫽", | |
lz = "∂", | |
uz = "∂", | |
pz = "П", | |
dz = "п", | |
mz = "%", | |
fz = ".", | |
hz = "‰", | |
gz = "⊥", | |
bz = "‱", | |
vz = "𝔓", | |
xz = "𝔭", | |
yz = "Φ", | |
wz = "φ", | |
kz = "ϕ", | |
_z = "ℳ", | |
Cz = "☎", | |
Ez = "Π", | |
Az = "π", | |
Sz = "⋔", | |
Tz = "ϖ", | |
Dz = "ℏ", | |
Iz = "ℎ", | |
Nz = "ℏ", | |
Mz = "⨣", | |
Oz = "⊞", | |
Lz = "⨢", | |
Rz = "+", | |
Pz = "∔", | |
Bz = "⨥", | |
zz = "⩲", | |
qz = "±", | |
Fz = "±", | |
jz = "⨦", | |
$z = "⨧", | |
Uz = "±", | |
Vz = "ℌ", | |
Hz = "⨕", | |
Gz = "𝕡", | |
Wz = "ℙ", | |
Jz = "£", | |
Yz = "⪷", | |
Kz = "⪻", | |
Xz = "≺", | |
Zz = "≼", | |
Qz = "⪷", | |
eq = "≺", | |
tq = "≼", | |
nq = "≺", | |
sq = "⪯", | |
aq = "≼", | |
oq = "≾", | |
rq = "⪯", | |
iq = "⪹", | |
cq = "⪵", | |
lq = "⋨", | |
uq = "⪯", | |
pq = "⪳", | |
dq = "≾", | |
mq = "′", | |
fq = "″", | |
hq = "ℙ", | |
gq = "⪹", | |
bq = "⪵", | |
vq = "⋨", | |
xq = "∏", | |
yq = "∏", | |
wq = "⌮", | |
kq = "⌒", | |
_q = "⌓", | |
Cq = "∝", | |
Eq = "∝", | |
Aq = "∷", | |
Sq = "∝", | |
Tq = "≾", | |
Dq = "⊰", | |
Iq = "𝒫", | |
Nq = "𝓅", | |
Mq = "Ψ", | |
Oq = "ψ", | |
Lq = " ", | |
Rq = "𝔔", | |
Pq = "𝔮", | |
Bq = "⨌", | |
zq = "𝕢", | |
qq = "ℚ", | |
Fq = "⁗", | |
jq = "𝒬", | |
$q = "𝓆", | |
Uq = "ℍ", | |
Vq = "⨖", | |
Hq = "?", | |
Gq = "≟", | |
Wq = '"', | |
Jq = '"', | |
Yq = "⇛", | |
Kq = "∽̱", | |
Xq = "Ŕ", | |
Zq = "ŕ", | |
Qq = "√", | |
e8 = "⦳", | |
t8 = "⟩", | |
n8 = "⟫", | |
s8 = "⦒", | |
a8 = "⦥", | |
o8 = "⟩", | |
r8 = "»", | |
i8 = "⥵", | |
c8 = "⇥", | |
l8 = "⤠", | |
u8 = "⤳", | |
p8 = "→", | |
d8 = "↠", | |
m8 = "⇒", | |
f8 = "⤞", | |
h8 = "↪", | |
g8 = "↬", | |
b8 = "⥅", | |
v8 = "⥴", | |
x8 = "⤖", | |
y8 = "↣", | |
w8 = "↝", | |
k8 = "⤚", | |
_8 = "⤜", | |
C8 = "∶", | |
E8 = "ℚ", | |
A8 = "⤍", | |
S8 = "⤏", | |
T8 = "⤐", | |
D8 = "❳", | |
I8 = "}", | |
N8 = "]", | |
M8 = "⦌", | |
O8 = "⦎", | |
L8 = "⦐", | |
R8 = "Ř", | |
P8 = "ř", | |
B8 = "Ŗ", | |
z8 = "ŗ", | |
q8 = "⌉", | |
F8 = "}", | |
j8 = "Р", | |
$8 = "р", | |
U8 = "⤷", | |
V8 = "⥩", | |
H8 = "”", | |
G8 = "”", | |
W8 = "↳", | |
J8 = "ℜ", | |
Y8 = "ℛ", | |
K8 = "ℜ", | |
X8 = "ℝ", | |
Z8 = "ℜ", | |
Q8 = "▭", | |
eF = "®", | |
tF = "®", | |
nF = "∋", | |
sF = "⇋", | |
aF = "⥯", | |
oF = "⥽", | |
rF = "⌋", | |
iF = "𝔯", | |
cF = "ℜ", | |
lF = "⥤", | |
uF = "⇁", | |
pF = "⇀", | |
dF = "⥬", | |
mF = "Ρ", | |
fF = "ρ", | |
hF = "ϱ", | |
gF = "⟩", | |
bF = "⇥", | |
vF = "→", | |
xF = "→", | |
yF = "⇒", | |
wF = "⇄", | |
kF = "↣", | |
_F = "⌉", | |
CF = "⟧", | |
EF = "⥝", | |
AF = "⥕", | |
SF = "⇂", | |
TF = "⌋", | |
DF = "⇁", | |
IF = "⇀", | |
NF = "⇄", | |
MF = "⇌", | |
OF = "⇉", | |
LF = "↝", | |
RF = "↦", | |
PF = "⊢", | |
BF = "⥛", | |
zF = "⋌", | |
qF = "⧐", | |
FF = "⊳", | |
jF = "⊵", | |
$F = "⥏", | |
UF = "⥜", | |
VF = "⥔", | |
HF = "↾", | |
GF = "⥓", | |
WF = "⇀", | |
JF = "˚", | |
YF = "≓", | |
KF = "⇄", | |
XF = "⇌", | |
ZF = "", | |
QF = "⎱", | |
e7 = "⎱", | |
t7 = "⫮", | |
n7 = "⟭", | |
s7 = "⇾", | |
a7 = "⟧", | |
o7 = "⦆", | |
r7 = "𝕣", | |
i7 = "ℝ", | |
c7 = "⨮", | |
l7 = "⨵", | |
u7 = "⥰", | |
p7 = ")", | |
d7 = "⦔", | |
m7 = "⨒", | |
f7 = "⇉", | |
h7 = "⇛", | |
g7 = "›", | |
b7 = "𝓇", | |
v7 = "ℛ", | |
x7 = "↱", | |
y7 = "↱", | |
w7 = "]", | |
k7 = "’", | |
_7 = "’", | |
C7 = "⋌", | |
E7 = "⋊", | |
A7 = "▹", | |
S7 = "⊵", | |
T7 = "▸", | |
D7 = "⧎", | |
I7 = "⧴", | |
N7 = "⥨", | |
M7 = "℞", | |
O7 = "Ś", | |
L7 = "ś", | |
R7 = "‚", | |
P7 = "⪸", | |
B7 = "Š", | |
z7 = "š", | |
q7 = "⪼", | |
F7 = "≻", | |
j7 = "≽", | |
$7 = "⪰", | |
U7 = "⪴", | |
V7 = "Ş", | |
H7 = "ş", | |
G7 = "Ŝ", | |
W7 = "ŝ", | |
J7 = "⪺", | |
Y7 = "⪶", | |
K7 = "⋩", | |
X7 = "⨓", | |
Z7 = "≿", | |
Q7 = "С", | |
ej = "с", | |
tj = "⊡", | |
nj = "⋅", | |
sj = "⩦", | |
aj = "⤥", | |
oj = "↘", | |
rj = "⇘", | |
ij = "↘", | |
cj = "§", | |
lj = ";", | |
uj = "⤩", | |
pj = "∖", | |
dj = "∖", | |
mj = "✶", | |
fj = "𝔖", | |
hj = "𝔰", | |
gj = "⌢", | |
bj = "♯", | |
vj = "Щ", | |
xj = "щ", | |
yj = "Ш", | |
wj = "ш", | |
kj = "↓", | |
_j = "←", | |
Cj = "∣", | |
Ej = "∥", | |
Aj = "→", | |
Sj = "↑", | |
Tj = "", | |
Dj = "Σ", | |
Ij = "σ", | |
Nj = "ς", | |
Mj = "ς", | |
Oj = "∼", | |
Lj = "⩪", | |
Rj = "≃", | |
Pj = "≃", | |
Bj = "⪞", | |
zj = "⪠", | |
qj = "⪝", | |
Fj = "⪟", | |
jj = "≆", | |
$j = "⨤", | |
Uj = "⥲", | |
Vj = "←", | |
Hj = "∘", | |
Gj = "∖", | |
Wj = "⨳", | |
Jj = "⧤", | |
Yj = "∣", | |
Kj = "⌣", | |
Xj = "⪪", | |
Zj = "⪬", | |
Qj = "⪬︀", | |
e9 = "Ь", | |
t9 = "ь", | |
n9 = "⌿", | |
s9 = "⧄", | |
a9 = "/", | |
o9 = "𝕊", | |
r9 = "𝕤", | |
i9 = "♠", | |
c9 = "♠", | |
l9 = "∥", | |
u9 = "⊓", | |
p9 = "⊓︀", | |
d9 = "⊔", | |
m9 = "⊔︀", | |
f9 = "√", | |
h9 = "⊏", | |
g9 = "⊑", | |
b9 = "⊏", | |
v9 = "⊑", | |
x9 = "⊐", | |
y9 = "⊒", | |
w9 = "⊐", | |
k9 = "⊒", | |
_9 = "□", | |
C9 = "□", | |
E9 = "⊓", | |
A9 = "⊏", | |
S9 = "⊑", | |
T9 = "⊐", | |
D9 = "⊒", | |
I9 = "⊔", | |
N9 = "▪", | |
M9 = "□", | |
O9 = "▪", | |
L9 = "→", | |
R9 = "𝒮", | |
P9 = "𝓈", | |
B9 = "∖", | |
z9 = "⌣", | |
q9 = "⋆", | |
F9 = "⋆", | |
j9 = "☆", | |
$9 = "★", | |
U9 = "ϵ", | |
V9 = "ϕ", | |
H9 = "¯", | |
G9 = "⊂", | |
W9 = "⋐", | |
J9 = "⪽", | |
Y9 = "⫅", | |
K9 = "⊆", | |
X9 = "⫃", | |
Z9 = "⫁", | |
Q9 = "⫋", | |
e$ = "⊊", | |
t$ = "⪿", | |
n$ = "⥹", | |
s$ = "⊂", | |
a$ = "⋐", | |
o$ = "⊆", | |
r$ = "⫅", | |
i$ = "⊆", | |
c$ = "⊊", | |
l$ = "⫋", | |
u$ = "⫇", | |
p$ = "⫕", | |
d$ = "⫓", | |
m$ = "⪸", | |
f$ = "≻", | |
h$ = "≽", | |
g$ = "≻", | |
b$ = "⪰", | |
v$ = "≽", | |
x$ = "≿", | |
y$ = "⪰", | |
w$ = "⪺", | |
k$ = "⪶", | |
_$ = "⋩", | |
C$ = "≿", | |
E$ = "∋", | |
A$ = "∑", | |
S$ = "∑", | |
T$ = "♪", | |
D$ = "¹", | |
I$ = "²", | |
N$ = "³", | |
M$ = "⊃", | |
O$ = "⋑", | |
L$ = "⪾", | |
R$ = "⫘", | |
P$ = "⫆", | |
B$ = "⊇", | |
z$ = "⫄", | |
q$ = "⊃", | |
F$ = "⊇", | |
j$ = "⟉", | |
$$ = "⫗", | |
U$ = "⥻", | |
V$ = "⫂", | |
H$ = "⫌", | |
G$ = "⊋", | |
W$ = "⫀", | |
J$ = "⊃", | |
Y$ = "⋑", | |
K$ = "⊇", | |
X$ = "⫆", | |
Z$ = "⊋", | |
Q$ = "⫌", | |
eU = "⫈", | |
tU = "⫔", | |
nU = "⫖", | |
sU = "⤦", | |
aU = "↙", | |
oU = "⇙", | |
rU = "↙", | |
iU = "⤪", | |
cU = "ß", | |
lU = " ", | |
uU = "⌖", | |
pU = "Τ", | |
dU = "τ", | |
mU = "⎴", | |
fU = "Ť", | |
hU = "ť", | |
gU = "Ţ", | |
bU = "ţ", | |
vU = "Т", | |
xU = "т", | |
yU = "⃛", | |
wU = "⌕", | |
kU = "𝔗", | |
_U = "𝔱", | |
CU = "∴", | |
EU = "∴", | |
AU = "∴", | |
SU = "Θ", | |
TU = "θ", | |
DU = "ϑ", | |
IU = "ϑ", | |
NU = "≈", | |
MU = "∼", | |
OU = " ", | |
LU = " ", | |
RU = " ", | |
PU = "≈", | |
BU = "∼", | |
zU = "Þ", | |
qU = "þ", | |
FU = "˜", | |
jU = "∼", | |
$U = "≃", | |
UU = "≅", | |
VU = "≈", | |
HU = "⨱", | |
GU = "⊠", | |
WU = "×", | |
JU = "⨰", | |
YU = "∭", | |
KU = "⤨", | |
XU = "⌶", | |
ZU = "⫱", | |
QU = "⊤", | |
eV = "𝕋", | |
tV = "𝕥", | |
nV = "⫚", | |
sV = "⤩", | |
aV = "‴", | |
oV = "™", | |
rV = "™", | |
iV = "▵", | |
cV = "▿", | |
lV = "◃", | |
uV = "⊴", | |
pV = "≜", | |
dV = "▹", | |
mV = "⊵", | |
fV = "◬", | |
hV = "≜", | |
gV = "⨺", | |
bV = "⃛", | |
vV = "⨹", | |
xV = "⧍", | |
yV = "⨻", | |
wV = "⏢", | |
kV = "𝒯", | |
_V = "𝓉", | |
CV = "Ц", | |
EV = "ц", | |
AV = "Ћ", | |
SV = "ћ", | |
TV = "Ŧ", | |
DV = "ŧ", | |
IV = "≬", | |
NV = "↞", | |
MV = "↠", | |
OV = "Ú", | |
LV = "ú", | |
RV = "↑", | |
PV = "↟", | |
BV = "⇑", | |
zV = "⥉", | |
qV = "Ў", | |
FV = "ў", | |
jV = "Ŭ", | |
$V = "ŭ", | |
UV = "Û", | |
VV = "û", | |
HV = "У", | |
GV = "у", | |
WV = "⇅", | |
JV = "Ű", | |
YV = "ű", | |
KV = "⥮", | |
XV = "⥾", | |
ZV = "𝔘", | |
QV = "𝔲", | |
eH = "Ù", | |
tH = "ù", | |
nH = "⥣", | |
sH = "↿", | |
aH = "↾", | |
oH = "▀", | |
rH = "⌜", | |
iH = "⌜", | |
cH = "⌏", | |
lH = "◸", | |
uH = "Ū", | |
pH = "ū", | |
dH = "¨", | |
mH = "_", | |
fH = "⏟", | |
hH = "⎵", | |
gH = "⏝", | |
bH = "⋃", | |
vH = "⊎", | |
xH = "Ų", | |
yH = "ų", | |
wH = "𝕌", | |
kH = "𝕦", | |
_H = "⤒", | |
CH = "↑", | |
EH = "↑", | |
AH = "⇑", | |
SH = "⇅", | |
TH = "↕", | |
DH = "↕", | |
IH = "⇕", | |
NH = "⥮", | |
MH = "↿", | |
OH = "↾", | |
LH = "⊎", | |
RH = "↖", | |
PH = "↗", | |
BH = "υ", | |
zH = "ϒ", | |
qH = "ϒ", | |
FH = "Υ", | |
jH = "υ", | |
$H = "↥", | |
UH = "⊥", | |
VH = "⇈", | |
HH = "⌝", | |
GH = "⌝", | |
WH = "⌎", | |
JH = "Ů", | |
YH = "ů", | |
KH = "◹", | |
XH = "𝒰", | |
ZH = "𝓊", | |
QH = "⋰", | |
eG = "Ũ", | |
tG = "ũ", | |
nG = "▵", | |
sG = "▴", | |
aG = "⇈", | |
oG = "Ü", | |
rG = "ü", | |
iG = "⦧", | |
cG = "⦜", | |
lG = "ϵ", | |
uG = "ϰ", | |
pG = "∅", | |
dG = "ϕ", | |
mG = "ϖ", | |
fG = "∝", | |
hG = "↕", | |
gG = "⇕", | |
bG = "ϱ", | |
vG = "ς", | |
xG = "⊊︀", | |
yG = "⫋︀", | |
wG = "⊋︀", | |
kG = "⫌︀", | |
_G = "ϑ", | |
CG = "⊲", | |
EG = "⊳", | |
AG = "⫨", | |
SG = "⫫", | |
TG = "⫩", | |
DG = "В", | |
IG = "в", | |
NG = "⊢", | |
MG = "⊨", | |
OG = "⊩", | |
LG = "⊫", | |
RG = "⫦", | |
PG = "⊻", | |
BG = "∨", | |
zG = "⋁", | |
qG = "≚", | |
FG = "⋮", | |
jG = "|", | |
$G = "‖", | |
UG = "|", | |
VG = "‖", | |
HG = "∣", | |
GG = "|", | |
WG = "❘", | |
JG = "≀", | |
YG = " ", | |
KG = "𝔙", | |
XG = "𝔳", | |
ZG = "⊲", | |
QG = "⊂⃒", | |
eW = "⊃⃒", | |
tW = "𝕍", | |
nW = "𝕧", | |
sW = "∝", | |
aW = "⊳", | |
oW = "𝒱", | |
rW = "𝓋", | |
iW = "⫋︀", | |
cW = "⊊︀", | |
lW = "⫌︀", | |
uW = "⊋︀", | |
pW = "⊪", | |
dW = "⦚", | |
mW = "Ŵ", | |
fW = "ŵ", | |
hW = "⩟", | |
gW = "∧", | |
bW = "⋀", | |
vW = "≙", | |
xW = "℘", | |
yW = "𝔚", | |
wW = "𝔴", | |
kW = "𝕎", | |
_W = "𝕨", | |
CW = "℘", | |
EW = "≀", | |
AW = "≀", | |
SW = "𝒲", | |
TW = "𝓌", | |
DW = "⋂", | |
IW = "◯", | |
NW = "⋃", | |
MW = "▽", | |
OW = "𝔛", | |
LW = "𝔵", | |
RW = "⟷", | |
PW = "⟺", | |
BW = "Ξ", | |
zW = "ξ", | |
qW = "⟵", | |
FW = "⟸", | |
jW = "⟼", | |
$W = "⋻", | |
UW = "⨀", | |
VW = "𝕏", | |
HW = "𝕩", | |
GW = "⨁", | |
WW = "⨂", | |
JW = "⟶", | |
YW = "⟹", | |
KW = "𝒳", | |
XW = "𝓍", | |
ZW = "⨆", | |
QW = "⨄", | |
eJ = "△", | |
tJ = "⋁", | |
nJ = "⋀", | |
sJ = "Ý", | |
aJ = "ý", | |
oJ = "Я", | |
rJ = "я", | |
iJ = "Ŷ", | |
cJ = "ŷ", | |
lJ = "Ы", | |
uJ = "ы", | |
pJ = "¥", | |
dJ = "𝔜", | |
mJ = "𝔶", | |
fJ = "Ї", | |
hJ = "ї", | |
gJ = "𝕐", | |
bJ = "𝕪", | |
vJ = "𝒴", | |
xJ = "𝓎", | |
yJ = "Ю", | |
wJ = "ю", | |
kJ = "ÿ", | |
_J = "Ÿ", | |
CJ = "Ź", | |
EJ = "ź", | |
AJ = "Ž", | |
SJ = "ž", | |
TJ = "З", | |
DJ = "з", | |
IJ = "Ż", | |
NJ = "ż", | |
MJ = "ℨ", | |
OJ = "", | |
LJ = "Ζ", | |
RJ = "ζ", | |
PJ = "𝔷", | |
BJ = "ℨ", | |
zJ = "Ж", | |
qJ = "ж", | |
FJ = "⇝", | |
jJ = "𝕫", | |
$J = "ℤ", | |
UJ = "𝒵", | |
VJ = "𝓏", | |
HJ = "", | |
GJ = "", | |
WJ = { | |
Aacute: Ix, | |
aacute: Nx, | |
Abreve: Mx, | |
abreve: Ox, | |
ac: Lx, | |
acd: Rx, | |
acE: Px, | |
Acirc: Bx, | |
acirc: zx, | |
acute: qx, | |
Acy: Fx, | |
acy: jx, | |
AElig: $x, | |
aelig: Ux, | |
af: Vx, | |
Afr: Hx, | |
afr: Gx, | |
Agrave: Wx, | |
agrave: Jx, | |
alefsym: Yx, | |
aleph: Kx, | |
Alpha: Xx, | |
alpha: Zx, | |
Amacr: Qx, | |
amacr: ey, | |
amalg: ty, | |
amp: ny, | |
AMP: sy, | |
andand: ay, | |
And: oy, | |
and: ry, | |
andd: iy, | |
andslope: cy, | |
andv: ly, | |
ang: uy, | |
ange: py, | |
angle: dy, | |
angmsdaa: my, | |
angmsdab: fy, | |
angmsdac: hy, | |
angmsdad: gy, | |
angmsdae: by, | |
angmsdaf: vy, | |
angmsdag: xy, | |
angmsdah: yy, | |
angmsd: wy, | |
angrt: ky, | |
angrtvb: _y, | |
angrtvbd: Cy, | |
angsph: Ey, | |
angst: Ay, | |
angzarr: Sy, | |
Aogon: Ty, | |
aogon: Dy, | |
Aopf: Iy, | |
aopf: Ny, | |
apacir: My, | |
ap: Oy, | |
apE: Ly, | |
ape: Ry, | |
apid: Py, | |
apos: By, | |
ApplyFunction: zy, | |
approx: qy, | |
approxeq: Fy, | |
Aring: jy, | |
aring: $y, | |
Ascr: Uy, | |
ascr: Vy, | |
Assign: Hy, | |
ast: Gy, | |
asymp: Wy, | |
asympeq: Jy, | |
Atilde: Yy, | |
atilde: Ky, | |
Auml: Xy, | |
auml: Zy, | |
awconint: Qy, | |
awint: ew, | |
backcong: tw, | |
backepsilon: nw, | |
backprime: sw, | |
backsim: aw, | |
backsimeq: ow, | |
Backslash: rw, | |
Barv: iw, | |
barvee: cw, | |
barwed: lw, | |
Barwed: uw, | |
barwedge: pw, | |
bbrk: dw, | |
bbrktbrk: mw, | |
bcong: fw, | |
Bcy: hw, | |
bcy: gw, | |
bdquo: bw, | |
becaus: vw, | |
because: xw, | |
Because: yw, | |
bemptyv: ww, | |
bepsi: kw, | |
bernou: _w, | |
Bernoullis: Cw, | |
Beta: Ew, | |
beta: Aw, | |
beth: Sw, | |
between: Tw, | |
Bfr: Dw, | |
bfr: Iw, | |
bigcap: Nw, | |
bigcirc: Mw, | |
bigcup: Ow, | |
bigodot: Lw, | |
bigoplus: Rw, | |
bigotimes: Pw, | |
bigsqcup: Bw, | |
bigstar: zw, | |
bigtriangledown: qw, | |
bigtriangleup: Fw, | |
biguplus: jw, | |
bigvee: $w, | |
bigwedge: Uw, | |
bkarow: Vw, | |
blacklozenge: Hw, | |
blacksquare: Gw, | |
blacktriangle: Ww, | |
blacktriangledown: Jw, | |
blacktriangleleft: Yw, | |
blacktriangleright: Kw, | |
blank: Xw, | |
blk12: Zw, | |
blk14: Qw, | |
blk34: ek, | |
block: tk, | |
bne: nk, | |
bnequiv: sk, | |
bNot: ak, | |
bnot: ok, | |
Bopf: rk, | |
bopf: ik, | |
bot: ck, | |
bottom: lk, | |
bowtie: uk, | |
boxbox: pk, | |
boxdl: dk, | |
boxdL: mk, | |
boxDl: fk, | |
boxDL: hk, | |
boxdr: gk, | |
boxdR: bk, | |
boxDr: vk, | |
boxDR: xk, | |
boxh: yk, | |
boxH: wk, | |
boxhd: kk, | |
boxHd: _k, | |
boxhD: Ck, | |
boxHD: Ek, | |
boxhu: Ak, | |
boxHu: Sk, | |
boxhU: Tk, | |
boxHU: Dk, | |
boxminus: Ik, | |
boxplus: Nk, | |
boxtimes: Mk, | |
boxul: Ok, | |
boxuL: Lk, | |
boxUl: Rk, | |
boxUL: Pk, | |
boxur: Bk, | |
boxuR: zk, | |
boxUr: qk, | |
boxUR: Fk, | |
boxv: jk, | |
boxV: $k, | |
boxvh: Uk, | |
boxvH: Vk, | |
boxVh: Hk, | |
boxVH: Gk, | |
boxvl: Wk, | |
boxvL: Jk, | |
boxVl: Yk, | |
boxVL: Kk, | |
boxvr: Xk, | |
boxvR: Zk, | |
boxVr: Qk, | |
boxVR: e0, | |
bprime: t0, | |
breve: n0, | |
Breve: s0, | |
brvbar: a0, | |
bscr: o0, | |
Bscr: r0, | |
bsemi: i0, | |
bsim: c0, | |
bsime: l0, | |
bsolb: u0, | |
bsol: p0, | |
bsolhsub: d0, | |
bull: m0, | |
bullet: f0, | |
bump: h0, | |
bumpE: g0, | |
bumpe: b0, | |
Bumpeq: v0, | |
bumpeq: x0, | |
Cacute: y0, | |
cacute: w0, | |
capand: k0, | |
capbrcup: _0, | |
capcap: C0, | |
cap: E0, | |
Cap: A0, | |
capcup: S0, | |
capdot: T0, | |
CapitalDifferentialD: D0, | |
caps: I0, | |
caret: N0, | |
caron: M0, | |
Cayleys: O0, | |
ccaps: L0, | |
Ccaron: R0, | |
ccaron: P0, | |
Ccedil: B0, | |
ccedil: z0, | |
Ccirc: q0, | |
ccirc: F0, | |
Cconint: j0, | |
ccups: $0, | |
ccupssm: U0, | |
Cdot: V0, | |
cdot: H0, | |
cedil: G0, | |
Cedilla: W0, | |
cemptyv: J0, | |
cent: Y0, | |
centerdot: K0, | |
CenterDot: X0, | |
cfr: Z0, | |
Cfr: Q0, | |
CHcy: e_, | |
chcy: t_, | |
check: n_, | |
checkmark: s_, | |
Chi: a_, | |
chi: o_, | |
circ: r_, | |
circeq: i_, | |
circlearrowleft: c_, | |
circlearrowright: l_, | |
circledast: u_, | |
circledcirc: p_, | |
circleddash: d_, | |
CircleDot: m_, | |
circledR: f_, | |
circledS: h_, | |
CircleMinus: g_, | |
CirclePlus: b_, | |
CircleTimes: v_, | |
cir: x_, | |
cirE: y_, | |
cire: w_, | |
cirfnint: k_, | |
cirmid: __, | |
cirscir: C_, | |
ClockwiseContourIntegral: E_, | |
CloseCurlyDoubleQuote: A_, | |
CloseCurlyQuote: S_, | |
clubs: T_, | |
clubsuit: D_, | |
colon: I_, | |
Colon: N_, | |
Colone: M_, | |
colone: O_, | |
coloneq: L_, | |
comma: R_, | |
commat: P_, | |
comp: B_, | |
compfn: z_, | |
complement: q_, | |
complexes: F_, | |
cong: j_, | |
congdot: $_, | |
Congruent: U_, | |
conint: V_, | |
Conint: H_, | |
ContourIntegral: G_, | |
copf: W_, | |
Copf: J_, | |
coprod: Y_, | |
Coproduct: K_, | |
copy: X_, | |
COPY: Z_, | |
copysr: Q_, | |
CounterClockwiseContourIntegral: e1, | |
crarr: t1, | |
cross: n1, | |
Cross: s1, | |
Cscr: a1, | |
cscr: o1, | |
csub: r1, | |
csube: i1, | |
csup: c1, | |
csupe: l1, | |
ctdot: u1, | |
cudarrl: p1, | |
cudarrr: d1, | |
cuepr: m1, | |
cuesc: f1, | |
cularr: h1, | |
cularrp: g1, | |
cupbrcap: b1, | |
cupcap: v1, | |
CupCap: x1, | |
cup: y1, | |
Cup: w1, | |
cupcup: k1, | |
cupdot: _1, | |
cupor: C1, | |
cups: E1, | |
curarr: A1, | |
curarrm: S1, | |
curlyeqprec: T1, | |
curlyeqsucc: D1, | |
curlyvee: I1, | |
curlywedge: N1, | |
curren: M1, | |
curvearrowleft: O1, | |
curvearrowright: L1, | |
cuvee: R1, | |
cuwed: P1, | |
cwconint: B1, | |
cwint: z1, | |
cylcty: q1, | |
dagger: F1, | |
Dagger: j1, | |
daleth: $1, | |
darr: U1, | |
Darr: V1, | |
dArr: H1, | |
dash: G1, | |
Dashv: W1, | |
dashv: J1, | |
dbkarow: Y1, | |
dblac: K1, | |
Dcaron: X1, | |
dcaron: Z1, | |
Dcy: Q1, | |
dcy: eC, | |
ddagger: tC, | |
ddarr: nC, | |
DD: sC, | |
dd: aC, | |
DDotrahd: oC, | |
ddotseq: rC, | |
deg: iC, | |
Del: cC, | |
Delta: lC, | |
delta: uC, | |
demptyv: pC, | |
dfisht: dC, | |
Dfr: mC, | |
dfr: fC, | |
dHar: hC, | |
dharl: gC, | |
dharr: bC, | |
DiacriticalAcute: vC, | |
DiacriticalDot: xC, | |
DiacriticalDoubleAcute: yC, | |
DiacriticalGrave: wC, | |
DiacriticalTilde: kC, | |
diam: _C, | |
diamond: CC, | |
Diamond: EC, | |
diamondsuit: AC, | |
diams: SC, | |
die: TC, | |
DifferentialD: DC, | |
digamma: IC, | |
disin: NC, | |
div: MC, | |
divide: OC, | |
divideontimes: LC, | |
divonx: RC, | |
DJcy: PC, | |
djcy: BC, | |
dlcorn: zC, | |
dlcrop: qC, | |
dollar: FC, | |
Dopf: jC, | |
dopf: $C, | |
Dot: UC, | |
dot: VC, | |
DotDot: HC, | |
doteq: GC, | |
doteqdot: WC, | |
DotEqual: JC, | |
dotminus: YC, | |
dotplus: KC, | |
dotsquare: XC, | |
doublebarwedge: ZC, | |
DoubleContourIntegral: QC, | |
DoubleDot: eE, | |
DoubleDownArrow: tE, | |
DoubleLeftArrow: nE, | |
DoubleLeftRightArrow: sE, | |
DoubleLeftTee: aE, | |
DoubleLongLeftArrow: oE, | |
DoubleLongLeftRightArrow: rE, | |
DoubleLongRightArrow: iE, | |
DoubleRightArrow: cE, | |
DoubleRightTee: lE, | |
DoubleUpArrow: uE, | |
DoubleUpDownArrow: pE, | |
DoubleVerticalBar: dE, | |
DownArrowBar: mE, | |
downarrow: fE, | |
DownArrow: hE, | |
Downarrow: gE, | |
DownArrowUpArrow: bE, | |
DownBreve: vE, | |
downdownarrows: xE, | |
downharpoonleft: yE, | |
downharpoonright: wE, | |
DownLeftRightVector: kE, | |
DownLeftTeeVector: _E, | |
DownLeftVectorBar: CE, | |
DownLeftVector: EE, | |
DownRightTeeVector: AE, | |
DownRightVectorBar: SE, | |
DownRightVector: TE, | |
DownTeeArrow: DE, | |
DownTee: IE, | |
drbkarow: NE, | |
drcorn: ME, | |
drcrop: OE, | |
Dscr: LE, | |
dscr: RE, | |
DScy: PE, | |
dscy: BE, | |
dsol: zE, | |
Dstrok: qE, | |
dstrok: FE, | |
dtdot: jE, | |
dtri: $E, | |
dtrif: UE, | |
duarr: VE, | |
duhar: HE, | |
dwangle: GE, | |
DZcy: WE, | |
dzcy: JE, | |
dzigrarr: YE, | |
Eacute: KE, | |
eacute: XE, | |
easter: ZE, | |
Ecaron: QE, | |
ecaron: eA, | |
Ecirc: tA, | |
ecirc: nA, | |
ecir: sA, | |
ecolon: aA, | |
Ecy: oA, | |
ecy: rA, | |
eDDot: iA, | |
Edot: cA, | |
edot: lA, | |
eDot: uA, | |
ee: pA, | |
efDot: dA, | |
Efr: mA, | |
efr: fA, | |
eg: hA, | |
Egrave: gA, | |
egrave: bA, | |
egs: vA, | |
egsdot: xA, | |
el: yA, | |
Element: wA, | |
elinters: kA, | |
ell: _A, | |
els: CA, | |
elsdot: EA, | |
Emacr: AA, | |
emacr: SA, | |
empty: TA, | |
emptyset: DA, | |
EmptySmallSquare: IA, | |
emptyv: NA, | |
EmptyVerySmallSquare: MA, | |
emsp13: OA, | |
emsp14: LA, | |
emsp: RA, | |
ENG: PA, | |
eng: BA, | |
ensp: zA, | |
Eogon: qA, | |
eogon: FA, | |
Eopf: jA, | |
eopf: $A, | |
epar: UA, | |
eparsl: VA, | |
eplus: HA, | |
epsi: GA, | |
Epsilon: WA, | |
epsilon: JA, | |
epsiv: YA, | |
eqcirc: KA, | |
eqcolon: XA, | |
eqsim: ZA, | |
eqslantgtr: QA, | |
eqslantless: eS, | |
Equal: tS, | |
equals: nS, | |
EqualTilde: sS, | |
equest: aS, | |
Equilibrium: oS, | |
equiv: rS, | |
equivDD: iS, | |
eqvparsl: cS, | |
erarr: lS, | |
erDot: uS, | |
escr: pS, | |
Escr: dS, | |
esdot: mS, | |
Esim: fS, | |
esim: hS, | |
Eta: gS, | |
eta: bS, | |
ETH: vS, | |
eth: xS, | |
Euml: yS, | |
euml: wS, | |
euro: kS, | |
excl: _S, | |
exist: CS, | |
Exists: ES, | |
expectation: AS, | |
exponentiale: SS, | |
ExponentialE: TS, | |
fallingdotseq: DS, | |
Fcy: IS, | |
fcy: NS, | |
female: MS, | |
ffilig: OS, | |
fflig: LS, | |
ffllig: RS, | |
Ffr: PS, | |
ffr: BS, | |
filig: zS, | |
FilledSmallSquare: qS, | |
FilledVerySmallSquare: FS, | |
fjlig: jS, | |
flat: $S, | |
fllig: US, | |
fltns: VS, | |
fnof: HS, | |
Fopf: GS, | |
fopf: WS, | |
forall: JS, | |
ForAll: YS, | |
fork: KS, | |
forkv: XS, | |
Fouriertrf: ZS, | |
fpartint: QS, | |
frac12: eT, | |
frac13: tT, | |
frac14: nT, | |
frac15: sT, | |
frac16: aT, | |
frac18: oT, | |
frac23: rT, | |
frac25: iT, | |
frac34: cT, | |
frac35: lT, | |
frac38: uT, | |
frac45: pT, | |
frac56: dT, | |
frac58: mT, | |
frac78: fT, | |
frasl: hT, | |
frown: gT, | |
fscr: bT, | |
Fscr: vT, | |
gacute: xT, | |
Gamma: yT, | |
gamma: wT, | |
Gammad: kT, | |
gammad: _T, | |
gap: CT, | |
Gbreve: ET, | |
gbreve: AT, | |
Gcedil: ST, | |
Gcirc: TT, | |
gcirc: DT, | |
Gcy: IT, | |
gcy: NT, | |
Gdot: MT, | |
gdot: OT, | |
ge: LT, | |
gE: RT, | |
gEl: PT, | |
gel: BT, | |
geq: zT, | |
geqq: qT, | |
geqslant: FT, | |
gescc: jT, | |
ges: $T, | |
gesdot: UT, | |
gesdoto: VT, | |
gesdotol: HT, | |
gesl: GT, | |
gesles: WT, | |
Gfr: JT, | |
gfr: YT, | |
gg: KT, | |
Gg: XT, | |
ggg: ZT, | |
gimel: QT, | |
GJcy: e2, | |
gjcy: t2, | |
gla: n2, | |
gl: s2, | |
glE: a2, | |
glj: o2, | |
gnap: r2, | |
gnapprox: i2, | |
gne: c2, | |
gnE: l2, | |
gneq: u2, | |
gneqq: p2, | |
gnsim: d2, | |
Gopf: m2, | |
gopf: f2, | |
grave: h2, | |
GreaterEqual: g2, | |
GreaterEqualLess: b2, | |
GreaterFullEqual: v2, | |
GreaterGreater: x2, | |
GreaterLess: y2, | |
GreaterSlantEqual: w2, | |
GreaterTilde: k2, | |
Gscr: _2, | |
gscr: C2, | |
gsim: E2, | |
gsime: A2, | |
gsiml: S2, | |
gtcc: T2, | |
gtcir: D2, | |
gt: I2, | |
GT: N2, | |
Gt: M2, | |
gtdot: O2, | |
gtlPar: L2, | |
gtquest: R2, | |
gtrapprox: P2, | |
gtrarr: B2, | |
gtrdot: z2, | |
gtreqless: q2, | |
gtreqqless: F2, | |
gtrless: j2, | |
gtrsim: $2, | |
gvertneqq: U2, | |
gvnE: V2, | |
Hacek: H2, | |
hairsp: G2, | |
half: W2, | |
hamilt: J2, | |
HARDcy: Y2, | |
hardcy: K2, | |
harrcir: X2, | |
harr: Z2, | |
hArr: Q2, | |
harrw: eD, | |
Hat: tD, | |
hbar: nD, | |
Hcirc: sD, | |
hcirc: aD, | |
hearts: oD, | |
heartsuit: rD, | |
hellip: iD, | |
hercon: cD, | |
hfr: lD, | |
Hfr: uD, | |
HilbertSpace: pD, | |
hksearow: dD, | |
hkswarow: mD, | |
hoarr: fD, | |
homtht: hD, | |
hookleftarrow: gD, | |
hookrightarrow: bD, | |
hopf: vD, | |
Hopf: xD, | |
horbar: yD, | |
HorizontalLine: wD, | |
hscr: kD, | |
Hscr: _D, | |
hslash: CD, | |
Hstrok: ED, | |
hstrok: AD, | |
HumpDownHump: SD, | |
HumpEqual: TD, | |
hybull: DD, | |
hyphen: ID, | |
Iacute: ND, | |
iacute: MD, | |
ic: OD, | |
Icirc: LD, | |
icirc: RD, | |
Icy: PD, | |
icy: BD, | |
Idot: zD, | |
IEcy: qD, | |
iecy: FD, | |
iexcl: jD, | |
iff: $D, | |
ifr: UD, | |
Ifr: VD, | |
Igrave: HD, | |
igrave: GD, | |
ii: WD, | |
iiiint: JD, | |
iiint: YD, | |
iinfin: KD, | |
iiota: XD, | |
IJlig: ZD, | |
ijlig: QD, | |
Imacr: eI, | |
imacr: tI, | |
image: nI, | |
ImaginaryI: sI, | |
imagline: aI, | |
imagpart: oI, | |
imath: rI, | |
Im: iI, | |
imof: cI, | |
imped: lI, | |
Implies: uI, | |
incare: pI, | |
in: "∈", | |
infin: dI, | |
infintie: mI, | |
inodot: fI, | |
intcal: hI, | |
int: gI, | |
Int: bI, | |
integers: vI, | |
Integral: xI, | |
intercal: yI, | |
Intersection: wI, | |
intlarhk: kI, | |
intprod: _I, | |
InvisibleComma: CI, | |
InvisibleTimes: EI, | |
IOcy: AI, | |
iocy: SI, | |
Iogon: TI, | |
iogon: DI, | |
Iopf: II, | |
iopf: NI, | |
Iota: MI, | |
iota: OI, | |
iprod: LI, | |
iquest: RI, | |
iscr: PI, | |
Iscr: BI, | |
isin: zI, | |
isindot: qI, | |
isinE: FI, | |
isins: jI, | |
isinsv: $I, | |
isinv: UI, | |
it: VI, | |
Itilde: HI, | |
itilde: GI, | |
Iukcy: WI, | |
iukcy: JI, | |
Iuml: YI, | |
iuml: KI, | |
Jcirc: XI, | |
jcirc: ZI, | |
Jcy: QI, | |
jcy: eN, | |
Jfr: tN, | |
jfr: nN, | |
jmath: sN, | |
Jopf: aN, | |
jopf: oN, | |
Jscr: rN, | |
jscr: iN, | |
Jsercy: cN, | |
jsercy: lN, | |
Jukcy: uN, | |
jukcy: pN, | |
Kappa: dN, | |
kappa: mN, | |
kappav: fN, | |
Kcedil: hN, | |
kcedil: gN, | |
Kcy: bN, | |
kcy: vN, | |
Kfr: xN, | |
kfr: yN, | |
kgreen: wN, | |
KHcy: kN, | |
khcy: _N, | |
KJcy: CN, | |
kjcy: EN, | |
Kopf: AN, | |
kopf: SN, | |
Kscr: TN, | |
kscr: DN, | |
lAarr: IN, | |
Lacute: NN, | |
lacute: MN, | |
laemptyv: ON, | |
lagran: LN, | |
Lambda: RN, | |
lambda: PN, | |
lang: BN, | |
Lang: zN, | |
langd: qN, | |
langle: FN, | |
lap: jN, | |
Laplacetrf: $N, | |
laquo: UN, | |
larrb: VN, | |
larrbfs: HN, | |
larr: GN, | |
Larr: WN, | |
lArr: JN, | |
larrfs: YN, | |
larrhk: KN, | |
larrlp: XN, | |
larrpl: ZN, | |
larrsim: QN, | |
larrtl: eM, | |
latail: tM, | |
lAtail: nM, | |
lat: sM, | |
late: aM, | |
lates: oM, | |
lbarr: rM, | |
lBarr: iM, | |
lbbrk: cM, | |
lbrace: lM, | |
lbrack: uM, | |
lbrke: pM, | |
lbrksld: dM, | |
lbrkslu: mM, | |
Lcaron: fM, | |
lcaron: hM, | |
Lcedil: gM, | |
lcedil: bM, | |
lceil: vM, | |
lcub: xM, | |
Lcy: yM, | |
lcy: wM, | |
ldca: kM, | |
ldquo: _M, | |
ldquor: CM, | |
ldrdhar: EM, | |
ldrushar: AM, | |
ldsh: SM, | |
le: TM, | |
lE: DM, | |
LeftAngleBracket: IM, | |
LeftArrowBar: NM, | |
leftarrow: MM, | |
LeftArrow: OM, | |
Leftarrow: LM, | |
LeftArrowRightArrow: RM, | |
leftarrowtail: PM, | |
LeftCeiling: BM, | |
LeftDoubleBracket: zM, | |
LeftDownTeeVector: qM, | |
LeftDownVectorBar: FM, | |
LeftDownVector: jM, | |
LeftFloor: $M, | |
leftharpoondown: UM, | |
leftharpoonup: VM, | |
leftleftarrows: HM, | |
leftrightarrow: GM, | |
LeftRightArrow: WM, | |
Leftrightarrow: JM, | |
leftrightarrows: YM, | |
leftrightharpoons: KM, | |
leftrightsquigarrow: XM, | |
LeftRightVector: ZM, | |
LeftTeeArrow: QM, | |
LeftTee: eO, | |
LeftTeeVector: tO, | |
leftthreetimes: nO, | |
LeftTriangleBar: sO, | |
LeftTriangle: aO, | |
LeftTriangleEqual: oO, | |
LeftUpDownVector: rO, | |
LeftUpTeeVector: iO, | |
LeftUpVectorBar: cO, | |
LeftUpVector: lO, | |
LeftVectorBar: uO, | |
LeftVector: pO, | |
lEg: dO, | |
leg: mO, | |
leq: fO, | |
leqq: hO, | |
leqslant: gO, | |
lescc: bO, | |
les: vO, | |
lesdot: xO, | |
lesdoto: yO, | |
lesdotor: wO, | |
lesg: kO, | |
lesges: _O, | |
lessapprox: CO, | |
lessdot: EO, | |
lesseqgtr: AO, | |
lesseqqgtr: SO, | |
LessEqualGreater: TO, | |
LessFullEqual: DO, | |
LessGreater: IO, | |
lessgtr: NO, | |
LessLess: MO, | |
lesssim: OO, | |
LessSlantEqual: LO, | |
LessTilde: RO, | |
lfisht: PO, | |
lfloor: BO, | |
Lfr: zO, | |
lfr: qO, | |
lg: FO, | |
lgE: jO, | |
lHar: $O, | |
lhard: UO, | |
lharu: VO, | |
lharul: HO, | |
lhblk: GO, | |
LJcy: WO, | |
ljcy: JO, | |
llarr: YO, | |
ll: KO, | |
Ll: XO, | |
llcorner: ZO, | |
Lleftarrow: QO, | |
llhard: eL, | |
lltri: tL, | |
Lmidot: nL, | |
lmidot: sL, | |
lmoustache: aL, | |
lmoust: oL, | |
lnap: rL, | |
lnapprox: iL, | |
lne: cL, | |
lnE: lL, | |
lneq: uL, | |
lneqq: pL, | |
lnsim: dL, | |
loang: mL, | |
loarr: fL, | |
lobrk: hL, | |
longleftarrow: gL, | |
LongLeftArrow: bL, | |
Longleftarrow: vL, | |
longleftrightarrow: xL, | |
LongLeftRightArrow: yL, | |
Longleftrightarrow: wL, | |
longmapsto: kL, | |
longrightarrow: _L, | |
LongRightArrow: CL, | |
Longrightarrow: EL, | |
looparrowleft: AL, | |
looparrowright: SL, | |
lopar: TL, | |
Lopf: DL, | |
lopf: IL, | |
loplus: NL, | |
lotimes: ML, | |
lowast: OL, | |
lowbar: LL, | |
LowerLeftArrow: RL, | |
LowerRightArrow: PL, | |
loz: BL, | |
lozenge: zL, | |
lozf: qL, | |
lpar: FL, | |
lparlt: jL, | |
lrarr: $L, | |
lrcorner: UL, | |
lrhar: VL, | |
lrhard: HL, | |
lrm: GL, | |
lrtri: WL, | |
lsaquo: JL, | |
lscr: YL, | |
Lscr: KL, | |
lsh: XL, | |
Lsh: ZL, | |
lsim: QL, | |
lsime: e3, | |
lsimg: t3, | |
lsqb: n3, | |
lsquo: s3, | |
lsquor: a3, | |
Lstrok: o3, | |
lstrok: r3, | |
ltcc: i3, | |
ltcir: c3, | |
lt: l3, | |
LT: u3, | |
Lt: p3, | |
ltdot: d3, | |
lthree: m3, | |
ltimes: f3, | |
ltlarr: h3, | |
ltquest: g3, | |
ltri: b3, | |
ltrie: v3, | |
ltrif: x3, | |
ltrPar: y3, | |
lurdshar: w3, | |
luruhar: k3, | |
lvertneqq: _3, | |
lvnE: C3, | |
macr: E3, | |
male: A3, | |
malt: S3, | |
maltese: T3, | |
Map: "⤅", | |
map: D3, | |
mapsto: I3, | |
mapstodown: N3, | |
mapstoleft: M3, | |
mapstoup: O3, | |
marker: L3, | |
mcomma: R3, | |
Mcy: P3, | |
mcy: B3, | |
mdash: z3, | |
mDDot: q3, | |
measuredangle: F3, | |
MediumSpace: j3, | |
Mellintrf: $3, | |
Mfr: U3, | |
mfr: V3, | |
mho: H3, | |
micro: G3, | |
midast: W3, | |
midcir: J3, | |
mid: Y3, | |
middot: K3, | |
minusb: X3, | |
minus: Z3, | |
minusd: Q3, | |
minusdu: eR, | |
MinusPlus: tR, | |
mlcp: nR, | |
mldr: sR, | |
mnplus: aR, | |
models: oR, | |
Mopf: rR, | |
mopf: iR, | |
mp: cR, | |
mscr: lR, | |
Mscr: uR, | |
mstpos: pR, | |
Mu: dR, | |
mu: mR, | |
multimap: fR, | |
mumap: hR, | |
nabla: gR, | |
Nacute: bR, | |
nacute: vR, | |
nang: xR, | |
nap: yR, | |
napE: wR, | |
napid: kR, | |
napos: _R, | |
napprox: CR, | |
natural: ER, | |
naturals: AR, | |
natur: SR, | |
nbsp: TR, | |
nbump: DR, | |
nbumpe: IR, | |
ncap: NR, | |
Ncaron: MR, | |
ncaron: OR, | |
Ncedil: LR, | |
ncedil: RR, | |
ncong: PR, | |
ncongdot: BR, | |
ncup: zR, | |
Ncy: qR, | |
ncy: FR, | |
ndash: jR, | |
nearhk: $R, | |
nearr: UR, | |
neArr: VR, | |
nearrow: HR, | |
ne: GR, | |
nedot: WR, | |
NegativeMediumSpace: JR, | |
NegativeThickSpace: YR, | |
NegativeThinSpace: KR, | |
NegativeVeryThinSpace: XR, | |
nequiv: ZR, | |
nesear: QR, | |
nesim: eP, | |
NestedGreaterGreater: tP, | |
NestedLessLess: nP, | |
NewLine: sP, | |
nexist: aP, | |
nexists: oP, | |
Nfr: rP, | |
nfr: iP, | |
ngE: cP, | |
nge: lP, | |
ngeq: uP, | |
ngeqq: pP, | |
ngeqslant: dP, | |
nges: mP, | |
nGg: fP, | |
ngsim: hP, | |
nGt: gP, | |
ngt: bP, | |
ngtr: vP, | |
nGtv: xP, | |
nharr: yP, | |
nhArr: wP, | |
nhpar: kP, | |
ni: _P, | |
nis: CP, | |
nisd: EP, | |
niv: AP, | |
NJcy: SP, | |
njcy: TP, | |
nlarr: DP, | |
nlArr: IP, | |
nldr: NP, | |
nlE: MP, | |
nle: OP, | |
nleftarrow: LP, | |
nLeftarrow: RP, | |
nleftrightarrow: PP, | |
nLeftrightarrow: BP, | |
nleq: zP, | |
nleqq: qP, | |
nleqslant: FP, | |
nles: jP, | |
nless: $P, | |
nLl: UP, | |
nlsim: VP, | |
nLt: HP, | |
nlt: GP, | |
nltri: WP, | |
nltrie: JP, | |
nLtv: YP, | |
nmid: KP, | |
NoBreak: XP, | |
NonBreakingSpace: ZP, | |
nopf: QP, | |
Nopf: e4, | |
Not: t4, | |
not: n4, | |
NotCongruent: s4, | |
NotCupCap: a4, | |
NotDoubleVerticalBar: o4, | |
NotElement: r4, | |
NotEqual: i4, | |
NotEqualTilde: c4, | |
NotExists: l4, | |
NotGreater: u4, | |
NotGreaterEqual: p4, | |
NotGreaterFullEqual: d4, | |
NotGreaterGreater: m4, | |
NotGreaterLess: f4, | |
NotGreaterSlantEqual: h4, | |
NotGreaterTilde: g4, | |
NotHumpDownHump: b4, | |
NotHumpEqual: v4, | |
notin: x4, | |
notindot: y4, | |
notinE: w4, | |
notinva: k4, | |
notinvb: _4, | |
notinvc: C4, | |
NotLeftTriangleBar: E4, | |
NotLeftTriangle: A4, | |
NotLeftTriangleEqual: S4, | |
NotLess: T4, | |
NotLessEqual: D4, | |
NotLessGreater: I4, | |
NotLessLess: N4, | |
NotLessSlantEqual: M4, | |
NotLessTilde: O4, | |
NotNestedGreaterGreater: L4, | |
NotNestedLessLess: R4, | |
notni: P4, | |
notniva: B4, | |
notnivb: z4, | |
notnivc: q4, | |
NotPrecedes: F4, | |
NotPrecedesEqual: j4, | |
NotPrecedesSlantEqual: $4, | |
NotReverseElement: U4, | |
NotRightTriangleBar: V4, | |
NotRightTriangle: H4, | |
NotRightTriangleEqual: G4, | |
NotSquareSubset: W4, | |
NotSquareSubsetEqual: J4, | |
NotSquareSuperset: Y4, | |
NotSquareSupersetEqual: K4, | |
NotSubset: X4, | |
NotSubsetEqual: Z4, | |
NotSucceeds: Q4, | |
NotSucceedsEqual: e6, | |
NotSucceedsSlantEqual: t6, | |
NotSucceedsTilde: n6, | |
NotSuperset: s6, | |
NotSupersetEqual: a6, | |
NotTilde: o6, | |
NotTildeEqual: r6, | |
NotTildeFullEqual: i6, | |
NotTildeTilde: c6, | |
NotVerticalBar: l6, | |
nparallel: u6, | |
npar: p6, | |
nparsl: d6, | |
npart: m6, | |
npolint: f6, | |
npr: h6, | |
nprcue: g6, | |
nprec: b6, | |
npreceq: v6, | |
npre: x6, | |
nrarrc: y6, | |
nrarr: w6, | |
nrArr: k6, | |
nrarrw: _6, | |
nrightarrow: C6, | |
nRightarrow: E6, | |
nrtri: A6, | |
nrtrie: S6, | |
nsc: T6, | |
nsccue: D6, | |
nsce: I6, | |
Nscr: N6, | |
nscr: M6, | |
nshortmid: O6, | |
nshortparallel: L6, | |
nsim: R6, | |
nsime: P6, | |
nsimeq: B6, | |
nsmid: z6, | |
nspar: q6, | |
nsqsube: F6, | |
nsqsupe: j6, | |
nsub: $6, | |
nsubE: U6, | |
nsube: V6, | |
nsubset: H6, | |
nsubseteq: G6, | |
nsubseteqq: W6, | |
nsucc: J6, | |
nsucceq: Y6, | |
nsup: K6, | |
nsupE: X6, | |
nsupe: Z6, | |
nsupset: Q6, | |
nsupseteq: eB, | |
nsupseteqq: tB, | |
ntgl: nB, | |
Ntilde: sB, | |
ntilde: aB, | |
ntlg: oB, | |
ntriangleleft: rB, | |
ntrianglelefteq: iB, | |
ntriangleright: cB, | |
ntrianglerighteq: lB, | |
Nu: uB, | |
nu: pB, | |
num: dB, | |
numero: mB, | |
numsp: fB, | |
nvap: hB, | |
nvdash: gB, | |
nvDash: bB, | |
nVdash: vB, | |
nVDash: xB, | |
nvge: yB, | |
nvgt: wB, | |
nvHarr: kB, | |
nvinfin: _B, | |
nvlArr: CB, | |
nvle: EB, | |
nvlt: AB, | |
nvltrie: SB, | |
nvrArr: TB, | |
nvrtrie: DB, | |
nvsim: IB, | |
nwarhk: NB, | |
nwarr: MB, | |
nwArr: OB, | |
nwarrow: LB, | |
nwnear: RB, | |
Oacute: PB, | |
oacute: BB, | |
oast: zB, | |
Ocirc: qB, | |
ocirc: FB, | |
ocir: jB, | |
Ocy: $B, | |
ocy: UB, | |
odash: VB, | |
Odblac: HB, | |
odblac: GB, | |
odiv: WB, | |
odot: JB, | |
odsold: YB, | |
OElig: KB, | |
oelig: XB, | |
ofcir: ZB, | |
Ofr: QB, | |
ofr: e5, | |
ogon: t5, | |
Ograve: n5, | |
ograve: s5, | |
ogt: a5, | |
ohbar: o5, | |
ohm: r5, | |
oint: i5, | |
olarr: c5, | |
olcir: l5, | |
olcross: u5, | |
oline: p5, | |
olt: d5, | |
Omacr: m5, | |
omacr: f5, | |
Omega: h5, | |
omega: g5, | |
Omicron: b5, | |
omicron: v5, | |
omid: x5, | |
ominus: y5, | |
Oopf: w5, | |
oopf: k5, | |
opar: _5, | |
OpenCurlyDoubleQuote: C5, | |
OpenCurlyQuote: E5, | |
operp: A5, | |
oplus: S5, | |
orarr: T5, | |
Or: D5, | |
or: I5, | |
ord: N5, | |
order: M5, | |
orderof: O5, | |
ordf: L5, | |
ordm: R5, | |
origof: P5, | |
oror: B5, | |
orslope: z5, | |
orv: q5, | |
oS: F5, | |
Oscr: j5, | |
oscr: $5, | |
Oslash: U5, | |
oslash: V5, | |
osol: H5, | |
Otilde: G5, | |
otilde: W5, | |
otimesas: J5, | |
Otimes: Y5, | |
otimes: K5, | |
Ouml: X5, | |
ouml: Z5, | |
ovbar: Q5, | |
OverBar: ez, | |
OverBrace: tz, | |
OverBracket: nz, | |
OverParenthesis: sz, | |
para: az, | |
parallel: oz, | |
par: rz, | |
parsim: iz, | |
parsl: cz, | |
part: lz, | |
PartialD: uz, | |
Pcy: pz, | |
pcy: dz, | |
percnt: mz, | |
period: fz, | |
permil: hz, | |
perp: gz, | |
pertenk: bz, | |
Pfr: vz, | |
pfr: xz, | |
Phi: yz, | |
phi: wz, | |
phiv: kz, | |
phmmat: _z, | |
phone: Cz, | |
Pi: Ez, | |
pi: Az, | |
pitchfork: Sz, | |
piv: Tz, | |
planck: Dz, | |
planckh: Iz, | |
plankv: Nz, | |
plusacir: Mz, | |
plusb: Oz, | |
pluscir: Lz, | |
plus: Rz, | |
plusdo: Pz, | |
plusdu: Bz, | |
pluse: zz, | |
PlusMinus: qz, | |
plusmn: Fz, | |
plussim: jz, | |
plustwo: $z, | |
pm: Uz, | |
Poincareplane: Vz, | |
pointint: Hz, | |
popf: Gz, | |
Popf: Wz, | |
pound: Jz, | |
prap: Yz, | |
Pr: Kz, | |
pr: Xz, | |
prcue: Zz, | |
precapprox: Qz, | |
prec: eq, | |
preccurlyeq: tq, | |
Precedes: nq, | |
PrecedesEqual: sq, | |
PrecedesSlantEqual: aq, | |
PrecedesTilde: oq, | |
preceq: rq, | |
precnapprox: iq, | |
precneqq: cq, | |
precnsim: lq, | |
pre: uq, | |
prE: pq, | |
precsim: dq, | |
prime: mq, | |
Prime: fq, | |
primes: hq, | |
prnap: gq, | |
prnE: bq, | |
prnsim: vq, | |
prod: xq, | |
Product: yq, | |
profalar: wq, | |
profline: kq, | |
profsurf: _q, | |
prop: Cq, | |
Proportional: Eq, | |
Proportion: Aq, | |
propto: Sq, | |
prsim: Tq, | |
prurel: Dq, | |
Pscr: Iq, | |
pscr: Nq, | |
Psi: Mq, | |
psi: Oq, | |
puncsp: Lq, | |
Qfr: Rq, | |
qfr: Pq, | |
qint: Bq, | |
qopf: zq, | |
Qopf: qq, | |
qprime: Fq, | |
Qscr: jq, | |
qscr: $q, | |
quaternions: Uq, | |
quatint: Vq, | |
quest: Hq, | |
questeq: Gq, | |
quot: Wq, | |
QUOT: Jq, | |
rAarr: Yq, | |
race: Kq, | |
Racute: Xq, | |
racute: Zq, | |
radic: Qq, | |
raemptyv: e8, | |
rang: t8, | |
Rang: n8, | |
rangd: s8, | |
range: a8, | |
rangle: o8, | |
raquo: r8, | |
rarrap: i8, | |
rarrb: c8, | |
rarrbfs: l8, | |
rarrc: u8, | |
rarr: p8, | |
Rarr: d8, | |
rArr: m8, | |
rarrfs: f8, | |
rarrhk: h8, | |
rarrlp: g8, | |
rarrpl: b8, | |
rarrsim: v8, | |
Rarrtl: x8, | |
rarrtl: y8, | |
rarrw: w8, | |
ratail: k8, | |
rAtail: _8, | |
ratio: C8, | |
rationals: E8, | |
rbarr: A8, | |
rBarr: S8, | |
RBarr: T8, | |
rbbrk: D8, | |
rbrace: I8, | |
rbrack: N8, | |
rbrke: M8, | |
rbrksld: O8, | |
rbrkslu: L8, | |
Rcaron: R8, | |
rcaron: P8, | |
Rcedil: B8, | |
rcedil: z8, | |
rceil: q8, | |
rcub: F8, | |
Rcy: j8, | |
rcy: $8, | |
rdca: U8, | |
rdldhar: V8, | |
rdquo: H8, | |
rdquor: G8, | |
rdsh: W8, | |
real: J8, | |
realine: Y8, | |
realpart: K8, | |
reals: X8, | |
Re: Z8, | |
rect: Q8, | |
reg: eF, | |
REG: tF, | |
ReverseElement: nF, | |
ReverseEquilibrium: sF, | |
ReverseUpEquilibrium: aF, | |
rfisht: oF, | |
rfloor: rF, | |
rfr: iF, | |
Rfr: cF, | |
rHar: lF, | |
rhard: uF, | |
rharu: pF, | |
rharul: dF, | |
Rho: mF, | |
rho: fF, | |
rhov: hF, | |
RightAngleBracket: gF, | |
RightArrowBar: bF, | |
rightarrow: vF, | |
RightArrow: xF, | |
Rightarrow: yF, | |
RightArrowLeftArrow: wF, | |
rightarrowtail: kF, | |
RightCeiling: _F, | |
RightDoubleBracket: CF, | |
RightDownTeeVector: EF, | |
RightDownVectorBar: AF, | |
RightDownVector: SF, | |
RightFloor: TF, | |
rightharpoondown: DF, | |
rightharpoonup: IF, | |
rightleftarrows: NF, | |
rightleftharpoons: MF, | |
rightrightarrows: OF, | |
rightsquigarrow: LF, | |
RightTeeArrow: RF, | |
RightTee: PF, | |
RightTeeVector: BF, | |
rightthreetimes: zF, | |
RightTriangleBar: qF, | |
RightTriangle: FF, | |
RightTriangleEqual: jF, | |
RightUpDownVector: $F, | |
RightUpTeeVector: UF, | |
RightUpVectorBar: VF, | |
RightUpVector: HF, | |
RightVectorBar: GF, | |
RightVector: WF, | |
ring: JF, | |
risingdotseq: YF, | |
rlarr: KF, | |
rlhar: XF, | |
rlm: ZF, | |
rmoustache: QF, | |
rmoust: e7, | |
rnmid: t7, | |
roang: n7, | |
roarr: s7, | |
robrk: a7, | |
ropar: o7, | |
ropf: r7, | |
Ropf: i7, | |
roplus: c7, | |
rotimes: l7, | |
RoundImplies: u7, | |
rpar: p7, | |
rpargt: d7, | |
rppolint: m7, | |
rrarr: f7, | |
Rrightarrow: h7, | |
rsaquo: g7, | |
rscr: b7, | |
Rscr: v7, | |
rsh: x7, | |
Rsh: y7, | |
rsqb: w7, | |
rsquo: k7, | |
rsquor: _7, | |
rthree: C7, | |
rtimes: E7, | |
rtri: A7, | |
rtrie: S7, | |
rtrif: T7, | |
rtriltri: D7, | |
RuleDelayed: I7, | |
ruluhar: N7, | |
rx: M7, | |
Sacute: O7, | |
sacute: L7, | |
sbquo: R7, | |
scap: P7, | |
Scaron: B7, | |
scaron: z7, | |
Sc: q7, | |
sc: F7, | |
sccue: j7, | |
sce: $7, | |
scE: U7, | |
Scedil: V7, | |
scedil: H7, | |
Scirc: G7, | |
scirc: W7, | |
scnap: J7, | |
scnE: Y7, | |
scnsim: K7, | |
scpolint: X7, | |
scsim: Z7, | |
Scy: Q7, | |
scy: ej, | |
sdotb: tj, | |
sdot: nj, | |
sdote: sj, | |
searhk: aj, | |
searr: oj, | |
seArr: rj, | |
searrow: ij, | |
sect: cj, | |
semi: lj, | |
seswar: uj, | |
setminus: pj, | |
setmn: dj, | |
sext: mj, | |
Sfr: fj, | |
sfr: hj, | |
sfrown: gj, | |
sharp: bj, | |
SHCHcy: vj, | |
shchcy: xj, | |
SHcy: yj, | |
shcy: wj, | |
ShortDownArrow: kj, | |
ShortLeftArrow: _j, | |
shortmid: Cj, | |
shortparallel: Ej, | |
ShortRightArrow: Aj, | |
ShortUpArrow: Sj, | |
shy: Tj, | |
Sigma: Dj, | |
sigma: Ij, | |
sigmaf: Nj, | |
sigmav: Mj, | |
sim: Oj, | |
simdot: Lj, | |
sime: Rj, | |
simeq: Pj, | |
simg: Bj, | |
simgE: zj, | |
siml: qj, | |
simlE: Fj, | |
simne: jj, | |
simplus: $j, | |
simrarr: Uj, | |
slarr: Vj, | |
SmallCircle: Hj, | |
smallsetminus: Gj, | |
smashp: Wj, | |
smeparsl: Jj, | |
smid: Yj, | |
smile: Kj, | |
smt: Xj, | |
smte: Zj, | |
smtes: Qj, | |
SOFTcy: e9, | |
softcy: t9, | |
solbar: n9, | |
solb: s9, | |
sol: a9, | |
Sopf: o9, | |
sopf: r9, | |
spades: i9, | |
spadesuit: c9, | |
spar: l9, | |
sqcap: u9, | |
sqcaps: p9, | |
sqcup: d9, | |
sqcups: m9, | |
Sqrt: f9, | |
sqsub: h9, | |
sqsube: g9, | |
sqsubset: b9, | |
sqsubseteq: v9, | |
sqsup: x9, | |
sqsupe: y9, | |
sqsupset: w9, | |
sqsupseteq: k9, | |
square: _9, | |
Square: C9, | |
SquareIntersection: E9, | |
SquareSubset: A9, | |
SquareSubsetEqual: S9, | |
SquareSuperset: T9, | |
SquareSupersetEqual: D9, | |
SquareUnion: I9, | |
squarf: N9, | |
squ: M9, | |
squf: O9, | |
srarr: L9, | |
Sscr: R9, | |
sscr: P9, | |
ssetmn: B9, | |
ssmile: z9, | |
sstarf: q9, | |
Star: F9, | |
star: j9, | |
starf: $9, | |
straightepsilon: U9, | |
straightphi: V9, | |
strns: H9, | |
sub: G9, | |
Sub: W9, | |
subdot: J9, | |
subE: Y9, | |
sube: K9, | |
subedot: X9, | |
submult: Z9, | |
subnE: Q9, | |
subne: e$, | |
subplus: t$, | |
subrarr: n$, | |
subset: s$, | |
Subset: a$, | |
subseteq: o$, | |
subseteqq: r$, | |
SubsetEqual: i$, | |
subsetneq: c$, | |
subsetneqq: l$, | |
subsim: u$, | |
subsub: p$, | |
subsup: d$, | |
succapprox: m$, | |
succ: f$, | |
succcurlyeq: h$, | |
Succeeds: g$, | |
SucceedsEqual: b$, | |
SucceedsSlantEqual: v$, | |
SucceedsTilde: x$, | |
succeq: y$, | |
succnapprox: w$, | |
succneqq: k$, | |
succnsim: _$, | |
succsim: C$, | |
SuchThat: E$, | |
sum: A$, | |
Sum: S$, | |
sung: T$, | |
sup1: D$, | |
sup2: I$, | |
sup3: N$, | |
sup: M$, | |
Sup: O$, | |
supdot: L$, | |
supdsub: R$, | |
supE: P$, | |
supe: B$, | |
supedot: z$, | |
Superset: q$, | |
SupersetEqual: F$, | |
suphsol: j$, | |
suphsub: $$, | |
suplarr: U$, | |
supmult: V$, | |
supnE: H$, | |
supne: G$, | |
supplus: W$, | |
supset: J$, | |
Supset: Y$, | |
supseteq: K$, | |
supseteqq: X$, | |
supsetneq: Z$, | |
supsetneqq: Q$, | |
supsim: eU, | |
supsub: tU, | |
supsup: nU, | |
swarhk: sU, | |
swarr: aU, | |
swArr: oU, | |
swarrow: rU, | |
swnwar: iU, | |
szlig: cU, | |
Tab: lU, | |
target: uU, | |
Tau: pU, | |
tau: dU, | |
tbrk: mU, | |
Tcaron: fU, | |
tcaron: hU, | |
Tcedil: gU, | |
tcedil: bU, | |
Tcy: vU, | |
tcy: xU, | |
tdot: yU, | |
telrec: wU, | |
Tfr: kU, | |
tfr: _U, | |
there4: CU, | |
therefore: EU, | |
Therefore: AU, | |
Theta: SU, | |
theta: TU, | |
thetasym: DU, | |
thetav: IU, | |
thickapprox: NU, | |
thicksim: MU, | |
ThickSpace: OU, | |
ThinSpace: LU, | |
thinsp: RU, | |
thkap: PU, | |
thksim: BU, | |
THORN: zU, | |
thorn: qU, | |
tilde: FU, | |
Tilde: jU, | |
TildeEqual: $U, | |
TildeFullEqual: UU, | |
TildeTilde: VU, | |
timesbar: HU, | |
timesb: GU, | |
times: WU, | |
timesd: JU, | |
tint: YU, | |
toea: KU, | |
topbot: XU, | |
topcir: ZU, | |
top: QU, | |
Topf: eV, | |
topf: tV, | |
topfork: nV, | |
tosa: sV, | |
tprime: aV, | |
trade: oV, | |
TRADE: rV, | |
triangle: iV, | |
triangledown: cV, | |
triangleleft: lV, | |
trianglelefteq: uV, | |
triangleq: pV, | |
triangleright: dV, | |
trianglerighteq: mV, | |
tridot: fV, | |
trie: hV, | |
triminus: gV, | |
TripleDot: bV, | |
triplus: vV, | |
trisb: xV, | |
tritime: yV, | |
trpezium: wV, | |
Tscr: kV, | |
tscr: _V, | |
TScy: CV, | |
tscy: EV, | |
TSHcy: AV, | |
tshcy: SV, | |
Tstrok: TV, | |
tstrok: DV, | |
twixt: IV, | |
twoheadleftarrow: NV, | |
twoheadrightarrow: MV, | |
Uacute: OV, | |
uacute: LV, | |
uarr: RV, | |
Uarr: PV, | |
uArr: BV, | |
Uarrocir: zV, | |
Ubrcy: qV, | |
ubrcy: FV, | |
Ubreve: jV, | |
ubreve: $V, | |
Ucirc: UV, | |
ucirc: VV, | |
Ucy: HV, | |
ucy: GV, | |
udarr: WV, | |
Udblac: JV, | |
udblac: YV, | |
udhar: KV, | |
ufisht: XV, | |
Ufr: ZV, | |
ufr: QV, | |
Ugrave: eH, | |
ugrave: tH, | |
uHar: nH, | |
uharl: sH, | |
uharr: aH, | |
uhblk: oH, | |
ulcorn: rH, | |
ulcorner: iH, | |
ulcrop: cH, | |
ultri: lH, | |
Umacr: uH, | |
umacr: pH, | |
uml: dH, | |
UnderBar: mH, | |
UnderBrace: fH, | |
UnderBracket: hH, | |
UnderParenthesis: gH, | |
Union: bH, | |
UnionPlus: vH, | |
Uogon: xH, | |
uogon: yH, | |
Uopf: wH, | |
uopf: kH, | |
UpArrowBar: _H, | |
uparrow: CH, | |
UpArrow: EH, | |
Uparrow: AH, | |
UpArrowDownArrow: SH, | |
updownarrow: TH, | |
UpDownArrow: DH, | |
Updownarrow: IH, | |
UpEquilibrium: NH, | |
upharpoonleft: MH, | |
upharpoonright: OH, | |
uplus: LH, | |
UpperLeftArrow: RH, | |
UpperRightArrow: PH, | |
upsi: BH, | |
Upsi: zH, | |
upsih: qH, | |
Upsilon: FH, | |
upsilon: jH, | |
UpTeeArrow: $H, | |
UpTee: UH, | |
upuparrows: VH, | |
urcorn: HH, | |
urcorner: GH, | |
urcrop: WH, | |
Uring: JH, | |
uring: YH, | |
urtri: KH, | |
Uscr: XH, | |
uscr: ZH, | |
utdot: QH, | |
Utilde: eG, | |
utilde: tG, | |
utri: nG, | |
utrif: sG, | |
uuarr: aG, | |
Uuml: oG, | |
uuml: rG, | |
uwangle: iG, | |
vangrt: cG, | |
varepsilon: lG, | |
varkappa: uG, | |
varnothing: pG, | |
varphi: dG, | |
varpi: mG, | |
varpropto: fG, | |
varr: hG, | |
vArr: gG, | |
varrho: bG, | |
varsigma: vG, | |
varsubsetneq: xG, | |
varsubsetneqq: yG, | |
varsupsetneq: wG, | |
varsupsetneqq: kG, | |
vartheta: _G, | |
vartriangleleft: CG, | |
vartriangleright: EG, | |
vBar: AG, | |
Vbar: SG, | |
vBarv: TG, | |
Vcy: DG, | |
vcy: IG, | |
vdash: NG, | |
vDash: MG, | |
Vdash: OG, | |
VDash: LG, | |
Vdashl: RG, | |
veebar: PG, | |
vee: BG, | |
Vee: zG, | |
veeeq: qG, | |
vellip: FG, | |
verbar: jG, | |
Verbar: $G, | |
vert: UG, | |
Vert: VG, | |
VerticalBar: HG, | |
VerticalLine: GG, | |
VerticalSeparator: WG, | |
VerticalTilde: JG, | |
VeryThinSpace: YG, | |
Vfr: KG, | |
vfr: XG, | |
vltri: ZG, | |
vnsub: QG, | |
vnsup: eW, | |
Vopf: tW, | |
vopf: nW, | |
vprop: sW, | |
vrtri: aW, | |
Vscr: oW, | |
vscr: rW, | |
vsubnE: iW, | |
vsubne: cW, | |
vsupnE: lW, | |
vsupne: uW, | |
Vvdash: pW, | |
vzigzag: dW, | |
Wcirc: mW, | |
wcirc: fW, | |
wedbar: hW, | |
wedge: gW, | |
Wedge: bW, | |
wedgeq: vW, | |
weierp: xW, | |
Wfr: yW, | |
wfr: wW, | |
Wopf: kW, | |
wopf: _W, | |
wp: CW, | |
wr: EW, | |
wreath: AW, | |
Wscr: SW, | |
wscr: TW, | |
xcap: DW, | |
xcirc: IW, | |
xcup: NW, | |
xdtri: MW, | |
Xfr: OW, | |
xfr: LW, | |
xharr: RW, | |
xhArr: PW, | |
Xi: BW, | |
xi: zW, | |
xlarr: qW, | |
xlArr: FW, | |
xmap: jW, | |
xnis: $W, | |
xodot: UW, | |
Xopf: VW, | |
xopf: HW, | |
xoplus: GW, | |
xotime: WW, | |
xrarr: JW, | |
xrArr: YW, | |
Xscr: KW, | |
xscr: XW, | |
xsqcup: ZW, | |
xuplus: QW, | |
xutri: eJ, | |
xvee: tJ, | |
xwedge: nJ, | |
Yacute: sJ, | |
yacute: aJ, | |
YAcy: oJ, | |
yacy: rJ, | |
Ycirc: iJ, | |
ycirc: cJ, | |
Ycy: lJ, | |
ycy: uJ, | |
yen: pJ, | |
Yfr: dJ, | |
yfr: mJ, | |
YIcy: fJ, | |
yicy: hJ, | |
Yopf: gJ, | |
yopf: bJ, | |
Yscr: vJ, | |
yscr: xJ, | |
YUcy: yJ, | |
yucy: wJ, | |
yuml: kJ, | |
Yuml: _J, | |
Zacute: CJ, | |
zacute: EJ, | |
Zcaron: AJ, | |
zcaron: SJ, | |
Zcy: TJ, | |
zcy: DJ, | |
Zdot: IJ, | |
zdot: NJ, | |
zeetrf: MJ, | |
ZeroWidthSpace: OJ, | |
Zeta: LJ, | |
zeta: RJ, | |
zfr: PJ, | |
Zfr: BJ, | |
ZHcy: zJ, | |
zhcy: qJ, | |
zigrarr: FJ, | |
zopf: jJ, | |
Zopf: $J, | |
Zscr: UJ, | |
zscr: VJ, | |
zwj: HJ, | |
zwnj: GJ | |
}; | |
var vp = WJ, | |
Br = /[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/, | |
Ln = {}, | |
fc = {}; | |
function JJ(t) { | |
var e, n, s = fc[t]; | |
if (s) return s; | |
for (s = fc[t] = [], e = 0; e < 128; e++) n = String.fromCharCode(e), /^[0-9a-z]$/i.test(n) ? s.push(n) : s.push("%" + ("0" + e.toString(16).toUpperCase()).slice(-2)); | |
for (e = 0; e < t.length; e++) s[t.charCodeAt(e)] = t[e]; | |
return s | |
} | |
function Ra(t, e, n) { | |
var s, a, o, r, i, c = ""; | |
for (typeof e != "string" && (n = e, e = Ra.defaultChars), typeof n == "undefined" && (n = !0), i = JJ(e), s = 0, a = t.length; s < a; s++) { | |
if (o = t.charCodeAt(s), n && o === 37 && s + 2 < a && /^[0-9a-f]{2}$/i.test(t.slice(s + 1, s + 3))) { | |
c += t.slice(s, s + 3), s += 2; | |
continue | |
} | |
if (o < 128) { | |
c += i[o]; | |
continue | |
} | |
if (o >= 55296 && o <= 57343) { | |
if (o >= 55296 && o <= 56319 && s + 1 < a && (r = t.charCodeAt(s + 1), r >= 56320 && r <= 57343)) { | |
c += encodeURIComponent(t[s] + t[s + 1]), s++; | |
continue | |
} | |
c += "%EF%BF%BD"; | |
continue | |
} | |
c += encodeURIComponent(t[s]) | |
} | |
return c | |
} | |
Ra.defaultChars = ";/?:@&=+$,-_.!~*'()#"; | |
Ra.componentChars = "-_.!~*'()"; | |
var YJ = Ra, | |
hc = {}; | |
function KJ(t) { | |
var e, n, s = hc[t]; | |
if (s) return s; | |
for (s = hc[t] = [], e = 0; e < 128; e++) n = String.fromCharCode(e), s.push(n); | |
for (e = 0; e < t.length; e++) n = t.charCodeAt(e), s[n] = "%" + ("0" + n.toString(16).toUpperCase()).slice(-2); | |
return s | |
} | |
function Pa(t, e) { | |
var n; | |
return typeof e != "string" && (e = Pa.defaultChars), n = KJ(e), t.replace(/(%[a-f0-9]{2})+/gi, function(s) { | |
var a, o, r, i, c, l, u, d = ""; | |
for (a = 0, o = s.length; a < o; a += 3) { | |
if (r = parseInt(s.slice(a + 1, a + 3), 16), r < 128) { | |
d += n[r]; | |
continue | |
} | |
if ((r & 224) === 192 && a + 3 < o && (i = parseInt(s.slice(a + 4, a + 6), 16), (i & 192) === 128)) { | |
u = r << 6 & 1984 | i & 63, u < 128 ? d += "��" : d += String.fromCharCode(u), a += 3; | |
continue | |
} | |
if ((r & 240) === 224 && a + 6 < o && (i = parseInt(s.slice(a + 4, a + 6), 16), c = parseInt(s.slice(a + 7, a + 9), 16), (i & 192) === 128 && (c & 192) === 128)) { | |
u = r << 12 & 61440 | i << 6 & 4032 | c & 63, u < 2048 || u >= 55296 && u <= 57343 ? d += "���" : d += String.fromCharCode(u), a += 6; | |
continue | |
} | |
if ((r & 248) === 240 && a + 9 < o && (i = parseInt(s.slice(a + 4, a + 6), 16), c = parseInt(s.slice(a + 7, a + 9), 16), l = parseInt(s.slice(a + 10, a + 12), 16), (i & 192) === 128 && (c & 192) === 128 && (l & 192) === 128)) { | |
u = r << 18 & 1835008 | i << 12 & 258048 | c << 6 & 4032 | l & 63, u < 65536 || u > 1114111 ? d += "����" : (u -= 65536, d += String.fromCharCode(55296 + (u >> 10), 56320 + (u & 1023))), a += 9; | |
continue | |
} | |
d += "�" | |
} | |
return d | |
}) | |
} | |
Pa.defaultChars = ";/?:@&=+$,#"; | |
Pa.componentChars = ""; | |
var XJ = Pa, | |
ZJ = function(e) { | |
var n = ""; | |
return n += e.protocol || "", n += e.slashes ? "//" : "", n += e.auth ? e.auth + "@" : "", e.hostname && e.hostname.indexOf(":") !== -1 ? n += "[" + e.hostname + "]" : n += e.hostname || "", n += e.port ? ":" + e.port : "", n += e.pathname || "", n += e.search || "", n += e.hash || "", n | |
}; | |
function ua() { | |
this.protocol = null, this.slashes = null, this.auth = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.pathname = null | |
} | |
var QJ = /^([a-z0-9.+-]+:)/i, | |
eY = /:[0-9]*$/, | |
tY = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, | |
nY = ["<", ">", '"', "`", " ", "\r", ` | |
`, " "], | |
sY = ["{", "}", "|", "\\", "^", "`"].concat(nY), | |
aY = ["'"].concat(sY), | |
gc = ["%", "/", "?", ";", "#"].concat(aY), | |
bc = ["/", "?", "#"], | |
oY = 255, | |
vc = /^[+a-z0-9A-Z_-]{0,63}$/, | |
rY = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, | |
xc = { | |
javascript: !0, | |
"javascript:": !0 | |
}, | |
yc = { | |
http: !0, | |
https: !0, | |
ftp: !0, | |
gopher: !0, | |
file: !0, | |
"http:": !0, | |
"https:": !0, | |
"ftp:": !0, | |
"gopher:": !0, | |
"file:": !0 | |
}; | |
function iY(t, e) { | |
if (t && t instanceof ua) return t; | |
var n = new ua; | |
return n.parse(t, e), n | |
} | |
ua.prototype.parse = function(t, e) { | |
var n, s, a, o, r, i = t; | |
if (i = i.trim(), !e && t.split("#").length === 1) { | |
var c = tY.exec(i); | |
if (c) return this.pathname = c[1], c[2] && (this.search = c[2]), this | |
} | |
var l = QJ.exec(i); | |
if (l && (l = l[0], a = l.toLowerCase(), this.protocol = l, i = i.substr(l.length)), (e || l || i.match(/^\/\/[^@\/]+@[^@\/]+/)) && (r = i.substr(0, 2) === "//", r && !(l && xc[l]) && (i = i.substr(2), this.slashes = !0)), !xc[l] && (r || l && !yc[l])) { | |
var u = -1; | |
for (n = 0; n < bc.length; n++) o = i.indexOf(bc[n]), o !== -1 && (u === -1 || o < u) && (u = o); | |
var d, m; | |
for (u === -1 ? m = i.lastIndexOf("@") : m = i.lastIndexOf("@", u), m !== -1 && (d = i.slice(0, m), i = i.slice(m + 1), this.auth = d), u = -1, n = 0; n < gc.length; n++) o = i.indexOf(gc[n]), o !== -1 && (u === -1 || o < u) && (u = o); | |
u === -1 && (u = i.length), i[u - 1] === ":" && u--; | |
var f = i.slice(0, u); | |
i = i.slice(u), this.parseHost(f), this.hostname = this.hostname || ""; | |
var h = this.hostname[0] === "[" && this.hostname[this.hostname.length - 1] === "]"; | |
if (!h) { | |
var g = this.hostname.split(/\./); | |
for (n = 0, s = g.length; n < s; n++) { | |
var b = g[n]; | |
if (b && !b.match(vc)) { | |
for (var x = "", v = 0, w = b.length; v < w; v++) b.charCodeAt(v) > 127 ? x += "x" : x += b[v]; | |
if (!x.match(vc)) { | |
var E = g.slice(0, n), | |
_ = g.slice(n + 1), | |
k = b.match(rY); | |
k && (E.push(k[1]), _.unshift(k[2])), _.length && (i = _.join(".") + i), this.hostname = E.join("."); | |
break | |
} | |
} | |
} | |
} | |
this.hostname.length > oY && (this.hostname = ""), h && (this.hostname = this.hostname.substr(1, this.hostname.length - 2)) | |
} | |
var M = i.indexOf("#"); | |
M !== -1 && (this.hash = i.substr(M), i = i.slice(0, M)); | |
var y = i.indexOf("?"); | |
return y !== -1 && (this.search = i.substr(y), i = i.slice(0, y)), i && (this.pathname = i), yc[a] && this.hostname && !this.pathname && (this.pathname = ""), this | |
}; | |
ua.prototype.parseHost = function(t) { | |
var e = eY.exec(t); | |
e && (e = e[0], e !== ":" && (this.port = e.substr(1)), t = t.substr(0, t.length - e.length)), t && (this.hostname = t) | |
}; | |
var cY = iY; | |
Ln.encode = YJ; | |
Ln.decode = XJ; | |
Ln.format = ZJ; | |
Ln.parse = cY; | |
var Gt = {}, | |
io, wc; | |
function xp() { | |
return wc || (wc = 1, io = /[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/), io | |
} | |
var co, kc; | |
function yp() { | |
return kc || (kc = 1, co = /[\0-\x1F\x7F-\x9F]/), co | |
} | |
var lo, _c; | |
function lY() { | |
return _c || (_c = 1, lo = /[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/), lo | |
} | |
var uo, Cc; | |
function wp() { | |
return Cc || (Cc = 1, uo = /[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/), uo | |
} | |
var Ec; | |
function uY() { | |
return Ec || (Ec = 1, Gt.Any = xp(), Gt.Cc = yp(), Gt.Cf = lY(), Gt.P = Br, Gt.Z = wp()), Gt | |
}(function(t) { | |
function e(A) { | |
return Object.prototype.toString.call(A) | |
} | |
function n(A) { | |
return e(A) === "[object String]" | |
} | |
var s = Object.prototype.hasOwnProperty; | |
function a(A, I) { | |
return s.call(A, I) | |
} | |
function o(A) { | |
var I = Array.prototype.slice.call(arguments, 1); | |
return I.forEach(function(O) { | |
if (O) { | |
if (typeof O != "object") throw new TypeError(O + "must be object"); | |
Object.keys(O).forEach(function(B) { | |
A[B] = O[B] | |
}) | |
} | |
}), A | |
} | |
function r(A, I, O) { | |
return [].concat(A.slice(0, I), O, A.slice(I + 1)) | |
} | |
function i(A) { | |
return !(A >= 55296 && A <= 57343 || A >= 64976 && A <= 65007 || (A & 65535) === 65535 || (A & 65535) === 65534 || A >= 0 && A <= 8 || A === 11 || A >= 14 && A <= 31 || A >= 127 && A <= 159 || A > 1114111) | |
} | |
function c(A) { | |
if (A > 65535) { | |
A -= 65536; | |
var I = 55296 + (A >> 10), | |
O = 56320 + (A & 1023); | |
return String.fromCharCode(I, O) | |
} | |
return String.fromCharCode(A) | |
} | |
var l = /\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g, | |
u = /&([a-z#][a-z0-9]{1,31});/gi, | |
d = new RegExp(l.source + "|" + u.source, "gi"), | |
m = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i, | |
f = vp; | |
function h(A, I) { | |
var O = 0; | |
return a(f, I) ? f[I] : I.charCodeAt(0) === 35 && m.test(I) && (O = I[1].toLowerCase() === "x" ? parseInt(I.slice(2), 16) : parseInt(I.slice(1), 10), i(O)) ? c(O) : A | |
} | |
function g(A) { | |
return A.indexOf("\\") < 0 ? A : A.replace(l, "$1") | |
} | |
function b(A) { | |
return A.indexOf("\\") < 0 && A.indexOf("&") < 0 ? A : A.replace(d, function(I, O, B) { | |
return O || h(I, B) | |
}) | |
} | |
var x = /[&<>"]/, | |
v = /[&<>"]/g, | |
w = { | |
"&": "&", | |
"<": "<", | |
">": ">", | |
'"': """ | |
}; | |
function E(A) { | |
return w[A] | |
} | |
function _(A) { | |
return x.test(A) ? A.replace(v, E) : A | |
} | |
var k = /[.?*+^$[\]\\(){}|-]/g; | |
function M(A) { | |
return A.replace(k, "\\$&") | |
} | |
function y(A) { | |
switch (A) { | |
case 9: | |
case 32: | |
return !0 | |
} | |
return !1 | |
} | |
function T(A) { | |
if (A >= 8192 && A <= 8202) return !0; | |
switch (A) { | |
case 9: | |
case 10: | |
case 11: | |
case 12: | |
case 13: | |
case 32: | |
case 160: | |
case 5760: | |
case 8239: | |
case 8287: | |
case 12288: | |
return !0 | |
} | |
return !1 | |
} | |
var D = Br; | |
function C(A) { | |
return D.test(A) | |
} | |
function L(A) { | |
switch (A) { | |
case 33: | |
case 34: | |
case 35: | |
case 36: | |
case 37: | |
case 38: | |
case 39: | |
case 40: | |
case 41: | |
case 42: | |
case 43: | |
case 44: | |
case 45: | |
case 46: | |
case 47: | |
case 58: | |
case 59: | |
case 60: | |
case 61: | |
case 62: | |
case 63: | |
case 64: | |
case 91: | |
case 92: | |
case 93: | |
case 94: | |
case 95: | |
case 96: | |
case 123: | |
case 124: | |
case 125: | |
case 126: | |
return !0; | |
default: | |
return !1 | |
} | |
} | |
function R(A) { | |
return A = A.trim().replace(/\s+/g, " "), "ẞ".toLowerCase() === "Ṿ" && (A = A.replace(/ẞ/g, "ß")), A.toLowerCase().toUpperCase() | |
} | |
t.lib = {}, t.lib.mdurl = Ln, t.lib.ucmicro = uY(), t.assign = o, t.isString = n, t.has = a, t.unescapeMd = g, t.unescapeAll = b, t.isValidEntityCode = i, t.fromCodePoint = c, t.escapeHtml = _, t.arrayReplaceAt = r, t.isSpace = y, t.isWhiteSpace = T, t.isMdAsciiPunct = L, t.isPunctChar = C, t.escapeRE = M, t.normalizeReference = R | |
})(oe); | |
var Ba = {}, | |
pY = function(e, n, s) { | |
var a, o, r, i, c = -1, | |
l = e.posMax, | |
u = e.pos; | |
for (e.pos = n + 1, a = 1; e.pos < l;) { | |
if (r = e.src.charCodeAt(e.pos), r === 93 && (a--, a === 0)) { | |
o = !0; | |
break | |
} | |
if (i = e.pos, e.md.inline.skipToken(e), r === 91) { | |
if (i === e.pos - 1) a++; | |
else if (s) return e.pos = u, -1 | |
} | |
} | |
return o && (c = e.pos), e.pos = u, c | |
}, | |
Ac = oe.unescapeAll, | |
dY = function(e, n, s) { | |
var a, o, r = 0, | |
i = n, | |
c = { | |
ok: !1, | |
pos: 0, | |
lines: 0, | |
str: "" | |
}; | |
if (e.charCodeAt(n) === 60) { | |
for (n++; n < s;) { | |
if (a = e.charCodeAt(n), a === 10 || a === 60) return c; | |
if (a === 62) return c.pos = n + 1, c.str = Ac(e.slice(i + 1, n)), c.ok = !0, c; | |
if (a === 92 && n + 1 < s) { | |
n += 2; | |
continue | |
} | |
n++ | |
} | |
return c | |
} | |
for (o = 0; n < s && (a = e.charCodeAt(n), !(a === 32 || a < 32 || a === 127));) { | |
if (a === 92 && n + 1 < s) { | |
if (e.charCodeAt(n + 1) === 32) break; | |
n += 2; | |
continue | |
} | |
if (a === 40 && (o++, o > 32)) return c; | |
if (a === 41) { | |
if (o === 0) break; | |
o-- | |
} | |
n++ | |
} | |
return i === n || o !== 0 || (c.str = Ac(e.slice(i, n)), c.lines = r, c.pos = n, c.ok = !0), c | |
}, | |
mY = oe.unescapeAll, | |
fY = function(e, n, s) { | |
var a, o, r = 0, | |
i = n, | |
c = { | |
ok: !1, | |
pos: 0, | |
lines: 0, | |
str: "" | |
}; | |
if (n >= s || (o = e.charCodeAt(n), o !== 34 && o !== 39 && o !== 40)) return c; | |
for (n++, o === 40 && (o = 41); n < s;) { | |
if (a = e.charCodeAt(n), a === o) return c.pos = n + 1, c.lines = r, c.str = mY(e.slice(i + 1, n)), c.ok = !0, c; | |
if (a === 40 && o === 41) return c; | |
a === 10 ? r++ : a === 92 && n + 1 < s && (n++, e.charCodeAt(n) === 10 && r++), n++ | |
} | |
return c | |
}; | |
Ba.parseLinkLabel = pY; | |
Ba.parseLinkDestination = dY; | |
Ba.parseLinkTitle = fY; | |
var hY = oe.assign, | |
gY = oe.unescapeAll, | |
Xt = oe.escapeHtml, | |
Ct = {}; | |
Ct.code_inline = function(t, e, n, s, a) { | |
var o = t[e]; | |
return "<code" + a.renderAttrs(o) + ">" + Xt(t[e].content) + "</code>" | |
}; | |
Ct.code_block = function(t, e, n, s, a) { | |
var o = t[e]; | |
return "<pre" + a.renderAttrs(o) + "><code>" + Xt(t[e].content) + `</code></pre> | |
` | |
}; | |
Ct.fence = function(t, e, n, s, a) { | |
var o = t[e], | |
r = o.info ? gY(o.info).trim() : "", | |
i = "", | |
c = "", | |
l, u, d, m, f; | |
return r && (d = r.split(/(\s+)/g), i = d[0], c = d.slice(2).join("")), n.highlight ? l = n.highlight(o.content, i, c) || Xt(o.content) : l = Xt(o.content), l.indexOf("<pre") === 0 ? l + ` | |
` : r ? (u = o.attrIndex("class"), m = o.attrs ? o.attrs.slice() : [], u < 0 ? m.push(["class", n.langPrefix + i]) : (m[u] = m[u].slice(), m[u][1] += " " + n.langPrefix + i), f = { | |
attrs: m | |
}, "<pre><code" + a.renderAttrs(f) + ">" + l + `</code></pre> | |
`) : "<pre><code" + a.renderAttrs(o) + ">" + l + `</code></pre> | |
` | |
}; | |
Ct.image = function(t, e, n, s, a) { | |
var o = t[e]; | |
return o.attrs[o.attrIndex("alt")][1] = a.renderInlineAsText(o.children, n, s), a.renderToken(t, e, n) | |
}; | |
Ct.hardbreak = function(t, e, n) { | |
return n.xhtmlOut ? `<br /> | |
` : `<br> | |
` | |
}; | |
Ct.softbreak = function(t, e, n) { | |
return n.breaks ? n.xhtmlOut ? `<br /> | |
` : `<br> | |
` : ` | |
` | |
}; | |
Ct.text = function(t, e) { | |
return Xt(t[e].content) | |
}; | |
Ct.html_block = function(t, e) { | |
return t[e].content | |
}; | |
Ct.html_inline = function(t, e) { | |
return t[e].content | |
}; | |
function Rn() { | |
this.rules = hY({}, Ct) | |
} | |
Rn.prototype.renderAttrs = function(e) { | |
var n, s, a; | |
if (!e.attrs) return ""; | |
for (a = "", n = 0, s = e.attrs.length; n < s; n++) a += " " + Xt(e.attrs[n][0]) + '="' + Xt(e.attrs[n][1]) + '"'; | |
return a | |
}; | |
Rn.prototype.renderToken = function(e, n, s) { | |
var a, o = "", | |
r = !1, | |
i = e[n]; | |
return i.hidden ? "" : (i.block && i.nesting !== -1 && n && e[n - 1].hidden && (o += ` | |
`), o += (i.nesting === -1 ? "</" : "<") + i.tag, o += this.renderAttrs(i), i.nesting === 0 && s.xhtmlOut && (o += " /"), i.block && (r = !0, i.nesting === 1 && n + 1 < e.length && (a = e[n + 1], (a.type === "inline" || a.hidden || a.nesting === -1 && a.tag === i.tag) && (r = !1))), o += r ? `> | |
` : ">", o) | |
}; | |
Rn.prototype.renderInline = function(t, e, n) { | |
for (var s, a = "", o = this.rules, r = 0, i = t.length; r < i; r++) s = t[r].type, typeof o[s] != "undefined" ? a += o[s](t, r, e, n, this) : a += this.renderToken(t, r, e); | |
return a | |
}; | |
Rn.prototype.renderInlineAsText = function(t, e, n) { | |
for (var s = "", a = 0, o = t.length; a < o; a++) t[a].type === "text" ? s += t[a].content : t[a].type === "image" ? s += this.renderInlineAsText(t[a].children, e, n) : t[a].type === "softbreak" && (s += ` | |
`); | |
return s | |
}; | |
Rn.prototype.render = function(t, e, n) { | |
var s, a, o, r = "", | |
i = this.rules; | |
for (s = 0, a = t.length; s < a; s++) o = t[s].type, o === "inline" ? r += this.renderInline(t[s].children, e, n) : typeof i[o] != "undefined" ? r += i[t[s].type](t, s, e, n, this) : r += this.renderToken(t, s, e, n); | |
return r | |
}; | |
var bY = Rn; | |
function ut() { | |
this.__rules__ = [], this.__cache__ = null | |
} | |
ut.prototype.__find__ = function(t) { | |
for (var e = 0; e < this.__rules__.length; e++) | |
if (this.__rules__[e].name === t) return e; | |
return -1 | |
}; | |
ut.prototype.__compile__ = function() { | |
var t = this, | |
e = [""]; | |
t.__rules__.forEach(function(n) { | |
n.enabled && n.alt.forEach(function(s) { | |
e.indexOf(s) < 0 && e.push(s) | |
}) | |
}), t.__cache__ = {}, e.forEach(function(n) { | |
t.__cache__[n] = [], t.__rules__.forEach(function(s) { | |
s.enabled && (n && s.alt.indexOf(n) < 0 || t.__cache__[n].push(s.fn)) | |
}) | |
}) | |
}; | |
ut.prototype.at = function(t, e, n) { | |
var s = this.__find__(t), | |
a = n || {}; | |
if (s === -1) throw new Error("Parser rule not found: " + t); | |
this.__rules__[s].fn = e, this.__rules__[s].alt = a.alt || [], this.__cache__ = null | |
}; | |
ut.prototype.before = function(t, e, n, s) { | |
var a = this.__find__(t), | |
o = s || {}; | |
if (a === -1) throw new Error("Parser rule not found: " + t); | |
this.__rules__.splice(a, 0, { | |
name: e, | |
enabled: !0, | |
fn: n, | |
alt: o.alt || [] | |
}), this.__cache__ = null | |
}; | |
ut.prototype.after = function(t, e, n, s) { | |
var a = this.__find__(t), | |
o = s || {}; | |
if (a === -1) throw new Error("Parser rule not found: " + t); | |
this.__rules__.splice(a + 1, 0, { | |
name: e, | |
enabled: !0, | |
fn: n, | |
alt: o.alt || [] | |
}), this.__cache__ = null | |
}; | |
ut.prototype.push = function(t, e, n) { | |
var s = n || {}; | |
this.__rules__.push({ | |
name: t, | |
enabled: !0, | |
fn: e, | |
alt: s.alt || [] | |
}), this.__cache__ = null | |
}; | |
ut.prototype.enable = function(t, e) { | |
Array.isArray(t) || (t = [t]); | |
var n = []; | |
return t.forEach(function(s) { | |
var a = this.__find__(s); | |
if (a < 0) { | |
if (e) return; | |
throw new Error("Rules manager: invalid rule name " + s) | |
} | |
this.__rules__[a].enabled = !0, n.push(s) | |
}, this), this.__cache__ = null, n | |
}; | |
ut.prototype.enableOnly = function(t, e) { | |
Array.isArray(t) || (t = [t]), this.__rules__.forEach(function(n) { | |
n.enabled = !1 | |
}), this.enable(t, e) | |
}; | |
ut.prototype.disable = function(t, e) { | |
Array.isArray(t) || (t = [t]); | |
var n = []; | |
return t.forEach(function(s) { | |
var a = this.__find__(s); | |
if (a < 0) { | |
if (e) return; | |
throw new Error("Rules manager: invalid rule name " + s) | |
} | |
this.__rules__[a].enabled = !1, n.push(s) | |
}, this), this.__cache__ = null, n | |
}; | |
ut.prototype.getRules = function(t) { | |
return this.__cache__ === null && this.__compile__(), this.__cache__[t] || [] | |
}; | |
var zr = ut, | |
vY = /\r\n?|\n/g, | |
xY = /\0/g, | |
yY = function(e) { | |
var n; | |
n = e.src.replace(vY, ` | |
`), n = n.replace(xY, "�"), e.src = n | |
}, | |
wY = function(e) { | |
var n; | |
e.inlineMode ? (n = new e.Token("inline", "", 0), n.content = e.src, n.map = [0, 1], n.children = [], e.tokens.push(n)) : e.md.block.parse(e.src, e.md, e.env, e.tokens) | |
}, | |
kY = function(e) { | |
var n = e.tokens, | |
s, a, o; | |
for (a = 0, o = n.length; a < o; a++) s = n[a], s.type === "inline" && e.md.inline.parse(s.content, e.md, e.env, s.children) | |
}, | |
_Y = oe.arrayReplaceAt; | |
function CY(t) { | |
return /^<a[>\s]/i.test(t) | |
} | |
function EY(t) { | |
return /^<\/a\s*>/i.test(t) | |
} | |
var AY = function(e) { | |
var n, s, a, o, r, i, c, l, u, d, m, f, h, g, b, x, v = e.tokens, | |
w; | |
if (e.md.options.linkify) { | |
for (s = 0, a = v.length; s < a; s++) | |
if (!(v[s].type !== "inline" || !e.md.linkify.pretest(v[s].content))) | |
for (o = v[s].children, h = 0, n = o.length - 1; n >= 0; n--) { | |
if (i = o[n], i.type === "link_close") { | |
for (n--; o[n].level !== i.level && o[n].type !== "link_open";) n--; | |
continue | |
} | |
if (i.type === "html_inline" && (CY(i.content) && h > 0 && h--, EY(i.content) && h++), !(h > 0) && i.type === "text" && e.md.linkify.test(i.content)) { | |
for (u = i.content, w = e.md.linkify.match(u), c = [], f = i.level, m = 0, w.length > 0 && w[0].index === 0 && n > 0 && o[n - 1].type === "text_special" && (w = w.slice(1)), l = 0; l < w.length; l++) g = w[l].url, b = e.md.normalizeLink(g), e.md.validateLink(b) && (x = w[l].text, w[l].schema ? w[l].schema === "mailto:" && !/^mailto:/i.test(x) ? x = e.md.normalizeLinkText("mailto:" + x).replace(/^mailto:/, "") : x = e.md.normalizeLinkText(x) : x = e.md.normalizeLinkText("http://" + x).replace(/^http:\/\//, ""), d = w[l].index, d > m && (r = new e.Token("text", "", 0), r.content = u.slice(m, d), r.level = f, c.push(r)), r = new e.Token("link_open", "a", 1), r.attrs = [ | |
["href", b] | |
], r.level = f++, r.markup = "linkify", r.info = "auto", c.push(r), r = new e.Token("text", "", 0), r.content = x, r.level = f, c.push(r), r = new e.Token("link_close", "a", -1), r.level = --f, r.markup = "linkify", r.info = "auto", c.push(r), m = w[l].lastIndex); | |
m < u.length && (r = new e.Token("text", "", 0), r.content = u.slice(m), r.level = f, c.push(r)), v[s].children = o = _Y(o, n, c) | |
} | |
} | |
} | |
}, | |
kp = /\+-|\.\.|\?\?\?\?|!!!!|,,|--/, | |
SY = /\((c|tm|r)\)/i, | |
TY = /\((c|tm|r)\)/ig, | |
DY = { | |
c: "©", | |
r: "®", | |
tm: "™" | |
}; | |
function IY(t, e) { | |
return DY[e.toLowerCase()] | |
} | |
function NY(t) { | |
var e, n, s = 0; | |
for (e = t.length - 1; e >= 0; e--) n = t[e], n.type === "text" && !s && (n.content = n.content.replace(TY, IY)), n.type === "link_open" && n.info === "auto" && s--, n.type === "link_close" && n.info === "auto" && s++ | |
} | |
function MY(t) { | |
var e, n, s = 0; | |
for (e = t.length - 1; e >= 0; e--) n = t[e], n.type === "text" && !s && kp.test(n.content) && (n.content = n.content.replace(/\+-/g, "±").replace(/\.{2,}/g, "…").replace(/([?!])…/g, "$1..").replace(/([?!]){4,}/g, "$1$1$1").replace(/,{2,}/g, ",").replace(/(^|[^-])---(?=[^-]|$)/mg, "$1—").replace(/(^|\s)--(?=\s|$)/mg, "$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/mg, "$1–")), n.type === "link_open" && n.info === "auto" && s--, n.type === "link_close" && n.info === "auto" && s++ | |
} | |
var OY = function(e) { | |
var n; | |
if (e.md.options.typographer) | |
for (n = e.tokens.length - 1; n >= 0; n--) e.tokens[n].type === "inline" && (SY.test(e.tokens[n].content) && NY(e.tokens[n].children), kp.test(e.tokens[n].content) && MY(e.tokens[n].children)) | |
}, | |
Sc = oe.isWhiteSpace, | |
Tc = oe.isPunctChar, | |
Dc = oe.isMdAsciiPunct, | |
LY = /['"]/, | |
Ic = /['"]/g, | |
Nc = "’"; | |
function Rs(t, e, n) { | |
return t.slice(0, e) + n + t.slice(e + 1) | |
} | |
function RY(t, e) { | |
var n, s, a, o, r, i, c, l, u, d, m, f, h, g, b, x, v, w, E, _, k; | |
for (E = [], n = 0; n < t.length; n++) { | |
for (s = t[n], c = t[n].level, v = E.length - 1; v >= 0 && !(E[v].level <= c); v--); | |
if (E.length = v + 1, s.type === "text") { | |
a = s.content, r = 0, i = a.length; | |
e: for (; r < i && (Ic.lastIndex = r, o = Ic.exec(a), !!o);) { | |
if (b = x = !0, r = o.index + 1, w = o[0] === "'", u = 32, o.index - 1 >= 0) u = a.charCodeAt(o.index - 1); | |
else | |
for (v = n - 1; v >= 0 && !(t[v].type === "softbreak" || t[v].type === "hardbreak"); v--) | |
if (t[v].content) { | |
u = t[v].content.charCodeAt(t[v].content.length - 1); | |
break | |
} if (d = 32, r < i) d = a.charCodeAt(r); | |
else | |
for (v = n + 1; v < t.length && !(t[v].type === "softbreak" || t[v].type === "hardbreak"); v++) | |
if (t[v].content) { | |
d = t[v].content.charCodeAt(0); | |
break | |
} if (m = Dc(u) || Tc(String.fromCharCode(u)), f = Dc(d) || Tc(String.fromCharCode(d)), h = Sc(u), g = Sc(d), g ? b = !1 : f && (h || m || (b = !1)), h ? x = !1 : m && (g || f || (x = !1)), d === 34 && o[0] === '"' && u >= 48 && u <= 57 && (x = b = !1), b && x && (b = m, x = f), !b && !x) { | |
w && (s.content = Rs(s.content, o.index, Nc)); | |
continue | |
} | |
if (x) { | |
for (v = E.length - 1; v >= 0 && (l = E[v], !(E[v].level < c)); v--) | |
if (l.single === w && E[v].level === c) { | |
l = E[v], w ? (_ = e.md.options.quotes[2], k = e.md.options.quotes[3]) : (_ = e.md.options.quotes[0], k = e.md.options.quotes[1]), s.content = Rs(s.content, o.index, k), t[l.token].content = Rs(t[l.token].content, l.pos, _), r += k.length - 1, l.token === n && (r += _.length - 1), a = s.content, i = a.length, E.length = v; | |
continue e | |
} | |
} | |
b ? E.push({ | |
token: n, | |
pos: o.index, | |
single: w, | |
level: c | |
}) : x && w && (s.content = Rs(s.content, o.index, Nc)) | |
} | |
} | |
} | |
} | |
var PY = function(e) { | |
var n; | |
if (e.md.options.typographer) | |
for (n = e.tokens.length - 1; n >= 0; n--) e.tokens[n].type !== "inline" || !LY.test(e.tokens[n].content) || RY(e.tokens[n].children, e) | |
}, | |
BY = function(e) { | |
var n, s, a, o, r, i, c = e.tokens; | |
for (n = 0, s = c.length; n < s; n++) | |
if (c[n].type === "inline") { | |
for (a = c[n].children, r = a.length, o = 0; o < r; o++) a[o].type === "text_special" && (a[o].type = "text"); | |
for (o = i = 0; o < r; o++) a[o].type === "text" && o + 1 < r && a[o + 1].type === "text" ? a[o + 1].content = a[o].content + a[o + 1].content : (o !== i && (a[i] = a[o]), i++); | |
o !== i && (a.length = i) | |
} | |
}; | |
function Pn(t, e, n) { | |
this.type = t, this.tag = e, this.attrs = null, this.map = null, this.nesting = n, this.level = 0, this.children = null, this.content = "", this.markup = "", this.info = "", this.meta = null, this.block = !1, this.hidden = !1 | |
} | |
Pn.prototype.attrIndex = function(e) { | |
var n, s, a; | |
if (!this.attrs) return -1; | |
for (n = this.attrs, s = 0, a = n.length; s < a; s++) | |
if (n[s][0] === e) return s; | |
return -1 | |
}; | |
Pn.prototype.attrPush = function(e) { | |
this.attrs ? this.attrs.push(e) : this.attrs = [e] | |
}; | |
Pn.prototype.attrSet = function(e, n) { | |
var s = this.attrIndex(e), | |
a = [e, n]; | |
s < 0 ? this.attrPush(a) : this.attrs[s] = a | |
}; | |
Pn.prototype.attrGet = function(e) { | |
var n = this.attrIndex(e), | |
s = null; | |
return n >= 0 && (s = this.attrs[n][1]), s | |
}; | |
Pn.prototype.attrJoin = function(e, n) { | |
var s = this.attrIndex(e); | |
s < 0 ? this.attrPush([e, n]) : this.attrs[s][1] = this.attrs[s][1] + " " + n | |
}; | |
var qr = Pn, | |
zY = qr; | |
function _p(t, e, n) { | |
this.src = t, this.env = n, this.tokens = [], this.inlineMode = !1, this.md = e | |
} | |
_p.prototype.Token = zY; | |
var qY = _p, | |
FY = zr, | |
po = [ | |
["normalize", yY], | |
["block", wY], | |
["inline", kY], | |
["linkify", AY], | |
["replacements", OY], | |
["smartquotes", PY], | |
["text_join", BY] | |
]; | |
function Fr() { | |
this.ruler = new FY; | |
for (var t = 0; t < po.length; t++) this.ruler.push(po[t][0], po[t][1]) | |
} | |
Fr.prototype.process = function(t) { | |
var e, n, s; | |
for (s = this.ruler.getRules(""), e = 0, n = s.length; e < n; e++) s[e](t) | |
}; | |
Fr.prototype.State = qY; | |
var jY = Fr, | |
mo = oe.isSpace; | |
function fo(t, e) { | |
var n = t.bMarks[e] + t.tShift[e], | |
s = t.eMarks[e]; | |
return t.src.slice(n, s) | |
} | |
function Mc(t) { | |
var e = [], | |
n = 0, | |
s = t.length, | |
a, o = !1, | |
r = 0, | |
i = ""; | |
for (a = t.charCodeAt(n); n < s;) a === 124 && (o ? (i += t.substring(r, n - 1), r = n) : (e.push(i + t.substring(r, n)), i = "", r = n + 1)), o = a === 92, n++, a = t.charCodeAt(n); | |
return e.push(i + t.substring(r)), e | |
} | |
var $Y = function(e, n, s, a) { | |
var o, r, i, c, l, u, d, m, f, h, g, b, x, v, w, E, _, k; | |
if (n + 2 > s || (u = n + 1, e.sCount[u] < e.blkIndent) || e.sCount[u] - e.blkIndent >= 4 || (i = e.bMarks[u] + e.tShift[u], i >= e.eMarks[u]) || (_ = e.src.charCodeAt(i++), _ !== 124 && _ !== 45 && _ !== 58) || i >= e.eMarks[u] || (k = e.src.charCodeAt(i++), k !== 124 && k !== 45 && k !== 58 && !mo(k)) || _ === 45 && mo(k)) return !1; | |
for (; i < e.eMarks[u];) { | |
if (o = e.src.charCodeAt(i), o !== 124 && o !== 45 && o !== 58 && !mo(o)) return !1; | |
i++ | |
} | |
for (r = fo(e, n + 1), d = r.split("|"), h = [], c = 0; c < d.length; c++) { | |
if (g = d[c].trim(), !g) { | |
if (c === 0 || c === d.length - 1) continue; | |
return !1 | |
} | |
if (!/^:?-+:?$/.test(g)) return !1; | |
g.charCodeAt(g.length - 1) === 58 ? h.push(g.charCodeAt(0) === 58 ? "center" : "right") : g.charCodeAt(0) === 58 ? h.push("left") : h.push("") | |
} | |
if (r = fo(e, n).trim(), r.indexOf("|") === -1 || e.sCount[n] - e.blkIndent >= 4 || (d = Mc(r), d.length && d[0] === "" && d.shift(), d.length && d[d.length - 1] === "" && d.pop(), m = d.length, m === 0 || m !== h.length)) return !1; | |
if (a) return !0; | |
for (v = e.parentType, e.parentType = "table", E = e.md.block.ruler.getRules("blockquote"), f = e.push("table_open", "table", 1), f.map = b = [n, 0], f = e.push("thead_open", "thead", 1), f.map = [n, n + 1], f = e.push("tr_open", "tr", 1), f.map = [n, n + 1], c = 0; c < d.length; c++) f = e.push("th_open", "th", 1), h[c] && (f.attrs = [ | |
["style", "text-align:" + h[c]] | |
]), f = e.push("inline", "", 0), f.content = d[c].trim(), f.children = [], f = e.push("th_close", "th", -1); | |
for (f = e.push("tr_close", "tr", -1), f = e.push("thead_close", "thead", -1), u = n + 2; u < s && !(e.sCount[u] < e.blkIndent); u++) { | |
for (w = !1, c = 0, l = E.length; c < l; c++) | |
if (E[c](e, u, s, !0)) { | |
w = !0; | |
break | |
} | |
if (w || (r = fo(e, u).trim(), !r) || e.sCount[u] - e.blkIndent >= 4) break; | |
for (d = Mc(r), d.length && d[0] === "" && d.shift(), d.length && d[d.length - 1] === "" && d.pop(), u === n + 2 && (f = e.push("tbody_open", "tbody", 1), f.map = x = [n + 2, 0]), f = e.push("tr_open", "tr", 1), f.map = [u, u + 1], c = 0; c < m; c++) f = e.push("td_open", "td", 1), h[c] && (f.attrs = [ | |
["style", "text-align:" + h[c]] | |
]), f = e.push("inline", "", 0), f.content = d[c] ? d[c].trim() : "", f.children = [], f = e.push("td_close", "td", -1); | |
f = e.push("tr_close", "tr", -1) | |
} | |
return x && (f = e.push("tbody_close", "tbody", -1), x[1] = u), f = e.push("table_close", "table", -1), b[1] = u, e.parentType = v, e.line = u, !0 | |
}, | |
UY = function(e, n, s) { | |
var a, o, r; | |
if (e.sCount[n] - e.blkIndent < 4) return !1; | |
for (o = a = n + 1; a < s;) { | |
if (e.isEmpty(a)) { | |
a++; | |
continue | |
} | |
if (e.sCount[a] - e.blkIndent >= 4) { | |
a++, o = a; | |
continue | |
} | |
break | |
} | |
return e.line = o, r = e.push("code_block", "code", 0), r.content = e.getLines(n, o, 4 + e.blkIndent, !1) + ` | |
`, r.map = [n, e.line], !0 | |
}, | |
VY = function(e, n, s, a) { | |
var o, r, i, c, l, u, d, m = !1, | |
f = e.bMarks[n] + e.tShift[n], | |
h = e.eMarks[n]; | |
if (e.sCount[n] - e.blkIndent >= 4 || f + 3 > h || (o = e.src.charCodeAt(f), o !== 126 && o !== 96) || (l = f, f = e.skipChars(f, o), r = f - l, r < 3) || (d = e.src.slice(l, f), i = e.src.slice(f, h), o === 96 && i.indexOf(String.fromCharCode(o)) >= 0)) return !1; | |
if (a) return !0; | |
for (c = n; c++, !(c >= s || (f = l = e.bMarks[c] + e.tShift[c], h = e.eMarks[c], f < h && e.sCount[c] < e.blkIndent));) | |
if (e.src.charCodeAt(f) === o && !(e.sCount[c] - e.blkIndent >= 4) && (f = e.skipChars(f, o), !(f - l < r) && (f = e.skipSpaces(f), !(f < h)))) { | |
m = !0; | |
break | |
} | |
return r = e.sCount[n], e.line = c + (m ? 1 : 0), u = e.push("fence", "code", 0), u.info = i, u.content = e.getLines(n + 1, c, r, !0), u.markup = d, u.map = [n, e.line], !0 | |
}, | |
Oc = oe.isSpace, | |
HY = function(e, n, s, a) { | |
var o, r, i, c, l, u, d, m, f, h, g, b, x, v, w, E, _, k, M, y, T = e.lineMax, | |
D = e.bMarks[n] + e.tShift[n], | |
C = e.eMarks[n]; | |
if (e.sCount[n] - e.blkIndent >= 4 || e.src.charCodeAt(D++) !== 62) return !1; | |
if (a) return !0; | |
for (c = f = e.sCount[n] + 1, e.src.charCodeAt(D) === 32 ? (D++, c++, f++, o = !1, E = !0) : e.src.charCodeAt(D) === 9 ? (E = !0, (e.bsCount[n] + f) % 4 === 3 ? (D++, c++, f++, o = !1) : o = !0) : E = !1, h = [e.bMarks[n]], e.bMarks[n] = D; D < C && (r = e.src.charCodeAt(D), Oc(r));) { | |
r === 9 ? f += 4 - (f + e.bsCount[n] + (o ? 1 : 0)) % 4 : f++; | |
D++ | |
} | |
for (g = [e.bsCount[n]], e.bsCount[n] = e.sCount[n] + 1 + (E ? 1 : 0), u = D >= C, v = [e.sCount[n]], e.sCount[n] = f - c, w = [e.tShift[n]], e.tShift[n] = D - e.bMarks[n], k = e.md.block.ruler.getRules("blockquote"), x = e.parentType, e.parentType = "blockquote", m = n + 1; m < s && (y = e.sCount[m] < e.blkIndent, D = e.bMarks[m] + e.tShift[m], C = e.eMarks[m], !(D >= C)); m++) { | |
if (e.src.charCodeAt(D++) === 62 && !y) { | |
for (c = f = e.sCount[m] + 1, e.src.charCodeAt(D) === 32 ? (D++, c++, f++, o = !1, E = !0) : e.src.charCodeAt(D) === 9 ? (E = !0, (e.bsCount[m] + f) % 4 === 3 ? (D++, c++, f++, o = !1) : o = !0) : E = !1, h.push(e.bMarks[m]), e.bMarks[m] = D; D < C && (r = e.src.charCodeAt(D), Oc(r));) { | |
r === 9 ? f += 4 - (f + e.bsCount[m] + (o ? 1 : 0)) % 4 : f++; | |
D++ | |
} | |
u = D >= C, g.push(e.bsCount[m]), e.bsCount[m] = e.sCount[m] + 1 + (E ? 1 : 0), v.push(e.sCount[m]), e.sCount[m] = f - c, w.push(e.tShift[m]), e.tShift[m] = D - e.bMarks[m]; | |
continue | |
} | |
if (u) break; | |
for (_ = !1, i = 0, l = k.length; i < l; i++) | |
if (k[i](e, m, s, !0)) { | |
_ = !0; | |
break | |
} | |
if (_) { | |
e.lineMax = m, e.blkIndent !== 0 && (h.push(e.bMarks[m]), g.push(e.bsCount[m]), w.push(e.tShift[m]), v.push(e.sCount[m]), e.sCount[m] -= e.blkIndent); | |
break | |
} | |
h.push(e.bMarks[m]), g.push(e.bsCount[m]), w.push(e.tShift[m]), v.push(e.sCount[m]), e.sCount[m] = -1 | |
} | |
for (b = e.blkIndent, e.blkIndent = 0, M = e.push("blockquote_open", "blockquote", 1), M.markup = ">", M.map = d = [n, 0], e.md.block.tokenize(e, n, m), M = e.push("blockquote_close", "blockquote", -1), M.markup = ">", e.lineMax = T, e.parentType = x, d[1] = e.line, i = 0; i < w.length; i++) e.bMarks[i + n] = h[i], e.tShift[i + n] = w[i], e.sCount[i + n] = v[i], e.bsCount[i + n] = g[i]; | |
return e.blkIndent = b, !0 | |
}, | |
GY = oe.isSpace, | |
WY = function(e, n, s, a) { | |
var o, r, i, c, l = e.bMarks[n] + e.tShift[n], | |
u = e.eMarks[n]; | |
if (e.sCount[n] - e.blkIndent >= 4 || (o = e.src.charCodeAt(l++), o !== 42 && o !== 45 && o !== 95)) return !1; | |
for (r = 1; l < u;) { | |
if (i = e.src.charCodeAt(l++), i !== o && !GY(i)) return !1; | |
i === o && r++ | |
} | |
return r < 3 ? !1 : (a || (e.line = n + 1, c = e.push("hr", "hr", 0), c.map = [n, e.line], c.markup = Array(r + 1).join(String.fromCharCode(o))), !0) | |
}, | |
Cp = oe.isSpace; | |
function Lc(t, e) { | |
var n, s, a, o; | |
return s = t.bMarks[e] + t.tShift[e], a = t.eMarks[e], n = t.src.charCodeAt(s++), n !== 42 && n !== 45 && n !== 43 || s < a && (o = t.src.charCodeAt(s), !Cp(o)) ? -1 : s | |
} | |
function Rc(t, e) { | |
var n, s = t.bMarks[e] + t.tShift[e], | |
a = s, | |
o = t.eMarks[e]; | |
if (a + 1 >= o || (n = t.src.charCodeAt(a++), n < 48 || n > 57)) return -1; | |
for (;;) { | |
if (a >= o) return -1; | |
if (n = t.src.charCodeAt(a++), n >= 48 && n <= 57) { | |
if (a - s >= 10) return -1; | |
continue | |
} | |
if (n === 41 || n === 46) break; | |
return -1 | |
} | |
return a < o && (n = t.src.charCodeAt(a), !Cp(n)) ? -1 : a | |
} | |
function JY(t, e) { | |
var n, s, a = t.level + 2; | |
for (n = e + 2, s = t.tokens.length - 2; n < s; n++) t.tokens[n].level === a && t.tokens[n].type === "paragraph_open" && (t.tokens[n + 2].hidden = !0, t.tokens[n].hidden = !0, n += 2) | |
} | |
var YY = function(e, n, s, a) { | |
var o, r, i, c, l, u, d, m, f, h, g, b, x, v, w, E, _, k, M, y, T, D, C, L, R, A, I, O, B = !1, | |
j = !0; | |
if (e.sCount[n] - e.blkIndent >= 4 || e.listIndent >= 0 && e.sCount[n] - e.listIndent >= 4 && e.sCount[n] < e.blkIndent) return !1; | |
if (a && e.parentType === "paragraph" && e.sCount[n] >= e.blkIndent && (B = !0), (C = Rc(e, n)) >= 0) { | |
if (d = !0, R = e.bMarks[n] + e.tShift[n], x = Number(e.src.slice(R, C - 1)), B && x !== 1) return !1 | |
} else if ((C = Lc(e, n)) >= 0) d = !1; | |
else return !1; | |
if (B && e.skipSpaces(C) >= e.eMarks[n]) return !1; | |
if (b = e.src.charCodeAt(C - 1), a) return !0; | |
for (g = e.tokens.length, d ? (O = e.push("ordered_list_open", "ol", 1), x !== 1 && (O.attrs = [ | |
["start", x] | |
])) : O = e.push("bullet_list_open", "ul", 1), O.map = h = [n, 0], O.markup = String.fromCharCode(b), w = n, L = !1, I = e.md.block.ruler.getRules("list"), k = e.parentType, e.parentType = "list"; w < s;) { | |
for (D = C, v = e.eMarks[w], u = E = e.sCount[w] + C - (e.bMarks[n] + e.tShift[n]); D < v;) { | |
if (o = e.src.charCodeAt(D), o === 9) E += 4 - (E + e.bsCount[w]) % 4; | |
else if (o === 32) E++; | |
else break; | |
D++ | |
} | |
if (r = D, r >= v ? l = 1 : l = E - u, l > 4 && (l = 1), c = u + l, O = e.push("list_item_open", "li", 1), O.markup = String.fromCharCode(b), O.map = m = [n, 0], d && (O.info = e.src.slice(R, C - 1)), T = e.tight, y = e.tShift[n], M = e.sCount[n], _ = e.listIndent, e.listIndent = e.blkIndent, e.blkIndent = c, e.tight = !0, e.tShift[n] = r - e.bMarks[n], e.sCount[n] = E, r >= v && e.isEmpty(n + 1) ? e.line = Math.min(e.line + 2, s) : e.md.block.tokenize(e, n, s, !0), (!e.tight || L) && (j = !1), L = e.line - n > 1 && e.isEmpty(e.line - 1), e.blkIndent = e.listIndent, e.listIndent = _, e.tShift[n] = y, e.sCount[n] = M, e.tight = T, O = e.push("list_item_close", "li", -1), O.markup = String.fromCharCode(b), w = n = e.line, m[1] = w, r = e.bMarks[n], w >= s || e.sCount[w] < e.blkIndent || e.sCount[n] - e.blkIndent >= 4) break; | |
for (A = !1, i = 0, f = I.length; i < f; i++) | |
if (I[i](e, w, s, !0)) { | |
A = !0; | |
break | |
} | |
if (A) break; | |
if (d) { | |
if (C = Rc(e, w), C < 0) break; | |
R = e.bMarks[w] + e.tShift[w] | |
} else if (C = Lc(e, w), C < 0) break; | |
if (b !== e.src.charCodeAt(C - 1)) break | |
} | |
return d ? O = e.push("ordered_list_close", "ol", -1) : O = e.push("bullet_list_close", "ul", -1), O.markup = String.fromCharCode(b), h[1] = w, e.line = w, e.parentType = k, j && JY(e, g), !0 | |
}, | |
KY = oe.normalizeReference, | |
Ps = oe.isSpace, | |
XY = function(e, n, s, a) { | |
var o, r, i, c, l, u, d, m, f, h, g, b, x, v, w, E, _ = 0, | |
k = e.bMarks[n] + e.tShift[n], | |
M = e.eMarks[n], | |
y = n + 1; | |
if (e.sCount[n] - e.blkIndent >= 4 || e.src.charCodeAt(k) !== 91) return !1; | |
for (; ++k < M;) | |
if (e.src.charCodeAt(k) === 93 && e.src.charCodeAt(k - 1) !== 92) { | |
if (k + 1 === M || e.src.charCodeAt(k + 1) !== 58) return !1; | |
break | |
} | |
for (c = e.lineMax, w = e.md.block.ruler.getRules("reference"), h = e.parentType, e.parentType = "reference"; y < c && !e.isEmpty(y); y++) | |
if (!(e.sCount[y] - e.blkIndent > 3) && !(e.sCount[y] < 0)) { | |
for (v = !1, u = 0, d = w.length; u < d; u++) | |
if (w[u](e, y, c, !0)) { | |
v = !0; | |
break | |
} | |
if (v) break | |
} | |
for (x = e.getLines(n, y, e.blkIndent, !1).trim(), M = x.length, k = 1; k < M; k++) { | |
if (o = x.charCodeAt(k), o === 91) return !1; | |
if (o === 93) { | |
f = k; | |
break | |
} else o === 10 ? _++ : o === 92 && (k++, k < M && x.charCodeAt(k) === 10 && _++) | |
} | |
if (f < 0 || x.charCodeAt(f + 1) !== 58) return !1; | |
for (k = f + 2; k < M; k++) | |
if (o = x.charCodeAt(k), o === 10) _++; | |
else if (!Ps(o)) break; | |
if (g = e.md.helpers.parseLinkDestination(x, k, M), !g.ok || (l = e.md.normalizeLink(g.str), !e.md.validateLink(l))) return !1; | |
for (k = g.pos, _ += g.lines, r = k, i = _, b = k; k < M; k++) | |
if (o = x.charCodeAt(k), o === 10) _++; | |
else if (!Ps(o)) break; | |
for (g = e.md.helpers.parseLinkTitle(x, k, M), k < M && b !== k && g.ok ? (E = g.str, k = g.pos, _ += g.lines) : (E = "", k = r, _ = i); k < M && (o = x.charCodeAt(k), !!Ps(o));) k++; | |
if (k < M && x.charCodeAt(k) !== 10 && E) | |
for (E = "", k = r, _ = i; k < M && (o = x.charCodeAt(k), !!Ps(o));) k++; | |
return k < M && x.charCodeAt(k) !== 10 || (m = KY(x.slice(1, f)), !m) ? !1 : (a || (typeof e.env.references == "undefined" && (e.env.references = {}), typeof e.env.references[m] == "undefined" && (e.env.references[m] = { | |
title: E, | |
href: l | |
}), e.parentType = h, e.line = n + _ + 1), !0) | |
}, | |
ZY = ["address", "article", "aside", "base", "basefont", "blockquote", "body", "caption", "center", "col", "colgroup", "dd", "details", "dialog", "dir", "div", "dl", "dt", "fieldset", "figcaption", "figure", "footer", "form", "frame", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hr", "html", "iframe", "legend", "li", "link", "main", "menu", "menuitem", "nav", "noframes", "ol", "optgroup", "option", "p", "param", "section", "source", "summary", "table", "tbody", "td", "tfoot", "th", "thead", "title", "tr", "track", "ul"], | |
za = {}, | |
QY = "[a-zA-Z_:][a-zA-Z0-9:._-]*", | |
eK = "[^\"'=<>`\\x00-\\x20]+", | |
tK = "'[^']*'", | |
nK = '"[^"]*"', | |
sK = "(?:" + eK + "|" + tK + "|" + nK + ")", | |
aK = "(?:\\s+" + QY + "(?:\\s*=\\s*" + sK + ")?)", | |
Ep = "<[A-Za-z][A-Za-z0-9\\-]*" + aK + "*\\s*\\/?>", | |
Ap = "<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>", | |
oK = "<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->", | |
rK = "<[?][\\s\\S]*?[?]>", | |
iK = "<![A-Z]+\\s+[^>]*>", | |
cK = "<!\\[CDATA\\[[\\s\\S]*?\\]\\]>", | |
lK = new RegExp("^(?:" + Ep + "|" + Ap + "|" + oK + "|" + rK + "|" + iK + "|" + cK + ")"), | |
uK = new RegExp("^(?:" + Ep + "|" + Ap + ")"); | |
za.HTML_TAG_RE = lK; | |
za.HTML_OPEN_CLOSE_TAG_RE = uK; | |
var pK = ZY, | |
dK = za.HTML_OPEN_CLOSE_TAG_RE, | |
un = [ | |
[/^<(script|pre|style|textarea)(?=(\s|>|$))/i, /<\/(script|pre|style|textarea)>/i, !0], | |
[/^<!--/, /-->/, !0], | |
[/^<\?/, /\?>/, !0], | |
[/^<![A-Z]/, />/, !0], | |
[/^<!\[CDATA\[/, /\]\]>/, !0], | |
[new RegExp("^</?(" + pK.join("|") + ")(?=(\\s|/?>|$))", "i"), /^$/, !0], | |
[new RegExp(dK.source + "\\s*$"), /^$/, !1] | |
], | |
mK = function(e, n, s, a) { | |
var o, r, i, c, l = e.bMarks[n] + e.tShift[n], | |
u = e.eMarks[n]; | |
if (e.sCount[n] - e.blkIndent >= 4 || !e.md.options.html || e.src.charCodeAt(l) !== 60) return !1; | |
for (c = e.src.slice(l, u), o = 0; o < un.length && !un[o][0].test(c); o++); | |
if (o === un.length) return !1; | |
if (a) return un[o][2]; | |
if (r = n + 1, !un[o][1].test(c)) { | |
for (; r < s && !(e.sCount[r] < e.blkIndent); r++) | |
if (l = e.bMarks[r] + e.tShift[r], u = e.eMarks[r], c = e.src.slice(l, u), un[o][1].test(c)) { | |
c.length !== 0 && r++; | |
break | |
} | |
} | |
return e.line = r, i = e.push("html_block", "", 0), i.map = [n, r], i.content = e.getLines(n, r, e.blkIndent, !0), !0 | |
}, | |
Pc = oe.isSpace, | |
fK = function(e, n, s, a) { | |
var o, r, i, c, l = e.bMarks[n] + e.tShift[n], | |
u = e.eMarks[n]; | |
if (e.sCount[n] - e.blkIndent >= 4 || (o = e.src.charCodeAt(l), o !== 35 || l >= u)) return !1; | |
for (r = 1, o = e.src.charCodeAt(++l); o === 35 && l < u && r <= 6;) r++, o = e.src.charCodeAt(++l); | |
return r > 6 || l < u && !Pc(o) ? !1 : (a || (u = e.skipSpacesBack(u, l), i = e.skipCharsBack(u, 35, l), i > l && Pc(e.src.charCodeAt(i - 1)) && (u = i), e.line = n + 1, c = e.push("heading_open", "h" + String(r), 1), c.markup = "########".slice(0, r), c.map = [n, e.line], c = e.push("inline", "", 0), c.content = e.src.slice(l, u).trim(), c.map = [n, e.line], c.children = [], c = e.push("heading_close", "h" + String(r), -1), c.markup = "########".slice(0, r)), !0) | |
}, | |
hK = function(e, n, s) { | |
var a, o, r, i, c, l, u, d, m, f = n + 1, | |
h, g = e.md.block.ruler.getRules("paragraph"); | |
if (e.sCount[n] - e.blkIndent >= 4) return !1; | |
for (h = e.parentType, e.parentType = "paragraph"; f < s && !e.isEmpty(f); f++) | |
if (!(e.sCount[f] - e.blkIndent > 3)) { | |
if (e.sCount[f] >= e.blkIndent && (l = e.bMarks[f] + e.tShift[f], u = e.eMarks[f], l < u && (m = e.src.charCodeAt(l), (m === 45 || m === 61) && (l = e.skipChars(l, m), l = e.skipSpaces(l), l >= u)))) { | |
d = m === 61 ? 1 : 2; | |
break | |
} | |
if (!(e.sCount[f] < 0)) { | |
for (o = !1, r = 0, i = g.length; r < i; r++) | |
if (g[r](e, f, s, !0)) { | |
o = !0; | |
break | |
} | |
if (o) break | |
} | |
} | |
return d ? (a = e.getLines(n, f, e.blkIndent, !1).trim(), e.line = f + 1, c = e.push("heading_open", "h" + String(d), 1), c.markup = String.fromCharCode(m), c.map = [n, e.line], c = e.push("inline", "", 0), c.content = a, c.map = [n, e.line - 1], c.children = [], c = e.push("heading_close", "h" + String(d), -1), c.markup = String.fromCharCode(m), e.parentType = h, !0) : !1 | |
}, | |
gK = function(e, n) { | |
var s, a, o, r, i, c, l = n + 1, | |
u = e.md.block.ruler.getRules("paragraph"), | |
d = e.lineMax; | |
for (c = e.parentType, e.parentType = "paragraph"; l < d && !e.isEmpty(l); l++) | |
if (!(e.sCount[l] - e.blkIndent > 3) && !(e.sCount[l] < 0)) { | |
for (a = !1, o = 0, r = u.length; o < r; o++) | |
if (u[o](e, l, d, !0)) { | |
a = !0; | |
break | |
} | |
if (a) break | |
} | |
return s = e.getLines(n, l, e.blkIndent, !1).trim(), e.line = l, i = e.push("paragraph_open", "p", 1), i.map = [n, e.line], i = e.push("inline", "", 0), i.content = s, i.map = [n, e.line], i.children = [], i = e.push("paragraph_close", "p", -1), e.parentType = c, !0 | |
}, | |
Sp = qr, | |
qa = oe.isSpace; | |
function Et(t, e, n, s) { | |
var a, o, r, i, c, l, u, d; | |
for (this.src = t, this.md = e, this.env = n, this.tokens = s, this.bMarks = [], this.eMarks = [], this.tShift = [], this.sCount = [], this.bsCount = [], this.blkIndent = 0, this.line = 0, this.lineMax = 0, this.tight = !1, this.ddIndent = -1, this.listIndent = -1, this.parentType = "root", this.level = 0, this.result = "", o = this.src, d = !1, r = i = l = u = 0, c = o.length; i < c; i++) { | |
if (a = o.charCodeAt(i), !d) | |
if (qa(a)) { | |
l++, a === 9 ? u += 4 - u % 4 : u++; | |
continue | |
} else d = !0; | |
(a === 10 || i === c - 1) && (a !== 10 && i++, this.bMarks.push(r), this.eMarks.push(i), this.tShift.push(l), this.sCount.push(u), this.bsCount.push(0), d = !1, l = 0, u = 0, r = i + 1) | |
} | |
this.bMarks.push(o.length), this.eMarks.push(o.length), this.tShift.push(0), this.sCount.push(0), this.bsCount.push(0), this.lineMax = this.bMarks.length - 1 | |
} | |
Et.prototype.push = function(t, e, n) { | |
var s = new Sp(t, e, n); | |
return s.block = !0, n < 0 && this.level--, s.level = this.level, n > 0 && this.level++, this.tokens.push(s), s | |
}; | |
Et.prototype.isEmpty = function(e) { | |
return this.bMarks[e] + this.tShift[e] >= this.eMarks[e] | |
}; | |
Et.prototype.skipEmptyLines = function(e) { | |
for (var n = this.lineMax; e < n && !(this.bMarks[e] + this.tShift[e] < this.eMarks[e]); e++); | |
return e | |
}; | |
Et.prototype.skipSpaces = function(e) { | |
for (var n, s = this.src.length; e < s && (n = this.src.charCodeAt(e), !!qa(n)); e++); | |
return e | |
}; | |
Et.prototype.skipSpacesBack = function(e, n) { | |
if (e <= n) return e; | |
for (; e > n;) | |
if (!qa(this.src.charCodeAt(--e))) return e + 1; | |
return e | |
}; | |
Et.prototype.skipChars = function(e, n) { | |
for (var s = this.src.length; e < s && this.src.charCodeAt(e) === n; e++); | |
return e | |
}; | |
Et.prototype.skipCharsBack = function(e, n, s) { | |
if (e <= s) return e; | |
for (; e > s;) | |
if (n !== this.src.charCodeAt(--e)) return e + 1; | |
return e | |
}; | |
Et.prototype.getLines = function(e, n, s, a) { | |
var o, r, i, c, l, u, d, m = e; | |
if (e >= n) return ""; | |
for (u = new Array(n - e), o = 0; m < n; m++, o++) { | |
for (r = 0, d = c = this.bMarks[m], m + 1 < n || a ? l = this.eMarks[m] + 1 : l = this.eMarks[m]; c < l && r < s;) { | |
if (i = this.src.charCodeAt(c), qa(i)) i === 9 ? r += 4 - (r + this.bsCount[m]) % 4 : r++; | |
else if (c - d < this.tShift[m]) r++; | |
else break; | |
c++ | |
} | |
r > s ? u[o] = new Array(r - s + 1).join(" ") + this.src.slice(c, l) : u[o] = this.src.slice(c, l) | |
} | |
return u.join("") | |
}; | |
Et.prototype.Token = Sp; | |
var bK = Et, | |
vK = zr, | |
Bs = [ | |
["table", $Y, ["paragraph", "reference"]], | |
["code", UY], | |
["fence", VY, ["paragraph", "reference", "blockquote", "list"]], | |
["blockquote", HY, ["paragraph", "reference", "blockquote", "list"]], | |
["hr", WY, ["paragraph", "reference", "blockquote", "list"]], | |
["list", YY, ["paragraph", "reference", "blockquote"]], | |
["reference", XY], | |
["html_block", mK, ["paragraph", "reference", "blockquote"]], | |
["heading", fK, ["paragraph", "reference", "blockquote"]], | |
["lheading", hK], | |
["paragraph", gK] | |
]; | |
function Fa() { | |
this.ruler = new vK; | |
for (var t = 0; t < Bs.length; t++) this.ruler.push(Bs[t][0], Bs[t][1], { | |
alt: (Bs[t][2] || []).slice() | |
}) | |
} | |
Fa.prototype.tokenize = function(t, e, n) { | |
for (var s, a, o = this.ruler.getRules(""), r = o.length, i = e, c = !1, l = t.md.options.maxNesting; i < n && (t.line = i = t.skipEmptyLines(i), !(i >= n || t.sCount[i] < t.blkIndent));) { | |
if (t.level >= l) { | |
t.line = n; | |
break | |
} | |
for (a = 0; a < r && (s = o[a](t, i, n, !1), !s); a++); | |
t.tight = !c, t.isEmpty(t.line - 1) && (c = !0), i = t.line, i < n && t.isEmpty(i) && (c = !0, i++, t.line = i) | |
} | |
}; | |
Fa.prototype.parse = function(t, e, n, s) { | |
var a; | |
t && (a = new this.State(t, e, n, s), this.tokenize(a, a.line, a.lineMax)) | |
}; | |
Fa.prototype.State = bK; | |
var xK = Fa; | |
function yK(t) { | |
switch (t) { | |
case 10: | |
case 33: | |
case 35: | |
case 36: | |
case 37: | |
case 38: | |
case 42: | |
case 43: | |
case 45: | |
case 58: | |
case 60: | |
case 61: | |
case 62: | |
case 64: | |
case 91: | |
case 92: | |
case 93: | |
case 94: | |
case 95: | |
case 96: | |
case 123: | |
case 125: | |
case 126: | |
return !0; | |
default: | |
return !1 | |
} | |
} | |
var wK = function(e, n) { | |
for (var s = e.pos; s < e.posMax && !yK(e.src.charCodeAt(s));) s++; | |
return s === e.pos ? !1 : (n || (e.pending += e.src.slice(e.pos, s)), e.pos = s, !0) | |
}, | |
kK = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i, | |
_K = function(e, n) { | |
var s, a, o, r, i, c, l, u; | |
return !e.md.options.linkify || e.linkLevel > 0 || (s = e.pos, a = e.posMax, s + 3 > a) || e.src.charCodeAt(s) !== 58 || e.src.charCodeAt(s + 1) !== 47 || e.src.charCodeAt(s + 2) !== 47 || (o = e.pending.match(kK), !o) || (r = o[1], i = e.md.linkify.matchAtStart(e.src.slice(s - r.length)), !i) || (c = i.url, c = c.replace(/\*+$/, ""), l = e.md.normalizeLink(c), !e.md.validateLink(l)) ? !1 : (n || (e.pending = e.pending.slice(0, -r.length), u = e.push("link_open", "a", 1), u.attrs = [ | |
["href", l] | |
], u.markup = "linkify", u.info = "auto", u = e.push("text", "", 0), u.content = e.md.normalizeLinkText(c), u = e.push("link_close", "a", -1), u.markup = "linkify", u.info = "auto"), e.pos += c.length - r.length, !0) | |
}, | |
CK = oe.isSpace, | |
EK = function(e, n) { | |
var s, a, o, r = e.pos; | |
if (e.src.charCodeAt(r) !== 10) return !1; | |
if (s = e.pending.length - 1, a = e.posMax, !n) | |
if (s >= 0 && e.pending.charCodeAt(s) === 32) | |
if (s >= 1 && e.pending.charCodeAt(s - 1) === 32) { | |
for (o = s - 1; o >= 1 && e.pending.charCodeAt(o - 1) === 32;) o--; | |
e.pending = e.pending.slice(0, o), e.push("hardbreak", "br", 0) | |
} else e.pending = e.pending.slice(0, -1), e.push("softbreak", "br", 0); | |
else e.push("softbreak", "br", 0); | |
for (r++; r < a && CK(e.src.charCodeAt(r));) r++; | |
return e.pos = r, !0 | |
}, | |
AK = oe.isSpace, | |
jr = []; | |
for (var Bc = 0; Bc < 256; Bc++) jr.push(0); | |
"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function(t) { | |
jr[t.charCodeAt(0)] = 1 | |
}); | |
var SK = function(e, n) { | |
var s, a, o, r, i, c = e.pos, | |
l = e.posMax; | |
if (e.src.charCodeAt(c) !== 92 || (c++, c >= l)) return !1; | |
if (s = e.src.charCodeAt(c), s === 10) { | |
for (n || e.push("hardbreak", "br", 0), c++; c < l && (s = e.src.charCodeAt(c), !!AK(s));) c++; | |
return e.pos = c, !0 | |
} | |
return r = e.src[c], s >= 55296 && s <= 56319 && c + 1 < l && (a = e.src.charCodeAt(c + 1), a >= 56320 && a <= 57343 && (r += e.src[c + 1], c++)), o = "\\" + r, n || (i = e.push("text_special", "", 0), s < 256 && jr[s] !== 0 ? i.content = r : i.content = o, i.markup = o, i.info = "escape"), e.pos = c + 1, !0 | |
}, | |
TK = function(e, n) { | |
var s, a, o, r, i, c, l, u, d = e.pos, | |
m = e.src.charCodeAt(d); | |
if (m !== 96) return !1; | |
for (s = d, d++, a = e.posMax; d < a && e.src.charCodeAt(d) === 96;) d++; | |
if (o = e.src.slice(s, d), l = o.length, e.backticksScanned && (e.backticks[l] || 0) <= s) return n || (e.pending += o), e.pos += l, !0; | |
for (i = c = d; | |
(i = e.src.indexOf("`", c)) !== -1;) { | |
for (c = i + 1; c < a && e.src.charCodeAt(c) === 96;) c++; | |
if (u = c - i, u === l) return n || (r = e.push("code_inline", "code", 0), r.markup = o, r.content = e.src.slice(d, i).replace(/\n/g, " ").replace(/^ (.+) $/, "$1")), e.pos = c, !0; | |
e.backticks[u] = i | |
} | |
return e.backticksScanned = !0, n || (e.pending += o), e.pos += l, !0 | |
}, | |
ja = {}; | |
ja.tokenize = function(e, n) { | |
var s, a, o, r, i, c = e.pos, | |
l = e.src.charCodeAt(c); | |
if (n || l !== 126 || (a = e.scanDelims(e.pos, !0), r = a.length, i = String.fromCharCode(l), r < 2)) return !1; | |
for (r % 2 && (o = e.push("text", "", 0), o.content = i, r--), s = 0; s < r; s += 2) o = e.push("text", "", 0), o.content = i + i, e.delimiters.push({ | |
marker: l, | |
length: 0, | |
token: e.tokens.length - 1, | |
end: -1, | |
open: a.can_open, | |
close: a.can_close | |
}); | |
return e.pos += a.length, !0 | |
}; | |
function zc(t, e) { | |
var n, s, a, o, r, i = [], | |
c = e.length; | |
for (n = 0; n < c; n++) a = e[n], a.marker === 126 && a.end !== -1 && (o = e[a.end], r = t.tokens[a.token], r.type = "s_open", r.tag = "s", r.nesting = 1, r.markup = "~~", r.content = "", r = t.tokens[o.token], r.type = "s_close", r.tag = "s", r.nesting = -1, r.markup = "~~", r.content = "", t.tokens[o.token - 1].type === "text" && t.tokens[o.token - 1].content === "~" && i.push(o.token - 1)); | |
for (; i.length;) { | |
for (n = i.pop(), s = n + 1; s < t.tokens.length && t.tokens[s].type === "s_close";) s++; | |
s--, n !== s && (r = t.tokens[s], t.tokens[s] = t.tokens[n], t.tokens[n] = r) | |
} | |
} | |
ja.postProcess = function(e) { | |
var n, s = e.tokens_meta, | |
a = e.tokens_meta.length; | |
for (zc(e, e.delimiters), n = 0; n < a; n++) s[n] && s[n].delimiters && zc(e, s[n].delimiters) | |
}; | |
var $a = {}; | |
$a.tokenize = function(e, n) { | |
var s, a, o, r = e.pos, | |
i = e.src.charCodeAt(r); | |
if (n || i !== 95 && i !== 42) return !1; | |
for (a = e.scanDelims(e.pos, i === 42), s = 0; s < a.length; s++) o = e.push("text", "", 0), o.content = String.fromCharCode(i), e.delimiters.push({ | |
marker: i, | |
length: a.length, | |
token: e.tokens.length - 1, | |
end: -1, | |
open: a.can_open, | |
close: a.can_close | |
}); | |
return e.pos += a.length, !0 | |
}; | |
function qc(t, e) { | |
var n, s, a, o, r, i, c = e.length; | |
for (n = c - 1; n >= 0; n--) s = e[n], !(s.marker !== 95 && s.marker !== 42) && s.end !== -1 && (a = e[s.end], i = n > 0 && e[n - 1].end === s.end + 1 && e[n - 1].marker === s.marker && e[n - 1].token === s.token - 1 && e[s.end + 1].token === a.token + 1, r = String.fromCharCode(s.marker), o = t.tokens[s.token], o.type = i ? "strong_open" : "em_open", o.tag = i ? "strong" : "em", o.nesting = 1, o.markup = i ? r + r : r, o.content = "", o = t.tokens[a.token], o.type = i ? "strong_close" : "em_close", o.tag = i ? "strong" : "em", o.nesting = -1, o.markup = i ? r + r : r, o.content = "", i && (t.tokens[e[n - 1].token].content = "", t.tokens[e[s.end + 1].token].content = "", n--)) | |
} | |
$a.postProcess = function(e) { | |
var n, s = e.tokens_meta, | |
a = e.tokens_meta.length; | |
for (qc(e, e.delimiters), n = 0; n < a; n++) s[n] && s[n].delimiters && qc(e, s[n].delimiters) | |
}; | |
var DK = oe.normalizeReference, | |
ho = oe.isSpace, | |
IK = function(e, n) { | |
var s, a, o, r, i, c, l, u, d, m = "", | |
f = "", | |
h = e.pos, | |
g = e.posMax, | |
b = e.pos, | |
x = !0; | |
if (e.src.charCodeAt(e.pos) !== 91 || (i = e.pos + 1, r = e.md.helpers.parseLinkLabel(e, e.pos, !0), r < 0)) return !1; | |
if (c = r + 1, c < g && e.src.charCodeAt(c) === 40) { | |
for (x = !1, c++; c < g && (a = e.src.charCodeAt(c), !(!ho(a) && a !== 10)); c++); | |
if (c >= g) return !1; | |
if (b = c, l = e.md.helpers.parseLinkDestination(e.src, c, e.posMax), l.ok) { | |
for (m = e.md.normalizeLink(l.str), e.md.validateLink(m) ? c = l.pos : m = "", b = c; c < g && (a = e.src.charCodeAt(c), !(!ho(a) && a !== 10)); c++); | |
if (l = e.md.helpers.parseLinkTitle(e.src, c, e.posMax), c < g && b !== c && l.ok) | |
for (f = l.str, c = l.pos; c < g && (a = e.src.charCodeAt(c), !(!ho(a) && a !== 10)); c++); | |
}(c >= g || e.src.charCodeAt(c) !== 41) && (x = !0), c++ | |
} | |
if (x) { | |
if (typeof e.env.references == "undefined") return !1; | |
if (c < g && e.src.charCodeAt(c) === 91 ? (b = c + 1, c = e.md.helpers.parseLinkLabel(e, c), c >= 0 ? o = e.src.slice(b, c++) : c = r + 1) : c = r + 1, o || (o = e.src.slice(i, r)), u = e.env.references[DK(o)], !u) return e.pos = h, !1; | |
m = u.href, f = u.title | |
} | |
return n || (e.pos = i, e.posMax = r, d = e.push("link_open", "a", 1), d.attrs = s = [ | |
["href", m] | |
], f && s.push(["title", f]), e.linkLevel++, e.md.inline.tokenize(e), e.linkLevel--, d = e.push("link_close", "a", -1)), e.pos = c, e.posMax = g, !0 | |
}, | |
NK = oe.normalizeReference, | |
go = oe.isSpace, | |
MK = function(e, n) { | |
var s, a, o, r, i, c, l, u, d, m, f, h, g, b = "", | |
x = e.pos, | |
v = e.posMax; | |
if (e.src.charCodeAt(e.pos) !== 33 || e.src.charCodeAt(e.pos + 1) !== 91 || (c = e.pos + 2, i = e.md.helpers.parseLinkLabel(e, e.pos + 1, !1), i < 0)) return !1; | |
if (l = i + 1, l < v && e.src.charCodeAt(l) === 40) { | |
for (l++; l < v && (a = e.src.charCodeAt(l), !(!go(a) && a !== 10)); l++); | |
if (l >= v) return !1; | |
for (g = l, d = e.md.helpers.parseLinkDestination(e.src, l, e.posMax), d.ok && (b = e.md.normalizeLink(d.str), e.md.validateLink(b) ? l = d.pos : b = ""), g = l; l < v && (a = e.src.charCodeAt(l), !(!go(a) && a !== 10)); l++); | |
if (d = e.md.helpers.parseLinkTitle(e.src, l, e.posMax), l < v && g !== l && d.ok) | |
for (m = d.str, l = d.pos; l < v && (a = e.src.charCodeAt(l), !(!go(a) && a !== 10)); l++); | |
else m = ""; | |
if (l >= v || e.src.charCodeAt(l) !== 41) return e.pos = x, !1; | |
l++ | |
} else { | |
if (typeof e.env.references == "undefined") return !1; | |
if (l < v && e.src.charCodeAt(l) === 91 ? (g = l + 1, l = e.md.helpers.parseLinkLabel(e, l), l >= 0 ? r = e.src.slice(g, l++) : l = i + 1) : l = i + 1, r || (r = e.src.slice(c, i)), u = e.env.references[NK(r)], !u) return e.pos = x, !1; | |
b = u.href, m = u.title | |
} | |
return n || (o = e.src.slice(c, i), e.md.inline.parse(o, e.md, e.env, h = []), f = e.push("image", "img", 0), f.attrs = s = [ | |
["src", b], | |
["alt", ""] | |
], f.children = h, f.content = o, m && s.push(["title", m])), e.pos = l, e.posMax = v, !0 | |
}, | |
OK = /^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/, | |
LK = /^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/, | |
RK = function(e, n) { | |
var s, a, o, r, i, c, l = e.pos; | |
if (e.src.charCodeAt(l) !== 60) return !1; | |
for (i = e.pos, c = e.posMax;;) { | |
if (++l >= c || (r = e.src.charCodeAt(l), r === 60)) return !1; | |
if (r === 62) break | |
} | |
return s = e.src.slice(i + 1, l), LK.test(s) ? (a = e.md.normalizeLink(s), e.md.validateLink(a) ? (n || (o = e.push("link_open", "a", 1), o.attrs = [ | |
["href", a] | |
], o.markup = "autolink", o.info = "auto", o = e.push("text", "", 0), o.content = e.md.normalizeLinkText(s), o = e.push("link_close", "a", -1), o.markup = "autolink", o.info = "auto"), e.pos += s.length + 2, !0) : !1) : OK.test(s) ? (a = e.md.normalizeLink("mailto:" + s), e.md.validateLink(a) ? (n || (o = e.push("link_open", "a", 1), o.attrs = [ | |
["href", a] | |
], o.markup = "autolink", o.info = "auto", o = e.push("text", "", 0), o.content = e.md.normalizeLinkText(s), o = e.push("link_close", "a", -1), o.markup = "autolink", o.info = "auto"), e.pos += s.length + 2, !0) : !1) : !1 | |
}, | |
PK = za.HTML_TAG_RE; | |
function BK(t) { | |
return /^<a[>\s]/i.test(t) | |
} | |
function zK(t) { | |
return /^<\/a\s*>/i.test(t) | |
} | |
function qK(t) { | |
var e = t | 32; | |
return e >= 97 && e <= 122 | |
} | |
var FK = function(e, n) { | |
var s, a, o, r, i = e.pos; | |
return !e.md.options.html || (o = e.posMax, e.src.charCodeAt(i) !== 60 || i + 2 >= o) || (s = e.src.charCodeAt(i + 1), s !== 33 && s !== 63 && s !== 47 && !qK(s)) || (a = e.src.slice(i).match(PK), !a) ? !1 : (n || (r = e.push("html_inline", "", 0), r.content = e.src.slice(i, i + a[0].length), BK(r.content) && e.linkLevel++, zK(r.content) && e.linkLevel--), e.pos += a[0].length, !0) | |
}, | |
Fc = vp, | |
jK = oe.has, | |
$K = oe.isValidEntityCode, | |
jc = oe.fromCodePoint, | |
UK = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i, | |
VK = /^&([a-z][a-z0-9]{1,31});/i, | |
HK = function(e, n) { | |
var s, a, o, r, i = e.pos, | |
c = e.posMax; | |
if (e.src.charCodeAt(i) !== 38 || i + 1 >= c) return !1; | |
if (s = e.src.charCodeAt(i + 1), s === 35) { | |
if (o = e.src.slice(i).match(UK), o) return n || (a = o[1][0].toLowerCase() === "x" ? parseInt(o[1].slice(1), 16) : parseInt(o[1], 10), r = e.push("text_special", "", 0), r.content = $K(a) ? jc(a) : jc(65533), r.markup = o[0], r.info = "entity"), e.pos += o[0].length, !0 | |
} else if (o = e.src.slice(i).match(VK), o && jK(Fc, o[1])) return n || (r = e.push("text_special", "", 0), r.content = Fc[o[1]], r.markup = o[0], r.info = "entity"), e.pos += o[0].length, !0; | |
return !1 | |
}; | |
function $c(t, e) { | |
var n, s, a, o, r, i, c, l, u = {}, | |
d = e.length; | |
if (d) { | |
var m = 0, | |
f = -2, | |
h = []; | |
for (n = 0; n < d; n++) | |
if (a = e[n], h.push(0), (e[m].marker !== a.marker || f !== a.token - 1) && (m = n), f = a.token, a.length = a.length || 0, !!a.close) { | |
for (u.hasOwnProperty(a.marker) || (u[a.marker] = [-1, -1, -1, -1, -1, -1]), r = u[a.marker][(a.open ? 3 : 0) + a.length % 3], s = m - h[m] - 1, i = s; s > r; s -= h[s] + 1) | |
if (o = e[s], o.marker === a.marker && o.open && o.end < 0 && (c = !1, (o.close || a.open) && (o.length + a.length) % 3 === 0 && (o.length % 3 !== 0 || a.length % 3 !== 0) && (c = !0), !c)) { | |
l = s > 0 && !e[s - 1].open ? h[s - 1] + 1 : 0, h[n] = n - s + l, h[s] = l, a.open = !1, o.end = n, o.close = !1, i = -1, f = -2; | |
break | |
} | |
i !== -1 && (u[a.marker][(a.open ? 3 : 0) + (a.length || 0) % 3] = i) | |
} | |
} | |
} | |
var GK = function(e) { | |
var n, s = e.tokens_meta, | |
a = e.tokens_meta.length; | |
for ($c(e, e.delimiters), n = 0; n < a; n++) s[n] && s[n].delimiters && $c(e, s[n].delimiters) | |
}, | |
WK = function(e) { | |
var n, s, a = 0, | |
o = e.tokens, | |
r = e.tokens.length; | |
for (n = s = 0; n < r; n++) o[n].nesting < 0 && a--, o[n].level = a, o[n].nesting > 0 && a++, o[n].type === "text" && n + 1 < r && o[n + 1].type === "text" ? o[n + 1].content = o[n].content + o[n + 1].content : (n !== s && (o[s] = o[n]), s++); | |
n !== s && (o.length = s) | |
}, | |
$r = qr, | |
Uc = oe.isWhiteSpace, | |
Vc = oe.isPunctChar, | |
Hc = oe.isMdAsciiPunct; | |
function xs(t, e, n, s) { | |
this.src = t, this.env = n, this.md = e, this.tokens = s, this.tokens_meta = Array(s.length), this.pos = 0, this.posMax = this.src.length, this.level = 0, this.pending = "", this.pendingLevel = 0, this.cache = {}, this.delimiters = [], this._prev_delimiters = [], this.backticks = {}, this.backticksScanned = !1, this.linkLevel = 0 | |
} | |
xs.prototype.pushPending = function() { | |
var t = new $r("text", "", 0); | |
return t.content = this.pending, t.level = this.pendingLevel, this.tokens.push(t), this.pending = "", t | |
}; | |
xs.prototype.push = function(t, e, n) { | |
this.pending && this.pushPending(); | |
var s = new $r(t, e, n), | |
a = null; | |
return n < 0 && (this.level--, this.delimiters = this._prev_delimiters.pop()), s.level = this.level, n > 0 && (this.level++, this._prev_delimiters.push(this.delimiters), this.delimiters = [], a = { | |
delimiters: this.delimiters | |
}), this.pendingLevel = this.level, this.tokens.push(s), this.tokens_meta.push(a), s | |
}; | |
xs.prototype.scanDelims = function(t, e) { | |
var n = t, | |
s, a, o, r, i, c, l, u, d, m = !0, | |
f = !0, | |
h = this.posMax, | |
g = this.src.charCodeAt(t); | |
for (s = t > 0 ? this.src.charCodeAt(t - 1) : 32; n < h && this.src.charCodeAt(n) === g;) n++; | |
return o = n - t, a = n < h ? this.src.charCodeAt(n) : 32, l = Hc(s) || Vc(String.fromCharCode(s)), d = Hc(a) || Vc(String.fromCharCode(a)), c = Uc(s), u = Uc(a), u ? m = !1 : d && (c || l || (m = !1)), c ? f = !1 : l && (u || d || (f = !1)), e ? (r = m, i = f) : (r = m && (!f || l), i = f && (!m || d)), { | |
can_open: r, | |
can_close: i, | |
length: o | |
} | |
}; | |
xs.prototype.Token = $r; | |
var JK = xs, | |
Gc = zr, | |
bo = [ | |
["text", wK], | |
["linkify", _K], | |
["newline", EK], | |
["escape", SK], | |
["backticks", TK], | |
["strikethrough", ja.tokenize], | |
["emphasis", $a.tokenize], | |
["link", IK], | |
["image", MK], | |
["autolink", RK], | |
["html_inline", FK], | |
["entity", HK] | |
], | |
vo = [ | |
["balance_pairs", GK], | |
["strikethrough", ja.postProcess], | |
["emphasis", $a.postProcess], | |
["fragments_join", WK] | |
]; | |
function ys() { | |
var t; | |
for (this.ruler = new Gc, t = 0; t < bo.length; t++) this.ruler.push(bo[t][0], bo[t][1]); | |
for (this.ruler2 = new Gc, t = 0; t < vo.length; t++) this.ruler2.push(vo[t][0], vo[t][1]) | |
} | |
ys.prototype.skipToken = function(t) { | |
var e, n, s = t.pos, | |
a = this.ruler.getRules(""), | |
o = a.length, | |
r = t.md.options.maxNesting, | |
i = t.cache; | |
if (typeof i[s] != "undefined") { | |
t.pos = i[s]; | |
return | |
} | |
if (t.level < r) | |
for (n = 0; n < o && (t.level++, e = a[n](t, !0), t.level--, !e); n++); | |
else t.pos = t.posMax; | |
e || t.pos++, i[s] = t.pos | |
}; | |
ys.prototype.tokenize = function(t) { | |
for (var e, n, s = this.ruler.getRules(""), a = s.length, o = t.posMax, r = t.md.options.maxNesting; t.pos < o;) { | |
if (t.level < r) | |
for (n = 0; n < a && (e = s[n](t, !1), !e); n++); | |
if (e) { | |
if (t.pos >= o) break; | |
continue | |
} | |
t.pending += t.src[t.pos++] | |
} | |
t.pending && t.pushPending() | |
}; | |
ys.prototype.parse = function(t, e, n, s) { | |
var a, o, r, i = new this.State(t, e, n, s); | |
for (this.tokenize(i), o = this.ruler2.getRules(""), r = o.length, a = 0; a < r; a++) o[a](i) | |
}; | |
ys.prototype.State = JK; | |
var YK = ys, | |
xo, Wc; | |
function KK() { | |
return Wc || (Wc = 1, xo = function(t) { | |
var e = {}; | |
t = t || {}, e.src_Any = xp().source, e.src_Cc = yp().source, e.src_Z = wp().source, e.src_P = Br.source, e.src_ZPCc = [e.src_Z, e.src_P, e.src_Cc].join("|"), e.src_ZCc = [e.src_Z, e.src_Cc].join("|"); | |
var n = "[><|]"; | |
return e.src_pseudo_letter = "(?:(?!" + n + "|" + e.src_ZPCc + ")" + e.src_Any + ")", e.src_ip4 = "(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", e.src_auth = "(?:(?:(?!" + e.src_ZCc + "|[@/\\[\\]()]).)+@)?", e.src_port = "(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?", e.src_host_terminator = "(?=$|" + n + "|" + e.src_ZPCc + ")(?!" + (t["---"] ? "-(?!--)|" : "-|") + "_|:\\d|\\.-|\\.(?!$|" + e.src_ZPCc + "))", e.src_path = "(?:[/?#](?:(?!" + e.src_ZCc + "|" + n + `|[()[\\]{}.,"'?!\\-;]).|\\[(?:(?!` + e.src_ZCc + "|\\]).)*\\]|\\((?:(?!" + e.src_ZCc + "|[)]).)*\\)|\\{(?:(?!" + e.src_ZCc + '|[}]).)*\\}|\\"(?:(?!' + e.src_ZCc + `|["]).)+\\"|\\'(?:(?!` + e.src_ZCc + "|[']).)+\\'|\\'(?=" + e.src_pseudo_letter + "|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!" + e.src_ZCc + "|[.]|$)|" + (t["---"] ? "\\-(?!--(?:[^-]|$))(?:-*)|" : "\\-+|") + ",(?!" + e.src_ZCc + "|$)|;(?!" + e.src_ZCc + "|$)|\\!+(?!" + e.src_ZCc + "|[!]|$)|\\?(?!" + e.src_ZCc + "|[?]|$))+|\\/)?", e.src_email_name = '[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*', e.src_xn = "xn--[a-z0-9\\-]{1,59}", e.src_domain_root = "(?:" + e.src_xn + "|" + e.src_pseudo_letter + "{1,63})", e.src_domain = "(?:" + e.src_xn + "|(?:" + e.src_pseudo_letter + ")|(?:" + e.src_pseudo_letter + "(?:-|" + e.src_pseudo_letter + "){0,61}" + e.src_pseudo_letter + "))", e.src_host = "(?:(?:(?:(?:" + e.src_domain + ")\\.)*" + e.src_domain + "))", e.tpl_host_fuzzy = "(?:" + e.src_ip4 + "|(?:(?:(?:" + e.src_domain + ")\\.)+(?:%TLDS%)))", e.tpl_host_no_ip_fuzzy = "(?:(?:(?:" + e.src_domain + ")\\.)+(?:%TLDS%))", e.src_host_strict = e.src_host + e.src_host_terminator, e.tpl_host_fuzzy_strict = e.tpl_host_fuzzy + e.src_host_terminator, e.src_host_port_strict = e.src_host + e.src_port + e.src_host_terminator, e.tpl_host_port_fuzzy_strict = e.tpl_host_fuzzy + e.src_port + e.src_host_terminator, e.tpl_host_port_no_ip_fuzzy_strict = e.tpl_host_no_ip_fuzzy + e.src_port + e.src_host_terminator, e.tpl_host_fuzzy_test = "localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:" + e.src_ZPCc + "|>|$))", e.tpl_email_fuzzy = "(^|" + n + '|"|\\(|' + e.src_ZCc + ")(" + e.src_email_name + "@" + e.tpl_host_fuzzy_strict + ")", e.tpl_link_fuzzy = "(^|(?![.:/\\-_@])(?:[$+<=>^`||]|" + e.src_ZPCc + "))((?![$+<=>^`||])" + e.tpl_host_port_fuzzy_strict + e.src_path + ")", e.tpl_link_no_ip_fuzzy = "(^|(?![.:/\\-_@])(?:[$+<=>^`||]|" + e.src_ZPCc + "))((?![$+<=>^`||])" + e.tpl_host_port_no_ip_fuzzy_strict + e.src_path + ")", e | |
}), xo | |
} | |
function Ko(t) { | |
var e = Array.prototype.slice.call(arguments, 1); | |
return e.forEach(function(n) { | |
n && Object.keys(n).forEach(function(s) { | |
t[s] = n[s] | |
}) | |
}), t | |
} | |
function Ua(t) { | |
return Object.prototype.toString.call(t) | |
} | |
function XK(t) { | |
return Ua(t) === "[object String]" | |
} | |
function ZK(t) { | |
return Ua(t) === "[object Object]" | |
} | |
function QK(t) { | |
return Ua(t) === "[object RegExp]" | |
} | |
function Jc(t) { | |
return Ua(t) === "[object Function]" | |
} | |
function eX(t) { | |
return t.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&") | |
} | |
var Tp = { | |
fuzzyLink: !0, | |
fuzzyEmail: !0, | |
fuzzyIP: !1 | |
}; | |
function tX(t) { | |
return Object.keys(t || {}).reduce(function(e, n) { | |
return e || Tp.hasOwnProperty(n) | |
}, !1) | |
} | |
var nX = { | |
"http:": { | |
validate: function(t, e, n) { | |
var s = t.slice(e); | |
return n.re.http || (n.re.http = new RegExp("^\\/\\/" + n.re.src_auth + n.re.src_host_port_strict + n.re.src_path, "i")), n.re.http.test(s) ? s.match(n.re.http)[0].length : 0 | |
} | |
}, | |
"https:": "http:", | |
"ftp:": "http:", | |
"//": { | |
validate: function(t, e, n) { | |
var s = t.slice(e); | |
return n.re.no_http || (n.re.no_http = new RegExp("^" + n.re.src_auth + "(?:localhost|(?:(?:" + n.re.src_domain + ")\\.)+" + n.re.src_domain_root + ")" + n.re.src_port + n.re.src_host_terminator + n.re.src_path, "i")), n.re.no_http.test(s) ? e >= 3 && t[e - 3] === ":" || e >= 3 && t[e - 3] === "/" ? 0 : s.match(n.re.no_http)[0].length : 0 | |
} | |
}, | |
"mailto:": { | |
validate: function(t, e, n) { | |
var s = t.slice(e); | |
return n.re.mailto || (n.re.mailto = new RegExp("^" + n.re.src_email_name + "@" + n.re.src_host_strict, "i")), n.re.mailto.test(s) ? s.match(n.re.mailto)[0].length : 0 | |
} | |
} | |
}, | |
sX = "a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]", | |
aX = "biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|"); | |
function oX(t) { | |
t.__index__ = -1, t.__text_cache__ = "" | |
} | |
function rX(t) { | |
return function(e, n) { | |
var s = e.slice(n); | |
return t.test(s) ? s.match(t)[0].length : 0 | |
} | |
} | |
function Yc() { | |
return function(t, e) { | |
e.normalize(t) | |
} | |
} | |
function pa(t) { | |
var e = t.re = KK()(t.__opts__), | |
n = t.__tlds__.slice(); | |
t.onCompile(), t.__tlds_replaced__ || n.push(sX), n.push(e.src_xn), e.src_tlds = n.join("|"); | |
function s(i) { | |
return i.replace("%TLDS%", e.src_tlds) | |
} | |
e.email_fuzzy = RegExp(s(e.tpl_email_fuzzy), "i"), e.link_fuzzy = RegExp(s(e.tpl_link_fuzzy), "i"), e.link_no_ip_fuzzy = RegExp(s(e.tpl_link_no_ip_fuzzy), "i"), e.host_fuzzy_test = RegExp(s(e.tpl_host_fuzzy_test), "i"); | |
var a = []; | |
t.__compiled__ = {}; | |
function o(i, c) { | |
throw new Error('(LinkifyIt) Invalid schema "' + i + '": ' + c) | |
} | |
Object.keys(t.__schemas__).forEach(function(i) { | |
var c = t.__schemas__[i]; | |
if (c !== null) { | |
var l = { | |
validate: null, | |
link: null | |
}; | |
if (t.__compiled__[i] = l, ZK(c)) { | |
QK(c.validate) ? l.validate = rX(c.validate) : Jc(c.validate) ? l.validate = c.validate : o(i, c), Jc(c.normalize) ? l.normalize = c.normalize : c.normalize ? o(i, c) : l.normalize = Yc(); | |
return | |
} | |
if (XK(c)) { | |
a.push(i); | |
return | |
} | |
o(i, c) | |
} | |
}), a.forEach(function(i) { | |
t.__compiled__[t.__schemas__[i]] && (t.__compiled__[i].validate = t.__compiled__[t.__schemas__[i]].validate, t.__compiled__[i].normalize = t.__compiled__[t.__schemas__[i]].normalize) | |
}), t.__compiled__[""] = { | |
validate: null, | |
normalize: Yc() | |
}; | |
var r = Object.keys(t.__compiled__).filter(function(i) { | |
return i.length > 0 && t.__compiled__[i] | |
}).map(eX).join("|"); | |
t.re.schema_test = RegExp("(^|(?!_)(?:[><|]|" + e.src_ZPCc + "))(" + r + ")", "i"), t.re.schema_search = RegExp("(^|(?!_)(?:[><|]|" + e.src_ZPCc + "))(" + r + ")", "ig"), t.re.schema_at_start = RegExp("^" + t.re.schema_search.source, "i"), t.re.pretest = RegExp("(" + t.re.schema_test.source + ")|(" + t.re.host_fuzzy_test.source + ")|@", "i"), oX(t) | |
} | |
function iX(t, e) { | |
var n = t.__index__, | |
s = t.__last_index__, | |
a = t.__text_cache__.slice(n, s); | |
this.schema = t.__schema__.toLowerCase(), this.index = n + e, this.lastIndex = s + e, this.raw = a, this.text = a, this.url = a | |
} | |
function Xo(t, e) { | |
var n = new iX(t, e); | |
return t.__compiled__[n.schema].normalize(n, t), n | |
} | |
function Ke(t, e) { | |
if (!(this instanceof Ke)) return new Ke(t, e); | |
e || tX(t) && (e = t, t = {}), this.__opts__ = Ko({}, Tp, e), this.__index__ = -1, this.__last_index__ = -1, this.__schema__ = "", this.__text_cache__ = "", this.__schemas__ = Ko({}, nX, t), this.__compiled__ = {}, this.__tlds__ = aX, this.__tlds_replaced__ = !1, this.re = {}, pa(this) | |
} | |
Ke.prototype.add = function(e, n) { | |
return this.__schemas__[e] = n, pa(this), this | |
}; | |
Ke.prototype.set = function(e) { | |
return this.__opts__ = Ko(this.__opts__, e), this | |
}; | |
Ke.prototype.test = function(e) { | |
if (this.__text_cache__ = e, this.__index__ = -1, !e.length) return !1; | |
var n, s, a, o, r, i, c, l, u; | |
if (this.re.schema_test.test(e)) { | |
for (c = this.re.schema_search, c.lastIndex = 0; | |
(n = c.exec(e)) !== null;) | |
if (o = this.testSchemaAt(e, n[2], c.lastIndex), o) { | |
this.__schema__ = n[2], this.__index__ = n.index + n[1].length, this.__last_index__ = n.index + n[0].length + o; | |
break | |
} | |
} | |
return this.__opts__.fuzzyLink && this.__compiled__["http:"] && (l = e.search(this.re.host_fuzzy_test), l >= 0 && (this.__index__ < 0 || l < this.__index__) && (s = e.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null && (r = s.index + s[1].length, (this.__index__ < 0 || r < this.__index__) && (this.__schema__ = "", this.__index__ = r, this.__last_index__ = s.index + s[0].length))), this.__opts__.fuzzyEmail && this.__compiled__["mailto:"] && (u = e.indexOf("@"), u >= 0 && (a = e.match(this.re.email_fuzzy)) !== null && (r = a.index + a[1].length, i = a.index + a[0].length, (this.__index__ < 0 || r < this.__index__ || r === this.__index__ && i > this.__last_index__) && (this.__schema__ = "mailto:", this.__index__ = r, this.__last_index__ = i))), this.__index__ >= 0 | |
}; | |
Ke.prototype.pretest = function(e) { | |
return this.re.pretest.test(e) | |
}; | |
Ke.prototype.testSchemaAt = function(e, n, s) { | |
return this.__compiled__[n.toLowerCase()] ? this.__compiled__[n.toLowerCase()].validate(e, s, this) : 0 | |
}; | |
Ke.prototype.match = function(e) { | |
var n = 0, | |
s = []; | |
this.__index__ >= 0 && this.__text_cache__ === e && (s.push(Xo(this, n)), n = this.__last_index__); | |
for (var a = n ? e.slice(n) : e; this.test(a);) s.push(Xo(this, n)), a = a.slice(this.__last_index__), n += this.__last_index__; | |
return s.length ? s : null | |
}; | |
Ke.prototype.matchAtStart = function(e) { | |
if (this.__text_cache__ = e, this.__index__ = -1, !e.length) return null; | |
var n = this.re.schema_at_start.exec(e); | |
if (!n) return null; | |
var s = this.testSchemaAt(e, n[2], n[0].length); | |
return s ? (this.__schema__ = n[2], this.__index__ = n.index + n[1].length, this.__last_index__ = n.index + n[0].length + s, Xo(this, 0)) : null | |
}; | |
Ke.prototype.tlds = function(e, n) { | |
return e = Array.isArray(e) ? e : [e], n ? (this.__tlds__ = this.__tlds__.concat(e).sort().filter(function(s, a, o) { | |
return s !== o[a - 1] | |
}).reverse(), pa(this), this) : (this.__tlds__ = e.slice(), this.__tlds_replaced__ = !0, pa(this), this) | |
}; | |
Ke.prototype.normalize = function(e) { | |
e.schema || (e.url = "http://" + e.url), e.schema === "mailto:" && !/^mailto:/i.test(e.url) && (e.url = "mailto:" + e.url) | |
}; | |
Ke.prototype.onCompile = function() {}; | |
var cX = Ke; | |
const yn = 2147483647, | |
vt = 36, | |
Ur = 1, | |
us = 26, | |
lX = 38, | |
uX = 700, | |
Dp = 72, | |
Ip = 128, | |
Np = "-", | |
pX = /^xn--/, | |
dX = /[^\0-\x7F]/, | |
mX = /[\x2E\u3002\uFF0E\uFF61]/g, | |
fX = { | |
overflow: "Overflow: input needs wider integers to process", | |
"not-basic": "Illegal input >= 0x80 (not a basic code point)", | |
"invalid-input": "Invalid input" | |
}, | |
yo = vt - Ur, | |
xt = Math.floor, | |
wo = String.fromCharCode; | |
function zt(t) { | |
throw new RangeError(fX[t]) | |
} | |
function hX(t, e) { | |
const n = []; | |
let s = t.length; | |
for (; s--;) n[s] = e(t[s]); | |
return n | |
} | |
function Mp(t, e) { | |
const n = t.split("@"); | |
let s = ""; | |
n.length > 1 && (s = n[0] + "@", t = n[1]), t = t.replace(mX, "."); | |
const a = t.split("."), | |
o = hX(a, e).join("."); | |
return s + o | |
} | |
function Vr(t) { | |
const e = []; | |
let n = 0; | |
const s = t.length; | |
for (; n < s;) { | |
const a = t.charCodeAt(n++); | |
if (a >= 55296 && a <= 56319 && n < s) { | |
const o = t.charCodeAt(n++); | |
(o & 64512) == 56320 ? e.push(((a & 1023) << 10) + (o & 1023) + 65536) : (e.push(a), n--) | |
} else e.push(a) | |
} | |
return e | |
} | |
const Op = t => String.fromCodePoint(...t), | |
gX = function(t) { | |
return t >= 48 && t < 58 ? 26 + (t - 48) : t >= 65 && t < 91 ? t - 65 : t >= 97 && t < 123 ? t - 97 : vt | |
}, | |
Kc = function(t, e) { | |
return t + 22 + 75 * (t < 26) - ((e != 0) << 5) | |
}, | |
Lp = function(t, e, n) { | |
let s = 0; | |
for (t = n ? xt(t / uX) : t >> 1, t += xt(t / e); t > yo * us >> 1; s += vt) t = xt(t / yo); | |
return xt(s + (yo + 1) * t / (t + lX)) | |
}, | |
Hr = function(t) { | |
const e = [], | |
n = t.length; | |
let s = 0, | |
a = Ip, | |
o = Dp, | |
r = t.lastIndexOf(Np); | |
r < 0 && (r = 0); | |
for (let i = 0; i < r; ++i) t.charCodeAt(i) >= 128 && zt("not-basic"), e.push(t.charCodeAt(i)); | |
for (let i = r > 0 ? r + 1 : 0; i < n;) { | |
const c = s; | |
for (let u = 1, d = vt;; d += vt) { | |
i >= n && zt("invalid-input"); | |
const m = gX(t.charCodeAt(i++)); | |
m >= vt && zt("invalid-input"), m > xt((yn - s) / u) && zt("overflow"), s += m * u; | |
const f = d <= o ? Ur : d >= o + us ? us : d - o; | |
if (m < f) break; | |
const h = vt - f; | |
u > xt(yn / h) && zt("overflow"), u *= h | |
} | |
const l = e.length + 1; | |
o = Lp(s - c, l, c == 0), xt(s / l) > yn - a && zt("overflow"), a += xt(s / l), s %= l, e.splice(s++, 0, a) | |
} | |
return String.fromCodePoint(...e) | |
}, | |
Gr = function(t) { | |
const e = []; | |
t = Vr(t); | |
const n = t.length; | |
let s = Ip, | |
a = 0, | |
o = Dp; | |
for (const c of t) c < 128 && e.push(wo(c)); | |
const r = e.length; | |
let i = r; | |
for (r && e.push(Np); i < n;) { | |
let c = yn; | |
for (const u of t) u >= s && u < c && (c = u); | |
const l = i + 1; | |
c - s > xt((yn - a) / l) && zt("overflow"), a += (c - s) * l, s = c; | |
for (const u of t) | |
if (u < s && ++a > yn && zt("overflow"), u === s) { | |
let d = a; | |
for (let m = vt;; m += vt) { | |
const f = m <= o ? Ur : m >= o + us ? us : m - o; | |
if (d < f) break; | |
const h = d - f, | |
g = vt - f; | |
e.push(wo(Kc(f + h % g, 0))), d = xt(h / g) | |
} | |
e.push(wo(Kc(d, 0))), o = Lp(a, l, i === r), a = 0, ++i | |
}++a, ++s | |
} | |
return e.join("") | |
}, | |
Rp = function(t) { | |
return Mp(t, function(e) { | |
return pX.test(e) ? Hr(e.slice(4).toLowerCase()) : e | |
}) | |
}, | |
Pp = function(t) { | |
return Mp(t, function(e) { | |
return dX.test(e) ? "xn--" + Gr(e) : e | |
}) | |
}, | |
bX = { | |
version: "2.3.1", | |
ucs2: { | |
decode: Vr, | |
encode: Op | |
}, | |
decode: Hr, | |
encode: Gr, | |
toASCII: Pp, | |
toUnicode: Rp | |
}, | |
vX = Object.freeze(Object.defineProperty({ | |
__proto__: null, | |
decode: Hr, | |
default: bX, | |
encode: Gr, | |
toASCII: Pp, | |
toUnicode: Rp, | |
ucs2decode: Vr, | |
ucs2encode: Op | |
}, Symbol.toStringTag, { | |
value: "Module" | |
})), | |
xX = Cf(vX); | |
var yX = { | |
options: { | |
html: !1, | |
xhtmlOut: !1, | |
breaks: !1, | |
langPrefix: "language-", | |
linkify: !1, | |
typographer: !1, | |
quotes: "“”‘’", | |
highlight: null, | |
maxNesting: 100 | |
}, | |
components: { | |
core: {}, | |
block: {}, | |
inline: {} | |
} | |
}, | |
wX = { | |
options: { | |
html: !1, | |
xhtmlOut: !1, | |
breaks: !1, | |
langPrefix: "language-", | |
linkify: !1, | |
typographer: !1, | |
quotes: "“”‘’", | |
highlight: null, | |
maxNesting: 20 | |
}, | |
components: { | |
core: { | |
rules: ["normalize", "block", "inline", "text_join"] | |
}, | |
block: { | |
rules: ["paragraph"] | |
}, | |
inline: { | |
rules: ["text"], | |
rules2: ["balance_pairs", "fragments_join"] | |
} | |
} | |
}, | |
kX = { | |
options: { | |
html: !0, | |
xhtmlOut: !0, | |
breaks: !1, | |
langPrefix: "language-", | |
linkify: !1, | |
typographer: !1, | |
quotes: "“”‘’", | |
highlight: null, | |
maxNesting: 20 | |
}, | |
components: { | |
core: { | |
rules: ["normalize", "block", "inline", "text_join"] | |
}, | |
block: { | |
rules: ["blockquote", "code", "fence", "heading", "hr", "html_block", "lheading", "list", "reference", "paragraph"] | |
}, | |
inline: { | |
rules: ["autolink", "backticks", "emphasis", "entity", "escape", "html_inline", "image", "link", "newline", "text"], | |
rules2: ["balance_pairs", "emphasis", "fragments_join"] | |
} | |
} | |
}, | |
ts = oe, | |
_X = Ba, | |
CX = bY, | |
EX = jY, | |
AX = xK, | |
SX = YK, | |
TX = cX, | |
Yt = Ln, | |
Bp = xX, | |
DX = { | |
default: yX, | |
zero: wX, | |
commonmark: kX | |
}, | |
IX = /^(vbscript|javascript|file|data):/, | |
NX = /^data:image\/(gif|png|jpeg|webp);/; | |
function MX(t) { | |
var e = t.trim().toLowerCase(); | |
return IX.test(e) ? !!NX.test(e) : !0 | |
} | |
var zp = ["http:", "https:", "mailto:"]; | |
function OX(t) { | |
var e = Yt.parse(t, !0); | |
if (e.hostname && (!e.protocol || zp.indexOf(e.protocol) >= 0)) try { | |
e.hostname = Bp.toASCII(e.hostname) | |
} catch (n) {} | |
return Yt.encode(Yt.format(e)) | |
} | |
function LX(t) { | |
var e = Yt.parse(t, !0); | |
if (e.hostname && (!e.protocol || zp.indexOf(e.protocol) >= 0)) try { | |
e.hostname = Bp.toUnicode(e.hostname) | |
} catch (n) {} | |
return Yt.decode(Yt.format(e), Yt.decode.defaultChars + "%") | |
} | |
function et(t, e) { | |
if (!(this instanceof et)) return new et(t, e); | |
e || ts.isString(t) || (e = t || {}, t = "default"), this.inline = new SX, this.block = new AX, this.core = new EX, this.renderer = new CX, this.linkify = new TX, this.validateLink = MX, this.normalizeLink = OX, this.normalizeLinkText = LX, this.utils = ts, this.helpers = ts.assign({}, _X), this.options = {}, this.configure(t), e && this.set(e) | |
} | |
et.prototype.set = function(t) { | |
return ts.assign(this.options, t), this | |
}; | |
et.prototype.configure = function(t) { | |
var e = this, | |
n; | |
if (ts.isString(t) && (n = t, t = DX[n], !t)) throw new Error('Wrong `markdown-it` preset "' + n + '", check name'); | |
if (!t) throw new Error("Wrong `markdown-it` preset, can't be empty"); | |
return t.options && e.set(t.options), t.components && Object.keys(t.components).forEach(function(s) { | |
t.components[s].rules && e[s].ruler.enableOnly(t.components[s].rules), t.components[s].rules2 && e[s].ruler2.enableOnly(t.components[s].rules2) | |
}), this | |
}; | |
et.prototype.enable = function(t, e) { | |
var n = []; | |
Array.isArray(t) || (t = [t]), ["core", "block", "inline"].forEach(function(a) { | |
n = n.concat(this[a].ruler.enable(t, !0)) | |
}, this), n = n.concat(this.inline.ruler2.enable(t, !0)); | |
var s = t.filter(function(a) { | |
return n.indexOf(a) < 0 | |
}); | |
if (s.length && !e) throw new Error("MarkdownIt. Failed to enable unknown rule(s): " + s); | |
return this | |
}; | |
et.prototype.disable = function(t, e) { | |
var n = []; | |
Array.isArray(t) || (t = [t]), ["core", "block", "inline"].forEach(function(a) { | |
n = n.concat(this[a].ruler.disable(t, !0)) | |
}, this), n = n.concat(this.inline.ruler2.disable(t, !0)); | |
var s = t.filter(function(a) { | |
return n.indexOf(a) < 0 | |
}); | |
if (s.length && !e) throw new Error("MarkdownIt. Failed to disable unknown rule(s): " + s); | |
return this | |
}; | |
et.prototype.use = function(t) { | |
var e = [this].concat(Array.prototype.slice.call(arguments, 1)); | |
return t.apply(t, e), this | |
}; | |
et.prototype.parse = function(t, e) { | |
if (typeof t != "string") throw new Error("Input data should be a String"); | |
var n = new this.core.State(t, this, e); | |
return this.core.process(n), n.tokens | |
}; | |
et.prototype.render = function(t, e) { | |
return e = e || {}, this.renderer.render(this.parse(t, e), this.options, e) | |
}; | |
et.prototype.parseInline = function(t, e) { | |
var n = new this.core.State(t, this, e); | |
return n.inlineMode = !0, this.core.process(n), n.tokens | |
}; | |
et.prototype.renderInline = function(t, e) { | |
return e = e || {}, this.renderer.render(this.parseInline(t, e), this.options, e) | |
}; | |
var RX = et, | |
PX = RX; | |
const BX = lr(PX), | |
Wr = new gr({ | |
nodes: { | |
doc: { | |
content: "block+" | |
}, | |
paragraph: { | |
content: "inline*", | |
group: "block", | |
parseDOM: [{ | |
tag: "p" | |
}], | |
toDOM() { | |
return ["p", 0] | |
} | |
}, | |
blockquote: { | |
content: "block+", | |
group: "block", | |
parseDOM: [{ | |
tag: "blockquote" | |
}], | |
toDOM() { | |
return ["blockquote", 0] | |
} | |
}, | |
horizontal_rule: { | |
group: "block", | |
parseDOM: [{ | |
tag: "hr" | |
}], | |
toDOM() { | |
return ["div", ["hr"]] | |
} | |
}, | |
heading: { | |
attrs: { | |
level: { | |
default: 1 | |
} | |
}, | |
content: "(text | image)*", | |
group: "block", | |
defining: !0, | |
parseDOM: [{ | |
tag: "h1", | |
attrs: { | |
level: 1 | |
} | |
}, { | |
tag: "h2", | |
attrs: { | |
level: 2 | |
} | |
}, { | |
tag: "h3", | |
attrs: { | |
level: 3 | |
} | |
}, { | |
tag: "h4", | |
attrs: { | |
level: 4 | |
} | |
}, { | |
tag: "h5", | |
attrs: { | |
level: 5 | |
} | |
}, { | |
tag: "h6", | |
attrs: { | |
level: 6 | |
} | |
}], | |
toDOM(t) { | |
return ["h" + t.attrs.level, 0] | |
} | |
}, | |
code_block: { | |
content: "text*", | |
group: "block", | |
code: !0, | |
defining: !0, | |
marks: "", | |
attrs: { | |
params: { | |
default: "" | |
} | |
}, | |
parseDOM: [{ | |
tag: "pre", | |
preserveWhitespace: "full", | |
getAttrs: t => ({ | |
params: t.getAttribute("data-params") || "" | |
}) | |
}], | |
toDOM(t) { | |
return ["pre", t.attrs.params ? { | |
"data-params": t.attrs.params | |
} : {}, | |
["code", 0] | |
] | |
} | |
}, | |
ordered_list: { | |
content: "list_item+", | |
group: "block", | |
attrs: { | |
order: { | |
default: 1 | |
}, | |
tight: { | |
default: !1 | |
} | |
}, | |
parseDOM: [{ | |
tag: "ol", | |
getAttrs(t) { | |
return { | |
order: t.hasAttribute("start") ? +t.getAttribute("start") : 1, | |
tight: t.hasAttribute("data-tight") | |
} | |
} | |
}], | |
toDOM(t) { | |
return ["ol", { | |
start: t.attrs.order == 1 ? null : t.attrs.order, | |
"data-tight": t.attrs.tight ? "true" : null | |
}, 0] | |
} | |
}, | |
bullet_list: { | |
content: "list_item+", | |
group: "block", | |
attrs: { | |
tight: { | |
default: !1 | |
} | |
}, | |
parseDOM: [{ | |
tag: "ul", | |
getAttrs: t => ({ | |
tight: t.hasAttribute("data-tight") | |
}) | |
}], | |
toDOM(t) { | |
return ["ul", { | |
"data-tight": t.attrs.tight ? "true" : null | |
}, 0] | |
} | |
}, | |
list_item: { | |
content: "paragraph block*", | |
defining: !0, | |
parseDOM: [{ | |
tag: "li" | |
}], | |
toDOM() { | |
return ["li", 0] | |
} | |
}, | |
text: { | |
group: "inline" | |
}, | |
image: { | |
inline: !0, | |
attrs: { | |
src: {}, | |
alt: { | |
default: null | |
}, | |
title: { | |
default: null | |
} | |
}, | |
group: "inline", | |
draggable: !0, | |
parseDOM: [{ | |
tag: "img[src]", | |
getAttrs(t) { | |
return { | |
src: t.getAttribute("src"), | |
title: t.getAttribute("title"), | |
alt: t.getAttribute("alt") | |
} | |
} | |
}], | |
toDOM(t) { | |
return ["img", t.attrs] | |
} | |
}, | |
hard_break: { | |
inline: !0, | |
group: "inline", | |
selectable: !1, | |
parseDOM: [{ | |
tag: "br" | |
}], | |
toDOM() { | |
return ["br"] | |
} | |
} | |
}, | |
marks: { | |
em: { | |
parseDOM: [{ | |
tag: "i" | |
}, { | |
tag: "em" | |
}, { | |
style: "font-style", | |
getAttrs: t => t == "italic" && null | |
}], | |
toDOM() { | |
return ["em"] | |
} | |
}, | |
strong: { | |
parseDOM: [{ | |
tag: "b" | |
}, { | |
tag: "strong" | |
}, { | |
style: "font-weight", | |
getAttrs: t => /^(bold(er)?|[5-9]\d{2,})$/.test(t) && null | |
}], | |
toDOM() { | |
return ["strong"] | |
} | |
}, | |
link: { | |
attrs: { | |
href: {}, | |
title: { | |
default: null | |
} | |
}, | |
inclusive: !1, | |
parseDOM: [{ | |
tag: "a[href]", | |
getAttrs(t) { | |
return { | |
href: t.getAttribute("href"), | |
title: t.getAttribute("title") | |
} | |
} | |
}], | |
toDOM(t) { | |
return ["a", t.attrs] | |
} | |
}, | |
code: { | |
parseDOM: [{ | |
tag: "code" | |
}], | |
toDOM() { | |
return ["code"] | |
} | |
} | |
} | |
}); | |
function zX(t, e) { | |
if (t.isText && e.isText && qo.sameSet(t.marks, e.marks)) return t.withText(t.text + e.text) | |
} | |
class qX { | |
constructor(e, n) { | |
this.schema = e, this.tokenHandlers = n, this.stack = [{ | |
type: e.topNodeType, | |
attrs: null, | |
content: [], | |
marks: qo.none | |
}] | |
} | |
top() { | |
return this.stack[this.stack.length - 1] | |
} | |
push(e) { | |
this.stack.length && this.top().content.push(e) | |
} | |
addText(e) { | |
if (!e) return; | |
let n = this.top(), | |
s = n.content, | |
a = s[s.length - 1], | |
o = this.schema.text(e, n.marks), | |
r; | |
a && (r = zX(a, o)) ? s[s.length - 1] = r : s.push(o) | |
} | |
openMark(e) { | |
let n = this.top(); | |
n.marks = e.addToSet(n.marks) | |
} | |
closeMark(e) { | |
let n = this.top(); | |
n.marks = e.removeFromSet(n.marks) | |
} | |
parseTokens(e) { | |
for (let n = 0; n < e.length; n++) { | |
let s = e[n], | |
a = this.tokenHandlers[s.type]; | |
if (!a) throw new Error("Token type `" + s.type + "` not supported by Markdown parser"); | |
a(this, s, e, n) | |
} | |
} | |
addNode(e, n, s) { | |
let a = this.top(), | |
o = e.createAndFill(n, s, a ? a.marks : []); | |
return o ? (this.push(o), o) : null | |
} | |
openNode(e, n) { | |
this.stack.push({ | |
type: e, | |
attrs: n, | |
content: [], | |
marks: qo.none | |
}) | |
} | |
closeNode() { | |
let e = this.stack.pop(); | |
return this.addNode(e.type, e.attrs, e.content) | |
} | |
} | |
function Vn(t, e, n, s) { | |
return t.getAttrs ? t.getAttrs(e, n, s) : t.attrs instanceof Function ? t.attrs(e) : t.attrs | |
} | |
function ko(t, e) { | |
return t.noCloseToken || e == "code_inline" || e == "code_block" || e == "fence" | |
} | |
function Xc(t) { | |
return t[t.length - 1] == ` | |
` ? t.slice(0, t.length - 1) : t | |
} | |
function _o() {} | |
function FX(t, e) { | |
let n = Object.create(null); | |
for (let s in e) { | |
let a = e[s]; | |
if (a.block) { | |
let o = t.nodeType(a.block); | |
ko(a, s) ? n[s] = (r, i, c, l) => { | |
r.openNode(o, Vn(a, i, c, l)), r.addText(Xc(i.content)), r.closeNode() | |
} : (n[s + "_open"] = (r, i, c, l) => r.openNode(o, Vn(a, i, c, l)), n[s + "_close"] = r => r.closeNode()) | |
} else if (a.node) { | |
let o = t.nodeType(a.node); | |
n[s] = (r, i, c, l) => r.addNode(o, Vn(a, i, c, l)) | |
} else if (a.mark) { | |
let o = t.marks[a.mark]; | |
ko(a, s) ? n[s] = (r, i, c, l) => { | |
r.openMark(o.create(Vn(a, i, c, l))), r.addText(Xc(i.content)), r.closeMark(o) | |
} : (n[s + "_open"] = (r, i, c, l) => r.openMark(o.create(Vn(a, i, c, l))), n[s + "_close"] = r => r.closeMark(o)) | |
} else if (a.ignore) ko(a, s) ? n[s] = _o : (n[s + "_open"] = _o, n[s + "_close"] = _o); | |
else throw new RangeError("Unrecognized parsing spec " + JSON.stringify(a)) | |
} | |
return n.text = (s, a) => s.addText(a.content), n.inline = (s, a) => s.parseTokens(a.children), n.softbreak = n.softbreak || (s => s.addText(` | |
`)), n | |
} | |
class jX { | |
constructor(e, n, s) { | |
this.schema = e, this.tokenizer = n, this.tokens = s, this.tokenHandlers = FX(e, s) | |
} | |
parse(e, n = {}) { | |
let s = new qX(this.schema, this.tokenHandlers), | |
a; | |
s.parseTokens(this.tokenizer.parse(e, n)); | |
do a = s.closeNode(); while (s.stack.length); | |
return a || this.schema.topNodeType.createAndFill() | |
} | |
} | |
function Zc(t, e) { | |
for (; ++e < t.length;) | |
if (t[e].type != "list_item_open") return t[e].hidden; | |
return !1 | |
} | |
const $X = new jX(Wr, BX("commonmark", { | |
html: !1 | |
}), { | |
blockquote: { | |
block: "blockquote" | |
}, | |
paragraph: { | |
block: "paragraph" | |
}, | |
list_item: { | |
block: "list_item" | |
}, | |
bullet_list: { | |
block: "bullet_list", | |
getAttrs: (t, e, n) => ({ | |
tight: Zc(e, n) | |
}) | |
}, | |
ordered_list: { | |
block: "ordered_list", | |
getAttrs: (t, e, n) => ({ | |
order: +t.attrGet("start") || 1, | |
tight: Zc(e, n) | |
}) | |
}, | |
heading: { | |
block: "heading", | |
getAttrs: t => ({ | |
level: +t.tag.slice(1) | |
}) | |
}, | |
code_block: { | |
block: "code_block", | |
noCloseToken: !0 | |
}, | |
fence: { | |
block: "code_block", | |
getAttrs: t => ({ | |
params: t.info || "" | |
}), | |
noCloseToken: !0 | |
}, | |
hr: { | |
node: "horizontal_rule" | |
}, | |
image: { | |
node: "image", | |
getAttrs: t => ({ | |
src: t.attrGet("src"), | |
title: t.attrGet("title") || null, | |
alt: t.children[0] && t.children[0].content || null | |
}) | |
}, | |
hardbreak: { | |
node: "hard_break" | |
}, | |
em: { | |
mark: "em" | |
}, | |
strong: { | |
mark: "strong" | |
}, | |
link: { | |
mark: "link", | |
getAttrs: t => ({ | |
href: t.attrGet("href"), | |
title: t.attrGet("title") || null | |
}) | |
}, | |
code_inline: { | |
mark: "code", | |
noCloseToken: !0 | |
} | |
}), | |
qp = ({ | |
node: t | |
}) => { | |
const e = t.attrs, | |
{ | |
iTemplate: n | |
} = ue(); | |
return p(wt, { | |
className: "directMessage", | |
"data-drag-handle": "" | |
}, p(bu, null, p(Y, { | |
alignItems: "center", | |
justifyContent: "center", | |
flex: "grow", | |
style: { | |
marginBottom: "20px" | |
} | |
}, p(ta, { | |
priority: "primary", | |
leading: p(Rg, { | |
size: 20 | |
}) | |
}, n `Message ${e.userName}`)))) | |
}, | |
Fp = ({ | |
attrs: t | |
}) => { | |
const e = {}; | |
for (const [n, s] of Object.entries(t)) e[n] = na(s, ["default"]); | |
return e | |
}, | |
UX = "_blockContainer_19kps_1", | |
VX = "_blockTitleContainer_19kps_13", | |
HX = "_blockTitle_19kps_13", | |
GX = "_blockSubTitle_19kps_34", | |
WX = "_inlineContainer_19kps_48", | |
JX = "_inlineText_19kps_58", | |
gn = { | |
blockContainer: UX, | |
blockTitleContainer: VX, | |
blockTitle: HX, | |
blockSubTitle: GX, | |
inlineContainer: WX, | |
inlineText: JX | |
}; | |
function Oe({ | |
msg: t, | |
node: e, | |
err: n, | |
group: s | |
}) { | |
se(ae.EDITOR_NODE_RENDER_FAILED, { | |
nodeType: e.type.name, | |
nodeAttrs: e.attrs, | |
errMsg: n == null ? void 0 : n.message | |
}); | |
const a = t != null ? t : "Something went wrong"; | |
return s === "block" ? YX({ | |
msg: a | |
}) : KX({ | |
msg: a | |
}) | |
} | |
function jp({ | |
size: t | |
}) { | |
const e = "http://www.w3.org/2000/svg", | |
n = document.createElementNS(e, "svg"); | |
n.setAttribute("width", `${t}`), n.setAttribute("height", `${t}`), n.setAttribute("viewBox", "0 0 24 24"), n.setAttribute("fill", "none"), n.setAttribute("stroke", "#363737"), n.setAttribute("stroke-width", "2"), n.setAttribute("stroke-linecap", "round"), n.setAttribute("stroke-linejoin", "round"); | |
const s = document.createElementNS(e, "circle"); | |
s.setAttribute("d", "M12 8V12M12 16H12.01M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z"), s.setAttribute("cx", "12"), s.setAttribute("cy", "12"), s.setAttribute("r", "10"); | |
const a = document.createElementNS(e, "line"); | |
a.setAttribute("x1", "12"), a.setAttribute("x2", "12"), a.setAttribute("y1", "8"), a.setAttribute("y2", "12"); | |
const o = document.createElementNS(e, "line"); | |
return o.setAttribute("x1", "12"), o.setAttribute("x2", "12.01"), o.setAttribute("y1", "16"), o.setAttribute("y2", "16"), n.appendChild(s), n.appendChild(a), n.appendChild(o), n | |
} | |
function YX({ | |
msg: t | |
}) { | |
const e = document.createElement("div"); | |
e.className = gn.blockContainer; | |
const n = document.createElement("div"); | |
n.textContent = t, n.className = gn.blockTitle; | |
const s = document.createElement("div"); | |
s.textContent = "Try refreshing the page or try again later.", s.className = gn.blockSubTitle; | |
const a = document.createElement("div"); | |
return a.className = gn.blockTitleContainer, a.appendChild(n), a.appendChild(s), e.appendChild(jp({ | |
size: 24 | |
})), e.appendChild(a), e | |
} | |
function KX({ | |
msg: t | |
}) { | |
const e = document.createElement("span"); | |
e.className = gn.inlineContainer; | |
const n = document.createElement("span"); | |
return n.className = gn.inlineText, n.textContent = t, e.appendChild(jp({ | |
size: 10 | |
})), e.appendChild(n), e | |
} | |
var XX = ig; | |
function ZX(t, e) { | |
for (var n = t.length; n-- && XX(e, t[n], 0) > -1;); | |
return n | |
} | |
var QX = ZX, | |
eZ = Ef, | |
tZ = Af, | |
nZ = QX, | |
Qc = Sf, | |
sZ = Tf, | |
aZ = cg; | |
function oZ(t, e, n) { | |
if (t = sZ(t), t && (n || e === void 0)) return t.slice(0, aZ(t) + 1); | |
if (!t || !(e = eZ(e))) return t; | |
var s = Qc(t), | |
a = nZ(s, Qc(e)) + 1; | |
return tZ(s, 0, a).join("") | |
} | |
var rZ = oZ; | |
const iZ = lr(rZ), | |
$p = [ | |
["list_item", "listItem"], | |
["bullet_list", "bulletList"], | |
["ordered_list", "orderedList"], | |
["hard_break", "hardBreak"], | |
["horizontal_rule", "horizontalRule"], | |
["code_block", "codeBlock"] | |
], | |
Up = [ | |
["em", "italic"], | |
["strong", "bold"], | |
["strikethrough", "strike"] | |
], | |
el = { | |
image2: 1, | |
image: 0, | |
horizontal_rule: 0, | |
youtube: 0, | |
youtube2: 0, | |
vimeo: 0, | |
opensea: 0, | |
twitter: 0, | |
twitter2: 0, | |
spotify: 0, | |
spotify2: 0, | |
soundcloud: 0, | |
bandcamp: 0, | |
kindle: 0, | |
tiktok: 0, | |
prediction_market: 0, | |
lichess: 0, | |
datawrapper: 0, | |
recipe: 0 | |
}, | |
cZ = 100, | |
lZ = (t, { | |
maxLength: e = 356, | |
getAfterCutoff: n = !1, | |
withEllipsis: s = !1 | |
} = {}) => { | |
let a = "", | |
o = !1; | |
const r = {}, | |
i = Zp(t); | |
let c = !1; | |
const l = Tn(t, u => { | |
var f; | |
if (o) return n; | |
if (u.type === "paywall") return o = !0, !1; | |
if (i) return !0; | |
const d = (f = u.type) != null ? f : "undefined"; | |
if (r[d] = (r[d] || 0) + 1, u.type && u.type in el && r[d] > el[u.type]) return o = !0, n; | |
const m = e - a.length; | |
if (m <= 0 && !i) return n; | |
if (m > 0) { | |
if (n) { | |
if (u.type === "text" && u.text) | |
if (a += u.text, e - a.length <= 0) u.text = u.text.substring(u.text.length + e - a.length - 1, u.text.length); | |
else return !1 | |
} else if (u.type === "text" && u.text) { | |
a += u.text; | |
const h = u.text; | |
u.text = it(h, m), c = h !== u.text | |
} | |
} else return n; | |
return !0 | |
}); | |
if (l && s && !c) { | |
const u = uZ(l); | |
let d = null, | |
m = null; | |
for (let g = u.length - 1; g >= 0 && !(d && m); g--) { | |
const b = u[g]; | |
d === null && b.type === "text" && (d = g), m === null && b.type !== "text" && b.type !== "paragraph" && (m = g) | |
} | |
const f = d !== null ? u[d] : null, | |
h = f && m !== null && d !== null && m > d; | |
f && !h && (f.text = hZ(f.text)) | |
} | |
return l | |
}; | |
function Tn(t, e) { | |
if (!t || (Vo(t) || Hi(t)) && !e(t)) return null; | |
if (Vo(t) && t.content && t.content.length > 0) { | |
const n = e; | |
if (t.content = t.content.filter(s => Tn(s, n)), t.content.length === 0) return null | |
} else if (Hi(t)) { | |
const n = mt({ | |
fragment: t.content | |
}), | |
s = e; | |
if (n.length > 0) { | |
const a = n.filter(o => Tn(o, s)); | |
if (a.length === 0) return null; | |
lg({ | |
fragment: t.content, | |
content: a | |
}) | |
} | |
} | |
return t | |
} | |
function uZ(t) { | |
var s; | |
const e = [], | |
n = [t]; | |
for (; n.length;) { | |
const a = n.pop(); | |
if (!a) break; | |
if (a.content && ((s = a.content) == null ? void 0 : s.length) > 0) | |
for (let o = a.content.length - 1; o >= 0; o--) n.push(a.content[o]); | |
else e.push(a) | |
} | |
return e | |
} | |
const Vp = (t, e) => { | |
let n = []; | |
if (t && (e(t) && n.push(t), t.content)) | |
for (const s of t.content) n = n.concat(Vp(s, e)); | |
return n | |
}, | |
Bn = (t, e) => { | |
if (t) { | |
if (e(t)) return t; | |
if (t.content) | |
for (const n of t.content) { | |
const s = Bn(n, e); | |
if (s) return s | |
} | |
} | |
return null | |
}, | |
pZ = t => { | |
const e = []; | |
return t.nodesBetween(0, t.content.size, n => { | |
var s; | |
((s = n.type) == null ? void 0 : s.name) === "cashtag" && e.push(n.attrs.symbol) | |
}, 0), e | |
}, | |
dZ = new Set(["caption", "footnote", "captionedImage", "image", "image2"]), | |
mZ = new Set(["bullet_list", "bulletList", "ordered_list", "orderedList", "blockquote"]), | |
Zo = "x_li_start_placeholder_x", | |
tl = (t, e) => { | |
var n, s, a, o; | |
if (((n = t.type) == null ? void 0 : n.name) === "list_item" || ((s = t.type) == null ? void 0 : s.name) === "listItem") return { | |
open: Zo, | |
close: "" | |
}; | |
if (((a = t.type) == null ? void 0 : a.name) === "paragraph" || t.isBlock && t.textContent.length > 0 && !mZ.has((o = t.type) == null ? void 0 : o.name)) { | |
let r = "<p>"; | |
return (e.length > 0 ? e[e.length - 1] : null) === Zo && (e.pop(), r += "* "), { | |
open: r, | |
close: "</p>" | |
} | |
} | |
return null | |
}, | |
Hp = ({ | |
node: t, | |
recursiveDepth: e, | |
tokens: n | |
}) => { | |
var a, o; | |
if (e > cZ) return console.warn("Reached max recursive depth while converting document to HTML for podcast"), !1; | |
let s = !0; | |
if (dZ.has((a = t.type) == null ? void 0 : a.name)) s = !1; | |
else if (t.isText) { | |
if (t.text && t.text.length > 0) { | |
const r = t.marks.filter(u => u.type.name === "link" && u.attrs.href)[0], | |
i = t.marks.filter(u => u.type.name === "em")[0], | |
c = t.marks.filter(u => u.type.name === "strong")[0], | |
l = t.text; | |
i ? n.push(`<em>${l}</em>`) : c ? n.push(`<strong>${l}</strong>`) : r ? n.push(`<a target="_blank" href="${Uo(r.attrs.href)}">${l}</a>`) : n.push(l) | |
} | |
} else if (tl(t, [])) { | |
const r = tl(t, n); | |
r && n.push(r.open), t.descendants(i => Hp({ | |
node: i, | |
recursiveDepth: e + 1, | |
tokens: n | |
})), r && n.push(r.close), s = !1 | |
} else((o = t.type) == null ? void 0 : o.name) === "cashtag" && n.push(`${t.attrs.symbol} `); | |
return s | |
}, | |
fZ = t => { | |
const e = []; | |
return t.descendants(n => Hp({ | |
node: n, | |
recursiveDepth: 1, | |
tokens: e | |
})), e.filter(n => n !== Zo).join("").trim() | |
}, | |
Gp = (t, { | |
withLinks: e = !0, | |
withCaptionsAndFootnotes: n = !1, | |
forPodcast: s = !1, | |
truncateAt: a = null, | |
truncateTo: o = a, | |
truncateEllipsis: r = "…", | |
truncateExtension: i = null | |
} = {}) => { | |
let c = "", | |
l = "", | |
u = "", | |
d = !0; | |
return t.nodesBetween(0, t.content.size, m => { | |
var f, h, g, b; | |
if (!n && ["caption", "footnote"].includes((f = m.type) == null ? void 0 : f.name)) return !1; | |
if (m.isText) { | |
if (m.text && m.text.length > 0) { | |
d = !1; | |
let x; | |
!Ue(o) && c.length < o && c.length + m.text.length >= o && (x = it(m.text, o - c.length, { | |
ellipsis: r, | |
extension: i | |
})); | |
const v = m.marks.filter(k => k.type.name === "link" && k.attrs.href)[0], | |
w = m.marks.filter(k => k.type.name === "em")[0], | |
E = m.marks.filter(k => k.type.name === "strong")[0]; | |
let _ = m.text; | |
c += _, w && s && (x && (x = `<em>${x}</em>`), _ = `<em>${_}</em>`), E && s && (x && (x = `<strong>${x}</strong>`), _ = `<strong>${_}</strong>`), !v || !e ? (x && (u = l + x), l += _) : s ? (x && (u = `${l}<a target="_blank" href="${Uo(v.attrs.href)}">${x}</a>`), l += `<a target="_blank" href="${Uo(v.attrs.href)}">${_}</a>`) : (x && (u = `${l}${x} [ ${v.attrs.href} ]`), l += `${_} [ ${v.attrs.href} ]`) | |
} | |
} else !d && ["hard_break", "hardBreak"].includes((h = m.type) == null ? void 0 : h.name) ? (d = !0, c += ` | |
`, s ? l += "<br/>" : l += ` | |
`) : !d && m.isBlock ? (d = !0, c += ` | |
`, s ? l += "<br/><br/>" : l += ` | |
`) : ((g = m.type) == null ? void 0 : g.name) === "cashtag" ? l += `${m.attrs.symbol} ` : ((b = m.type) == null ? void 0 : b.name) === "substack_mentions" && (l += `${m.attrs.name} `) | |
}, 0), !Ue(a) && c.length > a && u && (l = u), l = l.trim(), s && (l = l.replace(/\s*(<br\/>)+$/, "").trim()), l | |
}, | |
hZ = t => `${iZ(t,".")}...`, | |
gZ = (t, e) => P(S({ | |
name: t | |
}, e), { | |
addAttributes() { | |
return e.attrs || {} | |
}, | |
parseHTML() { | |
return e.parseDOM | |
}, | |
renderHTML({ | |
node: n | |
}) { | |
return e.toDOM ? e.toDOM(n) : (console.warn("trying to create TipTapNode, no toDOM found for node", t), ["span"]) | |
} | |
}), | |
bZ = (t, e) => { | |
let n, s, a; | |
if (t.doc.nodesBetween(t.selection.from, t.selection.to, (o, r) => { | |
if (n || s) return !1; | |
const i = o.marks.find(c => c.type === e); | |
i && (n = o, s = i, a = { | |
from: r, | |
to: r + o.nodeSize | |
}) | |
}), !!n) return { | |
node: n, | |
mark: s, | |
pos: a | |
} | |
}, | |
Qo = (t, e) => { | |
var o, r; | |
let n, s, a; | |
if (t.doc.nodesBetween(t.selection.from, t.selection.to, (i, c) => { | |
if (n || s) return !1; | |
if (c <= t.selection.from && t.selection.to <= c + i.nodeSize) { | |
const l = i.marks.find(u => u.type === e); | |
l && (n = i, s = l, a = { | |
from: c, | |
to: c + i.nodeSize | |
}) | |
} else return !1 | |
}), !n) { | |
if (t.selection.empty) { | |
const i = t.doc.resolve(t.selection.from), | |
c = i.nodeBefore && i.nodeBefore.marks.find(u => u.type === e), | |
l = i.nodeAfter && i.nodeAfter.marks.find(u => u.type === e); | |
(c || l) && (n = l ? i.nodeAfter : i.nodeBefore, s = l || c, a = l ? { | |
from: i.pos, | |
to: i.pos + i.nodeAfter.nodeSize | |
} : { | |
from: i.pos - ((r = (o = i.nodeBefore) == null ? void 0 : o.nodeSize) != null ? r : 0), | |
to: i.pos | |
}) | |
} | |
if (!n) return | |
} | |
return { | |
node: n, | |
mark: s, | |
pos: a | |
} | |
}, | |
vZ = (t, { | |
allowedMarks: e = [] | |
} = {}) => t.selection.empty ? !0 : Wp(t, t.selection.from, t.selection.to, { | |
allowedMarks: e | |
}), | |
Wp = (t, e, n, { | |
allowedMarks: s = [] | |
} = {}) => { | |
let a = !0, | |
o = !1; | |
return t.doc.nodesBetween(e, n, r => { | |
if (!a) return !1; | |
r.type !== t.schema.nodes.text ? o ? a = !1 : o = !0 : r.marks.find(i => !s.includes(i.type)) && (a = !1) | |
}), a | |
}, | |
er = (t, e) => { | |
var s; | |
if (t.selection.empty) return !1; | |
const n = Array.isArray(e) ? e : [e]; | |
if ("node" in t.selection) { | |
const a = t.selection; | |
return n.includes((s = a.node) == null ? void 0 : s.type) | |
} | |
return xZ(t, t.selection.from, t.selection.to, n) | |
}, | |
xZ = (t, e, n, s) => { | |
let a = null; | |
return t.doc.nodesBetween(e, n, o => { | |
if (a !== !1 && s.includes(o.type)) a = !0; | |
else return a = !1, !1 | |
}), a || !1 | |
}, | |
da = t => t.selection.empty ? null : yZ(t, t.selection.from, t.selection.to), | |
yZ = (t, e, n) => { | |
let s = null; | |
return t.doc.nodesBetween(e, n, a => { | |
if (s) return !1; | |
if (a.type === t.schema.nodes.image2) return s = a.attrs.href, !1; | |
a.type === t.schema.nodes.image3 && (s = a.attrs.href) | |
}), s || null | |
}, | |
Jp = (t, e, n) => { | |
t.selection.empty || wZ(t, e, t.selection.from, t.selection.to, n) | |
}, | |
wZ = (t, e, n, s, a) => { | |
t.doc.nodesBetween(n, s, (o, r) => { | |
(o.type === t.schema.nodes.image2 || o.type === t.schema.nodes.image3) && e.setNodeMarkup(r, o.type, Object.assign({}, o.attrs, { | |
href: a | |
}), o.marks) | |
}) | |
}, | |
tr = t => ({ | |
top: t.top + window.scrollY, | |
bottom: t.bottom + window.scrollY, | |
left: t.left + window.scrollX, | |
right: t.right + window.scrollX | |
}), | |
Yp = (t, e, n, s) => { | |
const a = document.body, | |
o = window.innerWidth <= 481, | |
i = kZ(t, e.from, e.to, m => [t.state.schema.nodes.image, t.state.schema.nodes.image2].includes(m.type)) ? -44 : 8, | |
c = tr(t.coordsAtPos(e.from)), | |
l = tr(t.coordsAtPos(e.to)); | |
n.style.position = "fixed"; | |
const u = l.bottom + (o ? a.scrollTop : 0), | |
d = a.clientHeight - n.clientHeight - 96 - i; | |
c.top < l.top ? (s && (s.style.left = "10px"), n.style.right = "", n.style.left = `${Math.min(c.left,l.left)}px`) : a.clientWidth - c.left > n.clientWidth ? (s && (s.style.left = "10px"), n.style.right = "", n.style.left = `${c.left}px`) : (s && (s.style.left = `${c.left-a.clientWidth+n.clientWidth}px`), n.style.right = "10px", n.style.left = ""), o || u < d ? (s && (s.style.top = "-9px", s.style.bottom = "auto", s.style.transform = ""), n.style.top = `${u+i}px`) : (s && (s.style.top = "auto", s.style.bottom = "-9px", s.style.transform = "rotate(180deg)"), n.style.top = `${d+i}px`) | |
}, | |
kZ = (t, e, n, s) => { | |
let a = !1; | |
return t.state.doc.nodesBetween(e, n, o => { | |
if (a) return !1; | |
a = s(o) | |
}), a | |
}, | |
Wt = (t, e) => N(void 0, null, function*() { | |
return Ca.maxOpen(yield Kp(t.content, e)) | |
}), | |
Kp = (t, e, n) => N(void 0, null, function*() { | |
let s = []; | |
for (let a = 0; a < t.childCount; a++) { | |
let o = t.child(a); | |
o.content.childCount && (o = o.copy(yield Kp(o.content, e, o))), o = yield e(o, a, n), Array.isArray(o) || (o = [o]), s = s.concat(br(o)) | |
} | |
return s = yield Promise.all(s), s = s.map(a => { | |
if (!(a != null && a.content.childCount)) return [a]; | |
const o = []; | |
let r = []; | |
for (let i = 0; i < a.content.childCount; i++) { | |
const c = a.content.child(i); | |
CZ(a, c) ? r.push(c) : (o.push(a.copy(Kt.fromArray(r))), r = [], o.push(c)) | |
} | |
return r.length && o.push(a.copy(Kt.fromArray(r))), o | |
}).reduce((a, o) => a.concat(o), []), s = s.filter(a => a && !(a.type.name === "text" && !a.text) && !(a.type.name === "paragraph" && !a.content.childCount)), Kt.fromArray(s) | |
}), | |
nl = (t, e, n) => Ca.maxOpen(Xp(t.content, e, n)), | |
Xp = (t, e, n) => { | |
n = n || (o => o); | |
const s = []; | |
let a; | |
for (let o = 0; o < t.childCount; o++) { | |
let r = t.child(o); | |
if (e(r)) a = a || [], a.push(r); | |
else { | |
if (a) { | |
const [i, ...c] = n(a); | |
s.push(sl(i, ...c)), a = null | |
} | |
r.content.childCount && (r = r.copy(Xp(r.content, e, n))), s.push(r) | |
} | |
} | |
if (a) { | |
const [o, ...r] = n(a); | |
s.push(sl(o, ...r)), a = null | |
} | |
return Kt.fromArray(s) | |
}, | |
sl = (t, ...e) => { | |
let n = t.content; | |
for (const s of e) n = n.append(s.content); | |
return t.copy(n) | |
}, | |
_Z = t => { | |
if (!t) return !0; | |
let e; | |
if (typeof t == "string") try { | |
e = JSON.parse(t) | |
} catch (n) { | |
return console.error("Could not parse doc", t), !1 | |
} else e = t; | |
if (!e || e.type !== "doc" || !Array.isArray(e.content)) return console.error("Could not parse doc", e), !1; | |
for (const n of e.content) { | |
if (!n || typeof n != "object") return console.error("Could not parse doc", e), !1; | |
if (n.type !== "paragraph") return !1; | |
if (n.content) { | |
if (!Array.isArray(n.content)) return console.error("Could not parse doc", e), !1; | |
if (n.type !== "text" || n.text && n.text.trim()) return !1 | |
} | |
} | |
return !0 | |
}, | |
CZ = (t, e) => { | |
const n = ["list_item", "listItem"].includes(t.type.name), | |
s = ["bullet_list", "bulletList", "ordered_list", "orderedList"].includes(e.type.name); | |
return n && s ? !0 : !!t.type.contentMatch && !!t.type.contentMatch.matchType(e.type) | |
}, | |
EZ = t => t.doc.resolve(t.selection.from).node(1), | |
AZ = (t, e) => { | |
var n; | |
return e.includes((n = EZ(t)) == null ? void 0 : n.type) | |
}, | |
ie = (t, e) => { | |
var r, i, c; | |
const n = t.tr, | |
s = n.selection instanceof Ee, | |
o = s && ((c = (i = (r = n.selection.$from) == null ? void 0 : r.parent) == null ? void 0 : i.content) == null ? void 0 : c.size) === 0 ? t.selection.to - 1 : t.selection.to; | |
if (Array.isArray(e)) | |
for (const l of e.slice().reverse()) n.insert(o, l); | |
else n.insert(o, e); | |
return s || n.setSelection(Je.near(n.doc.resolve(o))), n | |
}, | |
SZ = (t, e) => { | |
const n = t.tr; | |
return n.replaceSelectionWith(e), n | |
}, | |
Le = (t, e) => { | |
const n = t.selection.$from; | |
for (let s = n.depth; s >= 0; s--) { | |
const a = n.index(s); | |
if (n.node(s).canReplaceWith(a, a, e)) return !0 | |
} | |
return !1 | |
}, | |
Zp = t => !!Bn(t, e => e.type === "paywall"), | |
TZ = ({ | |
attrs: t | |
}) => { | |
var n; | |
const e = {}; | |
if (!t) return e; | |
for (const [s, a] of Object.entries(t)) e[s] = { | |
default: (n = a.default) != null ? n : null, | |
keepOnSplit: !1 | |
}; | |
return e | |
}, | |
F = ({ | |
name: t, | |
nodeSpec: e, | |
addNodeView: n, | |
addCommands: s | |
}) => Qt.create({ | |
name: t, | |
content: e.content, | |
marks: e.marks, | |
group: e.group, | |
inline: e.inline, | |
atom: e.atom, | |
selectable: e.selectable, | |
draggable: e.draggable, | |
code: e.code, | |
whitespace: e.whitespace, | |
defining: e.defining, | |
isolating: e.isolating, | |
addNodeView: n, | |
addCommands: s, | |
renderHTML(a) { | |
return this.options.isStatic && e.toDOMStatic ? e.toDOMStatic(a.node) : e.toDOM(a.node) | |
}, | |
parseHTML() { | |
return e.parseDOM | |
}, | |
addAttributes() { | |
return TZ({ | |
attrs: e.attrs | |
}) | |
} | |
}), | |
DZ = ({ | |
doc: t, | |
extensions: e, | |
customDocument: n | |
}) => { | |
const s = lu(e), | |
a = uu.fromJSON(s, t), | |
o = document.createElement("div"); | |
return Ea.fromSchema(s).serializeFragment(a.content, { | |
document: n | |
}, o), o.innerHTML | |
}, | |
re = t => { | |
try { | |
if (typeof t != "string") { | |
const e = t.getAttribute("data-attrs"); | |
if (e) return JSON.parse(e) | |
} | |
} catch (e) { | |
return !1 | |
} | |
return !1 | |
}, | |
IZ = () => ({ | |
userId: { | |
default: null, | |
keepOnSplit: !1 | |
}, | |
userName: { | |
default: null, | |
keepOnSplit: !1 | |
}, | |
canDm: { | |
default: null, | |
keepOnSplit: !1 | |
}, | |
dmUpgradeOptions: { | |
default: null, | |
keepOnSplit: !1 | |
}, | |
isEditorNode: { | |
default: !1, | |
keepOnSplit: !1 | |
} | |
}), | |
zs = "directMessage", | |
Qp = { | |
name: zs, | |
group: "block", | |
selectable: !0, | |
inline: !1, | |
draggable: !0, | |
atom: !0, | |
attrs: Fp({ | |
attrs: IZ() | |
}), | |
parseDOM: [{ | |
tag: "div.directMessage", | |
getAttrs: t => { | |
try { | |
if (t instanceof HTMLElement) { | |
const e = t.getAttribute("data-attrs"); | |
if (e) return JSON.parse(e) | |
} | |
} catch (e) { | |
return !1 | |
} | |
return !1 | |
} | |
}], | |
toDOM: t => { | |
if (typeof window != "undefined" && t.attrs.isEditorNode) try { | |
t.attrs.isEditor = !0; | |
const n = document.createElement("div"); | |
return n.className = zs, n.setAttribute("data-attrs", JSON.stringify(t.attrs)), Fe(p(qp, { | |
node: S({}, t) | |
}), n), n | |
} catch (n) { | |
return console.error("Error rendering DirectMessageEditor", n), Oe({ | |
msg: null, | |
node: t, | |
err: n, | |
group: "block" | |
}) | |
} | |
return ["div", { | |
class: `${zs} button`, | |
"data-attrs": JSON.stringify(S({}, t.attrs)), | |
"data-component-name": "DirectMessageToDOM" | |
}] | |
}, | |
toDOMStatic: t => ["div", { | |
class: zs, | |
"data-attrs": JSON.stringify(P(S({}, t.attrs), { | |
isEmail: !0 | |
})), | |
"data-component-name": "DirectMessageToDOMStatic" | |
}] | |
}, | |
ed = Pe.create({ | |
name: "directMessageExtension", | |
addCommands() { | |
return { | |
insertDirectMessage: t => ({ | |
dispatch: e, | |
state: n | |
}) => { | |
const { | |
user: s | |
} = t, a = { | |
userName: s.name, | |
userId: s.id, | |
isEditorNode: !0 | |
}; | |
return e && e(ie(n, n.schema.nodes.directMessage.create(a))), !0 | |
} | |
} | |
} | |
}), | |
NZ = F({ | |
name: "directMessage", | |
nodeSpec: Qp, | |
addCommands: ed.addCommands, | |
addNodeView() { | |
return kt(qp) | |
} | |
}); | |
class Ve { | |
constructor(e, n) { | |
this.match = e, this.match = e, this.handler = typeof n == "string" ? MZ(n) : n | |
} | |
} | |
function MZ(t) { | |
return function(e, n, s, a) { | |
let o = t; | |
if (n[1]) { | |
let r = n[0].lastIndexOf(n[1]); | |
o += n[0].slice(r + n[1].length), s += r; | |
let i = s - a; | |
i > 0 && (o = n[0].slice(r - i, r) + o, s = a) | |
} | |
return e.tr.insertText(o, s, a) | |
} | |
} | |
const OZ = 500; | |
function LZ({ | |
rules: t | |
}) { | |
let e = new _t({ | |
state: { | |
init() { | |
return null | |
}, | |
apply(n, s) { | |
let a = n.getMeta(this); | |
return a || (n.selectionSet || n.docChanged ? null : s) | |
} | |
}, | |
props: { | |
handleTextInput(n, s, a, o) { | |
return al(n, s, a, o, t, e) | |
}, | |
handleDOMEvents: { | |
compositionend: n => { | |
setTimeout(() => { | |
let { | |
$cursor: s | |
} = n.state.selection; | |
s && al(n, s.pos, s.pos, "", t, e) | |
}) | |
} | |
} | |
}, | |
isInputRules: !0 | |
}); | |
return e | |
} | |
function al(t, e, n, s, a, o) { | |
if (t.composing) return !1; | |
let r = t.state, | |
i = r.doc.resolve(e); | |
if (i.parent.type.spec.code) return !1; | |
let c = i.parent.textBetween(Math.max(0, i.parentOffset - OZ), i.parentOffset, null, "") + s; | |
for (let l = 0; l < a.length; l++) { | |
let u = a[l].match.exec(c), | |
d = u && a[l].handler(r, u, e - (u[0].length - s.length), n); | |
if (d) return t.dispatch(d.setMeta(o, { | |
transform: d, | |
from: e, | |
to: n, | |
text: s | |
})), !0 | |
} | |
return !1 | |
} | |
const RZ = (t, e) => { | |
let n = t.plugins; | |
for (let s = 0; s < n.length; s++) { | |
let a = n[s], | |
o; | |
if (a.spec.isInputRules && (o = a.getState(t))) { | |
if (e) { | |
let r = t.tr, | |
i = o.transform; | |
for (let c = i.steps.length - 1; c >= 0; c--) r.step(i.steps[c].invert(i.docs[c])); | |
if (o.text) { | |
let c = r.doc.resolve(o.from).marks(); | |
r.replaceWith(o.from, o.to, t.schema.text(o.text, c)) | |
} else r.delete(o.from, o.to); | |
e(r) | |
} | |
return !0 | |
} | |
} | |
return !1 | |
}, | |
PZ = new Ve(/--$/, "—"), | |
BZ = new Ve(/\.\.\.$/, "…"), | |
zZ = new Ve(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(")$/, "“"), | |
qZ = new Ve(/"$/, "”"), | |
FZ = new Ve(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(')$/, "‘"), | |
jZ = new Ve(/'$/, "’"), | |
$Z = [zZ, qZ, FZ, jZ]; | |
function nr(t, e, n = null, s) { | |
return new Ve(t, (a, o, r, i) => { | |
let c = n instanceof Function ? n(o) : n, | |
l = a.tr.delete(r, i), | |
u = l.doc.resolve(r), | |
d = u.blockRange(), | |
m = d && Fo(d, e, c); | |
if (!m) return null; | |
l.wrap(d, m); | |
let f = l.doc.resolve(r - 1).nodeBefore; | |
return f && f.type == e && ph(l.doc, r - 1) && (!s || s(o, f)) && l.join(r - 1), l | |
}) | |
} | |
function ol(t, e, n = null) { | |
return new Ve(t, (s, a, o, r) => { | |
let i = s.doc.resolve(o), | |
c = n instanceof Function ? n(a) : n; | |
return i.node(-1).canReplaceWith(i.index(-1), i.indexAfter(-1), e) ? s.tr.delete(o, r).setBlockType(o, o, e, c) : null | |
}) | |
} | |
const UZ = ({ | |
filetype: t, | |
filename: e | |
}) => p("div", { | |
className: "file-embed-wrapper-editor" | |
}, p("div", { | |
className: "file-embed-aligner" | |
}, p("div", { | |
className: "file-embed-container placeholder" | |
}, p(td, null)))), | |
td = () => p("div", { | |
className: "embed-loader-container" | |
}, p("div", { | |
className: "embed-loader" | |
}), p("div", { | |
className: "embed-loader-text" | |
}, "Loading...")), | |
rl = new pu("substack-placeholder"); | |
class VZ extends _t { | |
add(e, n, s) { | |
n = n || e.state.selection.from, s = s || Fl; | |
const a = {}, | |
o = e.state.tr; | |
return o.setMeta(Ye, { | |
add: { | |
id: a, | |
pos: n, | |
url: s | |
} | |
}), e.dispatch(o), a | |
} | |
addFile(e, n, { | |
name: s, | |
type: a | |
}) { | |
n = n || e.state.selection.from; | |
const o = {}, | |
r = e.state.tr; | |
return r.setMeta(Ye, { | |
addFile: { | |
id: o, | |
pos: n, | |
name: s, | |
type: a | |
} | |
}), e.dispatch(r), o | |
} | |
remove(e, n) { | |
const a = Ye.getState(e.state).find(null, null, o => o.id == n); | |
if (a.length) { | |
const o = a[0].from, | |
r = e.state.tr; | |
return r.setMeta(Ye, { | |
remove: { | |
id: n | |
} | |
}), e.dispatch(r), o | |
} | |
return null | |
} | |
replace(e, n, s) { | |
const a = this.remove(e, n); | |
return a !== null ? (e.dispatch(e.state.tr.insert(a - 1, s)), !0) : !1 | |
} | |
} | |
const Ye = new VZ({ | |
state: { | |
init() { | |
return du.empty | |
}, | |
apply(t, e) { | |
e = e.map(t.mapping, t.doc); | |
const n = t.getMeta(rl); | |
if (n && n.add) { | |
const s = document.createElement("a"); | |
s.className = "image-link placeholder", s.href = "javascript:void(0)"; | |
const a = document.createElement("img"); | |
a.src = n.add.url, s.appendChild(a), s.ondrop = s.ondragstart = s.onmousedown = () => !1; | |
const o = jo.widget(n.add.pos, s, { | |
id: n.add.id | |
}); | |
e = e.add(t.doc, [o]) | |
} else if (n && n.addFile) { | |
const { | |
name: s, | |
type: a | |
} = n.addFile, o = document.createElement("div"); | |
ur(p(UZ, { | |
filename: s, | |
filetype: a | |
}), o); | |
const r = jo.widget(n.addFile.pos, o, { | |
id: n.addFile.id | |
}); | |
e = e.add(t.doc, [r]) | |
} else n && n.remove && (e = e.remove(e.find(void 0, void 0, s => s.id == n.remove.id))); | |
return e | |
} | |
}, | |
key: rl, | |
props: { | |
decorations(t) { | |
return this.getState(t) | |
} | |
} | |
}), | |
Se = t => { | |
const e = document.createElement("div"); | |
return e.innerHTML = t, { | |
dom: e.querySelector("svg") | |
} | |
}, | |
tn = (t, e) => { | |
if (!t.dom) return { | |
dom: null | |
}; | |
const n = document.createElement("div"); | |
n.className = "dropdown-item-container"; | |
const s = document.createElement("span"); | |
s.innerText = e; | |
const a = document.createElement("div"); | |
return a.className = "dropdown-item-svg", a.appendChild(t.dom), n.appendChild(a), n.appendChild(s), { | |
dom: n | |
} | |
}; | |
Se(` | |
<svg class="editor-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<g clip-path="url(#clip0)" fill="none"> | |
<path d="M7.33334 4L3.33334 8L7.33334 12" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M11.3333 19H15.8182C17.2809 19 18.6837 18.4205 19.718 17.3891C20.7523 16.3576 21.3333 14.9587 21.3333 13.5C21.3333 12.0413 20.7523 10.6424 19.718 9.61091C18.6837 8.57946 17.2809 8 15.8182 8H4.33334" stroke-linecap="round" stroke-linejoin="round"/> | |
</g> | |
</svg> | |
`); | |
Se(` | |
<svg class="editor-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<g clip-path="url(#clip0)" fill="none"> | |
<path d="M17.3334 4L21.3334 8L17.3334 12" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M13.3334 19H8.84853C7.38582 19 5.98302 18.4205 4.94873 17.3891C3.91443 16.3576 3.33337 14.9587 3.33337 13.5C3.33337 12.0413 3.91443 10.6424 4.94873 9.61091C5.98302 8.57946 7.38582 8 8.84853 8H20.3334" stroke-linecap="round" stroke-linejoin="round"/> | |
</g> | |
</svg> | |
`); | |
Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<path fill="none" d="M6.80005 5.60059H13.2C14.0487 5.60059 14.8627 5.93773 15.4628 6.53784C16.0629 7.13796 16.4 7.95189 16.4 8.80059C16.4 9.64928 16.0629 10.4632 15.4628 11.0633C14.8627 11.6634 14.0487 12.0006 13.2 12.0006H6.80005V5.60059Z" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/> | |
<path fill="none" d="M6.80005 12H14C14.8487 12 15.6627 12.3371 16.2628 12.9373C16.8629 13.5374 17.2 14.3513 17.2 15.2C17.2 16.0487 16.8629 16.8626 16.2628 17.4627C15.6627 18.0629 14.8487 18.4 14 18.4H6.80005V12Z" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/> | |
</svg> | |
`); | |
Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<g clip-path="url(#clip0)"> | |
<path d="M17.2671 6.10059H10.0671" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M13.2659 18.8994H6.06592" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M14.0666 6.10059L9.2666 18.9006" stroke-linecap="round" stroke-linejoin="round"/> | |
</g> | |
`); | |
Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<g clip-path="url(#clip0)" fill="none"> | |
<path fill="none" d="M14.866 5.60059H9.266C8.88195 5.60038 8.50345 5.69236 8.1623 5.86878C7.82116 6.04519 7.52734 6.30091 7.30552 6.61443C7.0837 6.92796 6.94036 7.29014 6.88755 7.67055C6.83473 8.05096 6.87399 8.43849 7.00201 8.80059" stroke-linecap="round" stroke-linejoin="round"/> | |
<path fill="none" d="M13.2667 12C14.1154 12 14.9293 12.3371 15.5294 12.9373C16.1296 13.5374 16.4667 14.3513 16.4667 15.2C16.4667 16.0487 16.1296 16.8626 15.5294 17.4627C14.9293 18.0629 14.1154 18.4 13.2667 18.4H6.8667" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M4.1665 12L19.1665 12" stroke-linecap="round" stroke-linejoin="round"/> | |
</g> | |
</svg> | |
`); | |
Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<g clip-path="url(#clip0)" fill="none"> | |
<path d="M17.6667 16.5L21.6667 12.5L17.6667 8.5" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M5.66675 8.5L1.66675 12.5L5.66675 16.5" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M14.1667 4.5L9.16675 20.5" stroke-linecap="round" stroke-linejoin="round"/> | |
</g> | |
`); | |
const HZ = Se(` | |
<svg class="link-item" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<g clip-path="url(#clip0)" fill="none"> | |
<g clip-path="url(#clip1)"> | |
<path d="M10.0671 13.3006C10.4107 13.7599 10.849 14.1399 11.3524 14.4149C11.8557 14.6899 12.4123 14.8535 12.9845 14.8944C13.5566 14.9354 14.1308 14.8529 14.6682 14.6524C15.2056 14.4519 15.6936 14.1382 16.0991 13.7326L18.4991 11.3326C19.2278 10.5781 19.6309 9.56774 19.6218 8.51895C19.6127 7.47017 19.192 6.46692 18.4504 5.72528C17.7088 4.98365 16.7055 4.56298 15.6567 4.55386C14.608 4.54475 13.5975 4.94793 12.8431 5.67656L11.4671 7.04456" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M13.2677 11.7008C12.9242 11.2415 12.4859 10.8614 11.9825 10.5864C11.4791 10.3114 10.9225 10.1479 10.3504 10.1069C9.7783 10.0659 9.20407 10.1485 8.66666 10.3489C8.12925 10.5494 7.64125 10.8631 7.23574 11.2688L4.83574 13.6688C4.10711 14.4232 3.70393 15.4336 3.71304 16.4824C3.72216 17.5312 4.14283 18.5344 4.88446 19.276C5.6261 20.0177 6.62935 20.4383 7.67813 20.4475C8.72692 20.4566 9.73733 20.0534 10.4917 19.3248L11.8597 17.9568" stroke-linecap="round" stroke-linejoin="round"/> | |
</g> | |
</g> | |
`); | |
Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<g clip-path="url(#clip0)"> | |
<path d="M7.66675 6.5H20.6667" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M7.66675 12.5H20.6667" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M7.66675 18.5H20.6667" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M2.66675 6.5H2.67633" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M2.66675 12.5H2.67633" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M2.66675 18.5H2.67633" stroke-linecap="round" stroke-linejoin="round"/> | |
</g> | |
</svg> | |
`); | |
Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<g fill="none"> | |
<path d="M9.66675 6.5H20.6667" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M9.66675 12.5H20.6667" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M9.66675 18.5H20.6667" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M3.66675 6.5H4.66675V10.5" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M3.66675 10.5H5.66675" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M5.66675 18.4999H3.66675C3.66675 17.4999 5.66675 16.4999 5.66675 15.4999C5.66675 14.4999 4.66675 13.9999 3.66675 14.4999" stroke-linecap="round" stroke-linejoin="round"/> | |
</g> | |
</svg> | |
`); | |
const GZ = Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<path fill="none" d="M5 15.5L5 18.5C5 19.0304 5.21071 19.5391 5.58579 19.9142C5.96086 20.2893 6.46957 20.5 7 20.5L18 20.5C18.5304 20.5 19.0391 20.2893 19.4142 19.9142C19.7893 19.5391 20 19.0304 20 18.5L20 7.5C20 6.96957 19.7893 6.46086 19.4142 6.08579C19.0391 5.71071 18.5304 5.5 18 5.5L16 5.5" stroke-linecap="round" stroke-linejoin="round"/> | |
<path fill="none" d="M9.5 10.5L12.5 7.5L9.5 4.5" stroke-linecap="round" stroke-linejoin="round"/> | |
<path fill="none" d="M5.5 4.5L2.5 7.5L5.5 10.5" stroke-linecap="round" stroke-linejoin="round"/> | |
</svg> | |
`), | |
WZ = Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<path d="M14.7143 15C14.7143 14.4696 14.9401 13.9609 15.3419 13.5858C15.7438 13.2107 16.2888 13 16.8571 13C17.4255 13 17.9705 13.2107 18.3724 13.5858C18.7742 13.9609 19 14.4696 19 15C19 15.5304 18.7742 16.0391 18.3724 16.4142C17.9705 16.7893 17.4255 17 16.8571 17C16.2888 17 15.7438 16.7893 15.3419 16.4142C14.9401 16.0391 14.7143 15.5304 14.7143 15ZM14.7143 15L16.8571 7M5.5 15C5.5 14.4696 5.72577 13.9609 6.12763 13.5858C6.52949 13.2107 7.07454 13 7.64286 13C8.21118 13 8.75622 13.2107 9.15809 13.5858C9.55995 13.9609 9.78571 14.4696 9.78571 15C9.78571 15.5304 9.55995 16.0391 9.15809 16.4142C8.75622 16.7893 8.21118 17 7.64286 17C7.07454 17 6.52949 16.7893 6.12763 16.4142C5.72577 16.0391 5.5 15.5304 5.5 15ZM5.5 15L7.64286 7" stroke-linecap="round" stroke-linejoin="round"/> | |
<circle cx="8" cy="15" r="1"stroke-linecap="round" stroke-linejoin="round"/> | |
<circle cx="17" cy="15" r="1"stroke-linecap="round" stroke-linejoin="round"/> | |
<circle cx="7.5" cy="15.5" r="0.5"stroke-linecap="round" stroke-linejoin="round"/> | |
<circle cx="16.5" cy="15.5" r="0.5"stroke-linecap="round" stroke-linejoin="round"/> | |
</svg> | |
`); | |
Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<path fill="none" d="M6.66699 8L2.66699 12L6.66699 16" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M22 6H11" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M22 12L16 12" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M22 18H11" stroke-linecap="round" stroke-linejoin="round"/> | |
</svg> | |
`); | |
Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<path fill="none" d="M2.66699 8L6.66699 12L2.66699 16" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M21 12L15 12" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M21 6H10" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M21 18H10" stroke-linecap="round" stroke-linejoin="round"/> | |
</svg> | |
`); | |
const JZ = Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<g fill="none" clip-path="url(#clip0_6402:84637)"> | |
<path d="M5.74356 7.80138L1.55483 19.3174" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M5.74212 7.80082L9.92942 19.3177" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M13.0703 7.80493V19.3212" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M8.35986 16.1787H3.12519" stroke-linecap="round" stroke-linejoin="round"/> | |
<ellipse cx="15.9501" cy="15.6565" rx="2.87907" ry="3.66427" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M21.4465 5L21.4465 10.9463" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M21.4465 5L19.3528 6.23506" stroke-linecap="round" stroke-linejoin="round"/> | |
</g> | |
</svg> | |
`), | |
YZ = Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<path fill="none" d="M19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3Z" stroke-linecap="round" stroke-linejoin="round"/> | |
<path fill="none" d="M8.5 10C9.32843 10 10 9.32843 10 8.5C10 7.67157 9.32843 7 8.5 7C7.67157 7 7 7.67157 7 8.5C7 9.32843 7.67157 10 8.5 10Z" stroke-linecap="round" stroke-linejoin="round"/> | |
<path fill="none" d="M21 15L16 10L5 21" stroke-linecap="round" stroke-linejoin="round"/> | |
</svg> | |
`), | |
KZ = Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<path d="M3 13H21" stroke-linecap="round" stroke-linejoin="round"/> | |
</svg> | |
`), | |
XZ = Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<path d="M12 1V23" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M17 5H9.5C8.57174 5 7.6815 5.36875 7.02513 6.02513C6.36875 6.6815 6 7.57174 6 8.5C6 9.42826 6.36875 10.3185 7.02513 10.9749C7.6815 11.6313 8.57174 12 9.5 12H12" fill="none" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M6 19H14.5C15.4283 19 16.3185 18.6313 16.9749 17.9749C17.6313 17.3185 18 16.4283 18 15.5C18 14.5717 17.6313 13.6815 16.9749 13.0251C16.3185 12.3687 15.4283 12 14.5 12H12" fill="none" stroke-linecap="round" stroke-linejoin="round"/> | |
</g> | |
</svg> | |
`), | |
ZZ = Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<path d="M18 9L18 6C18 5.46957 17.7893 4.96086 17.4142 4.58579C17.0391 4.21072 16.5304 4 16 4L5 4C4.46957 4 3.96086 4.21071 3.58579 4.58579C3.21071 4.96086 3 5.46957 3 6L3 13C3 13.5304 3.21071 14.0391 3.58578 14.4142C3.96086 14.7893 4.46957 15 5 15L7 15" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M9.03906 9.35059L14.0391 21.3506L15.8131 16.1246L21.0391 14.3506L9.03906 9.35059Z" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M16.1104 16.4214L20.3534 20.6644" stroke-linecap="round" stroke-linejoin="round"/> | |
</svg> | |
`), | |
QZ = Se(` | |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<path d="M19 12L12 5L15 2L22 9L19 12Z" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M13 6L5.5 7.5L2 22L16.5 18.5L18 11L13 6Z"stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M2 22L9.586 14.414" stroke-linecap="round" stroke-linejoin="round"/> | |
<path d="M13 13C13 11.8954 12.1046 11 11 11C9.89543 11 9 11.8954 9 13C9 14.1046 9.89543 15 11 15C12.1046 15 13 14.1046 13 13Z" stroke-linecap="round" stroke-linejoin="round"/> | |
</svg> | |
`); | |
tn(ZZ, "Buttons..."); | |
tn(GZ, "Code block"); | |
tn(JZ, "Footnote"); | |
tn(KZ, "Divider"); | |
tn(XZ, "Paywall"); | |
tn(QZ, "Poetry block"); | |
tn(WZ, "Pullquote"); | |
function eQ() { | |
var t = arguments[0]; | |
typeof t == "string" && (t = document.createElement(t)); | |
var e = 1, | |
n = arguments[1]; | |
if (n && typeof n == "object" && n.nodeType == null && !Array.isArray(n)) { | |
for (var s in n) | |
if (Object.prototype.hasOwnProperty.call(n, s)) { | |
var a = n[s]; | |
typeof a == "string" ? t.setAttribute(s, a) : a != null && (t[s] = a) | |
} | |
e++ | |
} | |
for (; e < arguments.length; e++) nd(t, arguments[e]); | |
return t | |
} | |
function nd(t, e) { | |
if (typeof e == "string") t.appendChild(document.createTextNode(e)); | |
else if (e != null) | |
if (e.nodeType != null) t.appendChild(e); | |
else if (Array.isArray(e)) | |
for (var n = 0; n < e.length; n++) nd(t, e[n]); | |
else throw new RangeError("Unsupported child node: " + e) | |
} | |
var ns = "http://www.w3.org/2000/svg", | |
tQ = "http://www.w3.org/1999/xlink", | |
sr = "ProseMirror-icon"; | |
function nQ(t) { | |
for (var e = 0, n = 0; n < t.length; n++) e = (e << 5) - e + t.charCodeAt(n) | 0; | |
return e | |
} | |
function sQ(t) { | |
var e = document.createElement("div"); | |
if (e.className = sr, t.path) { | |
var n = "pm-icon-" + nQ(t.path).toString(16); | |
document.getElementById(n) || aQ(n, t); | |
var s = e.appendChild(document.createElementNS(ns, "svg")); | |
s.style.width = t.width / t.height + "em"; | |
var a = s.appendChild(document.createElementNS(ns, "use")); | |
a.setAttributeNS(tQ, "href", /([^#]*)/.exec(document.location)[1] + "#" + n) | |
} else t.dom ? e.appendChild(t.dom.cloneNode(!0)) : (e.appendChild(document.createElement("span")).textContent = t.text || "", t.css && (e.firstChild.style.cssText = t.css)); | |
return e | |
} | |
function aQ(t, e) { | |
var n = document.getElementById(sr + "-collection"); | |
n || (n = document.createElementNS(ns, "svg"), n.id = sr + "-collection", n.style.display = "none", document.body.insertBefore(n, document.body.firstChild)); | |
var s = document.createElementNS(ns, "symbol"); | |
s.id = t, s.setAttribute("viewBox", "0 0 " + e.width + " " + e.height); | |
var a = s.appendChild(document.createElementNS(ns, "path")); | |
a.setAttribute("d", e.path), n.appendChild(s) | |
} | |
var Co = "ProseMirror-menu", | |
sd = function(e) { | |
this.spec = e | |
}; | |
sd.prototype.render = function(e) { | |
var n = this.spec, | |
s = n.render ? n.render(e) : n.icon ? sQ(n.icon) : n.label ? eQ("div", null, il(e, n.label)) : null; | |
if (!s) throw new RangeError("MenuItem without icon or label property"); | |
if (n.title) { | |
var a = typeof n.title == "function" ? n.title(e.state) : n.title; | |
s.setAttribute("title", il(e, a)) | |
} | |
n.class && s.classList.add(n.class), n.css && (s.style.cssText += n.css), s.addEventListener("mousedown", function(r) { | |
r.preventDefault(), s.classList.contains(Co + "-disabled") || n.run(e.state, e.dispatch, e, r) | |
}); | |
function o(r) { | |
if (n.select) { | |
var i = n.select(r); | |
if (s.style.display = i ? "" : "none", !i) return !1 | |
} | |
var c = !0; | |
if (n.enable && (c = n.enable(r) || !1, cl(s, Co + "-disabled", !c)), n.active) { | |
var l = c && n.active(r) || !1; | |
cl(s, Co + "-active", l) | |
} | |
return !0 | |
} | |
return { | |
dom: s, | |
update: o | |
} | |
}; | |
function il(t, e) { | |
return t._props.translate ? t._props.translate(e) : e | |
} | |
function cl(t, e, n) { | |
n ? t.classList.add(e) : t.classList.remove(e) | |
} | |
const oQ = 1900; | |
let ad = class od extends sd { | |
constructor(e, n) { | |
super(e); | |
const s = this.spec.run; | |
this.spec.run = (a, o, r, i) => (se(ae.EDITOR_MENU_ICON_CLICKED, { | |
button: n || this.spec.label || this.spec.title | |
}), s.call(this, a, o, r, i)) | |
} | |
static fromMenuItem(e, n) { | |
const { | |
spec: s | |
} = e; | |
return new od(s, n) | |
} | |
}; | |
const jt = "ProseMirror-prompt", | |
ar = `${jt}-visible`; | |
class rd { | |
constructor(e) { | |
this.options = e | |
} | |
read(e) { | |
return e.value | |
} | |
validate(e) { | |
return e = this.clean(e), !e && this.options.required ? "Required field" : this.options.validate && this.options.validate(e) | |
} | |
clean(e) { | |
return this.options.clean ? this.options.clean(e) : e | |
} | |
} | |
class Va extends rd { | |
render() { | |
const e = document.createElement("input"); | |
return e.type = "text", e.placeholder = this.options.label, e.value = this.options.value || "", e.className = this.options.className || "", e.autocomplete = "off", e | |
} | |
} | |
class rQ extends rd { | |
render() { | |
const e = document.createElement("select"); | |
e.value = this.options.value || ""; | |
const n = document.createElement("option"); | |
return n.textContent = this.options.label, n.value = "", e.appendChild(n), this.options.options.forEach((s, a) => { | |
const o = document.createElement("option"); | |
o.textContent = s.label, o.value = String(a), e.appendChild(o) | |
}), this.options.onChange && e.addEventListener("change", () => { | |
const s = this.read(e); | |
this.options.onChange(s) | |
}, !1), e | |
} | |
read(e) { | |
const n = this.options.options[e.value]; | |
return n && n.value | |
} | |
} | |
class iQ extends Va { | |
constructor(e, n, s = "en") { | |
const { | |
iString: a | |
} = I18N.i(s); | |
super({ | |
label: a("Enter URL..."), | |
className: "url-input", | |
value: n || e && e.mark.attrs.href || "", | |
required: !0, | |
clean: o => { | |
let r; | |
return o ? (r = o.trim(), r = r.startsWith("http") || r.startsWith("mailto") || /^%%.*%%$/.test(r) ? r : `http://${r}`) : r = "", r | |
}, | |
validate: o => { | |
if (!/^%%.*%%$/.test(o)) { | |
if (o.startsWith(`${rt()}/publish/post/`) && alert(a("This is a link to a post draft. Readers will not be able to access this page.")), o.length > oQ) return a("Link is too long"); | |
try { | |
const r = new URL(o); | |
if (["http:", "https:", "mailto:"].includes(r.protocol)) return | |
} catch (r) { | |
console.error("Failed to parse URL:", r) | |
} | |
return o.startsWith("http") ? a("Invalid URL") : a("Invalid URL. Try using http://") | |
} | |
} | |
}) | |
} | |
} | |
function cQ(t, e) { | |
const { | |
from: n, | |
$from: s, | |
to: a, | |
empty: o | |
} = t.selection; | |
return o ? !!e.isInSet(t.storedMarks || s.marks()) : t.doc.rangeHasMark(n, a, e) | |
} | |
function id(t) { | |
return t == null ? null : t.scrollHeight > t.clientHeight ? t : id(t.parentElement) | |
} | |
function ma(t) { | |
if (Jr(t)) return; | |
const { | |
iString: e | |
} = I18N.i(t.language || "en"), n = `${jt}-${t.parentClass}`, s = t.root || document.body, a = t.scrollParent && document.querySelector && document.querySelector(t.scrollParent) || id(s) || window, o = s.appendChild(document.createElement("div")); | |
o.classList.add(jt), t.className && o.classList.add(t.className), o.id = n, jl(document.body, ar); | |
const r = h => { | |
o.contains(h.target) || l() | |
}, | |
i = () => { | |
var h; | |
if (t.position) t.position(o, u); | |
else { | |
const g = t.parentClass && ((h = document.querySelector) == null ? void 0 : h.call(document, `.${t.parentClass}`)); | |
if (g) { | |
const b = g.getBoundingClientRect(); | |
o.style.top = `${b.bottom+(t.offsetTop||0)}px`, o.style.left = `${b.left+(t.offsetLeft||0)}px` | |
} else { | |
const b = o.getBoundingClientRect(); | |
o.style.top = `${(window.innerHeight-b.height)/2+(t.offsetTop||0)}px`, o.style.left = `${(window.innerWidth-b.width)/2+(t.offsetLeft||0)}px` | |
} | |
} | |
}, | |
c = h => { | |
var b; | |
h && h.preventDefault(); | |
const g = lQ((b = t.fields) != null ? b : {}, d); | |
g && l(g) | |
}, | |
l = h => { | |
pr(document.body, ar), window.removeEventListener("mousedown", r), window.removeEventListener("resize", i, !1), a.removeEventListener("scroll", i, !1), o.parentNode && o.parentNode.removeChild(o), h ? (t.onSubmit && t.onSubmit(h), t.callback && t.callback(h)) : t.onCancel && t.onCancel(), t.onClose && t.onClose() | |
}; | |
setTimeout(() => window.addEventListener("mousedown", r), 50), window.addEventListener("resize", i, !1), a.addEventListener("scroll", i, !1); | |
const u = o.appendChild(document.createElement("span")); | |
u.className = "head"; | |
const d = []; | |
let m = 0; | |
for (const h in t.fields) { | |
m++; | |
const g = t.fields[h].render(); | |
g.tabIndex = m, d.push(g) | |
} | |
const f = o.appendChild(document.createElement("form")); | |
if (t.title && (f.appendChild(document.createElement("h5")).textContent = t.title), d.forEach(h => { | |
f.appendChild(document.createElement("div")).appendChild(h) | |
}), !t.no_buttons) { | |
const h = document.createElement("button"); | |
h.type = "submit", h.className = `${jt}-submit`, h.textContent = t.submitText || "OK", h.addEventListener("click", c); | |
const g = document.createElement("button"); | |
g.type = "button", g.className = `${jt}-cancel`, g.textContent = e("Cancel"), g.addEventListener("click", () => l()); | |
const b = f.appendChild(document.createElement("div")); | |
b.className = `${jt}-buttons`, b.appendChild(h), b.appendChild(document.createTextNode(" ")), b.appendChild(g) | |
} | |
if (t.footer && f.appendChild(t.footer), t.openseaEmbedFooter && f.appendChild(t.openseaEmbedFooter), i(), f.addEventListener("submit", c), t.onInput && f.addEventListener("input", h => { | |
var g; | |
(g = t.onInput) == null || g.call(t, h, o) | |
}), f.addEventListener("keydown", h => { | |
if (h.keyCode == 27) h.preventDefault(), l(); | |
else if (h.keyCode == 13 && !(h.ctrlKey || h.metaKey || h.shiftKey)) h.preventDefault(), c(); | |
else if (h.keyCode == 9 && (window.setTimeout(() => { | |
o.contains(document.activeElement) || l() | |
}, 500), d.length > 1)) { | |
for (let g = 0; g < d.length; g++) | |
if (document.activeElement === d[g]) { | |
g === 0 && h.shiftKey ? (h.preventDefault(), d[d.length - 1].focus()) : g === d.length - 1 && !h.shiftKey && (h.preventDefault(), d[0].focus()); | |
break | |
} | |
} | |
}), f.elements.length > 0) { | |
let h = f.elements[0]; | |
const g = Array.from(f.elements); | |
for (const b of g) | |
if (!b.value && ["INPUT", "TEXTAREA"].includes(b.nodeName)) { | |
h = b; | |
break | |
} | |
h.focus() | |
} | |
} | |
function Jr(t) { | |
var s; | |
const e = `${jt}-${t.parentClass}`, | |
n = document.getElementById(e); | |
if (n) { | |
let a; | |
return n.querySelector && (a = n.querySelector(`.${jt}-cancel`)), a ? a.click() : ((s = n.parentNode) == null || s.removeChild(n), pr(document.body, ar)), !0 | |
} | |
} | |
function lQ(t, e) { | |
const n = {}; | |
let s = 0; | |
for (const o in t) { | |
const r = t[o], | |
i = e[s++], | |
c = r.read(i), | |
l = r.validate(c); | |
if (l) return uQ(i, l), null; | |
n[o] = r.clean(c) | |
} | |
return n | |
} | |
function uQ(t, e) { | |
const n = t.parentNode; | |
if (!n) return; | |
const s = n.appendChild(document.createElement("div")); | |
s.style.left = `${t.offsetLeft+t.offsetWidth+2}px`, s.style.top = `${t.offsetTop-5}px`, s.className = "ProseMirror-invalid", s.textContent = e, setTimeout(() => n.removeChild(s), 1500) | |
} | |
function pQ(t, e) { | |
const n = t.selection.$from; | |
for (let s = n.depth; s >= 0; s--) { | |
const a = n.index(s); | |
if (n.node(s).canReplaceWith(a, a, e)) return !0 | |
} | |
return !1 | |
} | |
const ll = { | |
Enter: 13, | |
Backspace: 8, | |
Tab: 9, | |
Shift: 16, | |
Ctrl: 17, | |
Alt: 18, | |
Pause: 19, | |
CapsLock: 20, | |
Esc: 27, | |
Space: 32, | |
PageUp: 63276, | |
PageDown: 63277, | |
End: 63275, | |
Home: 63273, | |
Left: 63234, | |
Up: 63232, | |
Right: 63235, | |
Down: 63233, | |
PrintScrn: 44, | |
Insert: 63302, | |
Delete: 63272, | |
";": 186, | |
"=": 187, | |
Mod: 93, | |
"*": 106, | |
"-": 189, | |
".": 190, | |
"/": 191, | |
",": 188, | |
"`": 192, | |
"[": 219, | |
"\\": 220, | |
"]": 221, | |
"'": 222 | |
}; | |
function dQ(t) { | |
return ll[t] ? ll[t] : t.toUpperCase().charCodeAt(0) | |
} | |
function mQ(t, e) { | |
const n = e.split(/-(?!'?$)/), | |
s = n.indexOf("Mod") !== -1, | |
a = n.indexOf("Cmd") !== -1, | |
o = n.indexOf("Ctrl") !== -1, | |
r = n.indexOf("Shift") !== -1, | |
i = n.indexOf("Alt") !== -1, | |
c = n[n.length - 1], | |
l = dQ(c), | |
u = Df(), | |
d = new CustomEvent("keydown", { | |
bubbles: !0, | |
cancelable: !0 | |
}); | |
d.key = c.replace(/Space/g, " "), d.shiftKey = r, d.altKey = i, d.ctrlKey = o || !u && s, d.metaKey = a || u && s, d.keyCode = l, d.which = l, d.view = window, t.dispatchEvent(d) | |
} | |
const De = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAAB0BAMAAABgVMiEAAAAMFBMVEX////7+/vt7e3o6Ojm5ubn5+fu7u709PTs7Oz39/f19fX29vby8vLx8fHz8/Pw8PCxY+A8AAAAoklEQVR4AWJgVHYZ+sBIgEE0vXzog7JAhrZZq4Y+WJnB4A5o5w5oAAYBGAi6mcKpQgIaClhCBklz7+AM/Gjo5+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgeO7g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OD4Zse3dmVXfIST0/B1vh0UtMKbNF7rAAAAAElFTkSuQmCC"; | |
function fQ(t, e) { | |
let n = null, | |
s = [], | |
a = []; | |
return (...o) => new Promise((r, i) => { | |
n !== null && window.clearTimeout(n), n = window.setTimeout(() => { | |
t(...o).then(c => { | |
s.forEach(l => l(c)), s = [] | |
}).catch(c => { | |
a.forEach(l => l(c)), a = [] | |
}) | |
}, e), s.push(r), a.push(i) | |
}) | |
} | |
const hQ = ({ | |
node: t, | |
editor: e, | |
deleteNode: n, | |
updateAttributes: s, | |
getPos: a | |
}) => { | |
const o = t.attrs, | |
r = P(S({}, o), { | |
isEditor: !!e | |
}); | |
return p(wt, { | |
className: "digestPostEmbed", | |
"data-drag-handle": "" | |
}, p(yu, S({}, P(S({}, r), { | |
isEditor: !0, | |
editor: e, | |
updateAttributes: s, | |
deleteNode: n, | |
getPos: a | |
})))) | |
}, | |
Gs = "digest-post-embed", | |
cd = { | |
attrs: { | |
nodeId: { | |
default: null | |
}, | |
caption: { | |
default: null | |
}, | |
size: { | |
default: null | |
}, | |
isEditorNode: { | |
default: !1 | |
}, | |
title: { | |
default: null | |
}, | |
publishedBylines: { | |
default: null | |
}, | |
post_date: { | |
default: null | |
}, | |
cover_image: { | |
default: null | |
}, | |
cover_image_alt: { | |
default: null | |
}, | |
canonical_url: { | |
default: null | |
}, | |
section_name: { | |
default: null | |
}, | |
id: { | |
default: null | |
}, | |
type: { | |
default: null | |
}, | |
reaction_count: { | |
default: null | |
}, | |
comment_count: { | |
default: null | |
}, | |
publication_name: { | |
default: null | |
}, | |
publication_logo_url: { | |
default: null | |
}, | |
belowTheFold: { | |
default: !1 | |
} | |
}, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
editable: !1, | |
parseDOM: [{ | |
tag: `.${Gs}`, | |
getAttrs: t => { | |
try { | |
const e = JSON.parse(t.getAttribute("data-attrs")); | |
return P(S({}, e), { | |
nodeId: ka() | |
}) | |
} catch (e) { | |
return !1 | |
} | |
} | |
}], | |
toDOM: t => { | |
if (typeof window != "undefined" && t.attrs.isEditorNode) try { | |
const e = document.createElement("div"); | |
return e.className = Gs, e.setAttribute("data-attrs", JSON.stringify(t.attrs)), Fe(p(yu, P(S({}, t.attrs), { | |
caption: t.attrs.caption, | |
size: t.attrs.size || void 0, | |
isEditor: !0 | |
})), e), e | |
} catch (e) { | |
return console.error("Error rendering DigestPostEmbedWeb", e), Oe({ | |
msg: null, | |
node: t, | |
err: e, | |
group: "block" | |
}) | |
} | |
return bQ(t) | |
}, | |
toDOMStatic: t => ["div", { | |
class: Gs, | |
"data-attrs": JSON.stringify(S({ | |
isEmail: !0 | |
}, t.attrs)) | |
}] | |
}, | |
gQ = F({ | |
name: "digestPostEmbed", | |
nodeSpec: cd, | |
addNodeView() { | |
return kt(hQ) | |
}, | |
addCommands() { | |
return { | |
convertDigestPostEmbedToLinkV2: ({ | |
pos: t, | |
url: e | |
}) => ({ | |
dispatch: n, | |
state: s, | |
chain: a | |
}) => { | |
if (n) { | |
const o = s.tr, | |
r = t, | |
i = r + e.length; | |
return a().setNodeSelection(t).deleteSelection().command(({ | |
tr: c | |
}) => (c.insertText(e, r), !0)).command(({ | |
tr: c | |
}) => (c.addMark(r, i + 1, s.schema.marks.link.create({ | |
text: e, | |
href: e | |
})), !0)).setTextSelection(Ee.create(o.doc, r, i + 1)).scrollIntoView().focus(i + 2).run() | |
} | |
return !0 | |
}, | |
convertDigestPostEmbedToEmbeddedPostV2: ({ | |
pos: t, | |
attrs: e | |
}) => ({ | |
dispatch: n, | |
chain: s | |
}) => { | |
if (n) { | |
const a = { | |
id: e.id, | |
url: e.url, | |
title: e.title, | |
publication_name: e.publication_name, | |
publication_logo_url: e.publication_logo_url, | |
date: e.post_date, | |
comment_count: e.comment_count, | |
bylines: e.publishedBylines | |
}; | |
return s().setNodeSelection(t).deleteCurrentNode().insertContent({ | |
type: "embeddedPost", | |
attrs: a | |
}).run() | |
} | |
return !0 | |
} | |
} | |
} | |
}), | |
bQ = t => ["div", { | |
class: Gs, | |
"data-attrs": JSON.stringify(t.attrs) | |
}], | |
Yr = (t, { | |
customSchema: e | |
} = {}) => { | |
var a, o, r, i; | |
if (e && !e.nodes.digestPostEmbed) return null; | |
const n = lt(t); | |
if (!n) return null; | |
const s = $l({ | |
url: t, | |
currentSubdomain: (o = (a = window._preloads) == null ? void 0 : a.pub) == null ? void 0 : o.subdomain, | |
currentCustomDomain: (i = (r = window._preloads) == null ? void 0 : r.pub) == null ? void 0 : i.custom_domain | |
}); | |
return n && (n.pathname.startsWith("/p/") || Ul(n)) && s ? t : null | |
}, | |
ld = t => N(void 0, null, function*() { | |
const e = yield he.get("/api/v1/posts/digest_embed").query({ | |
url: t.trim() | |
}), { | |
pub: n, | |
post: s | |
} = e.body, d = s, { | |
truncated_body_text: a | |
} = d, o = st(d, ["truncated_body_text"]), { | |
name: r, | |
logo_url: i | |
} = n, l = na(o, ["title", "publishedBylines", "post_date", "cover_image", "cover_image_alt", "canonical_url", "section_name", "id", "type", "reaction_count", "comment_count"]); | |
return P(S({ | |
caption: a != null ? a : "", | |
size: "lg", | |
isEditor: !0 | |
}, l), { | |
publishedBylines: l.publishedBylines.map(m => na(m, ["id", "name", "bio", "photo_url", "is_guest", "bestseller_tier", "primaryPublicationSubscribeUrl", "primaryPublicationUrl", "primaryPublicationName", "primaryPublicationId"])), | |
publication_name: r, | |
publication_logo_url: i != null ? i : "" | |
}) | |
}), | |
vQ = `<svg width="19" height="19" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<path | |
d="M3 18V12C3 9.61305 3.94821 7.32387 5.63604 5.63604C7.32387 3.94821 9.61305 3 12 3C14.3869 3 16.6761 3.94821 18.364 5.63604C20.0518 7.32387 21 9.61305 21 12V18" | |
stroke-linecap="round" | |
stroke-linejoin="round" | |
/> | |
<path | |
d="M21 19C21 19.5304 20.7893 20.0391 20.4142 20.4142C20.0391 20.7893 19.5304 21 19 21H18C17.4696 21 16.9609 20.7893 16.5858 20.4142C16.2107 20.0391 16 19.5304 16 19V16C16 15.4696 16.2107 14.9609 16.5858 14.5858C16.9609 14.2107 17.4696 14 18 14H21V19ZM3 19C3 19.5304 3.21071 20.0391 3.58579 20.4142C3.96086 20.7893 4.46957 21 5 21H6C6.53043 21 7.03914 20.7893 7.41421 20.4142C7.78929 20.0391 8 19.5304 8 19V16C8 15.4696 7.78929 14.9609 7.41421 14.5858C7.03914 14.2107 6.53043 14 6 14H3V19Z" | |
stroke-linecap="round" | |
stroke-linejoin="round" | |
/> | |
</svg>`, | |
xQ = `<svg width="32" height="32" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> | |
<path | |
className="inner-triangle" | |
d="M10 8L16 12L10 16V8Z" | |
stroke-width="1.5" | |
stroke-linecap="round" | |
stroke-linejoin="round" | |
/> | |
</svg>`, | |
ud = { | |
attrs: { | |
id: { | |
default: null | |
}, | |
url: { | |
default: null | |
}, | |
publication_id: { | |
default: null | |
}, | |
publication_name: { | |
default: null | |
}, | |
publication_logo_url: { | |
default: null | |
}, | |
title: { | |
default: null | |
}, | |
truncated_body_text: { | |
default: null | |
}, | |
date: { | |
default: null | |
}, | |
like_count: { | |
default: null | |
}, | |
comment_count: { | |
default: null | |
}, | |
bylines: { | |
default: null | |
}, | |
utm_campaign: { | |
default: null | |
}, | |
belowTheFold: { | |
default: !1 | |
}, | |
type: { | |
default: null | |
}, | |
language: { | |
default: "en" | |
} | |
}, | |
untrackedAttrs: ["truncated_body_text", "bylines"], | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.embedded-post-wrap", | |
getAttrs: re | |
}], | |
toDOM: t => { | |
const { | |
publication_logo_url: e, | |
publication_name: n, | |
title: s, | |
truncated_body_text: a, | |
url: o, | |
bylines: r, | |
date: i, | |
like_count: c, | |
comment_count: l, | |
utm_campaign: u, | |
id: d, | |
type: m, | |
language: f | |
} = t.attrs, { | |
iString: h | |
} = I18N.i(f), g = yt(o, { | |
utm_source: qe.substack, | |
utm_campaign: u || Ut.postEmbed, | |
utm_medium: Kn.web | |
}); | |
g === "" && console.error(`Invalid path (${o}) for post: ${d}`); | |
const b = document.createElement("div"); | |
b.classList.add("embedded-post-title-icon"), b.innerHTML = vQ; | |
const x = document.createElement("div"); | |
return x.classList.add("embedded-post-cta-icon"), x.innerHTML = xQ, ["div", { | |
class: "embedded-post-wrap", | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "EmbeddedPostToDOM" | |
}, | |
["a", { | |
class: "embedded-post", | |
native: !0, | |
href: g | |
}, | |
["div", { | |
class: "embedded-post-header" | |
}, e ? ["img", { | |
class: "embedded-post-publication-logo", | |
src: q(e, 56), | |
loading: t.attrs.belowTheFold ? "lazy" : null | |
}] : ["span", {}], | |
["span", { | |
class: "embedded-post-publication-name" | |
}, n || h("Failed to embed post")] | |
], | |
["div", { | |
class: "embedded-post-title-wrapper" | |
}, ...m === "podcast" ? [b] : [], | |
["div", { | |
class: "embedded-post-title" | |
}, s || h("Failed to embed post")] | |
], ...a ? [ | |
["div", { | |
class: "embedded-post-body" | |
}, Oi(a)] | |
] : [], | |
["div", { | |
class: "embedded-post-cta-wrapper" | |
}, ...m === "podcast" ? [x] : [], | |
["span", { | |
class: "embedded-post-cta" | |
}, h(m === "podcast" ? "Listen now" : "Read more")] | |
], | |
["div", { | |
class: "embedded-post-meta" | |
}, Li({ | |
date: i, | |
bylines: r, | |
like_count: c, | |
comment_count: l, | |
language: f | |
})] | |
] | |
] | |
}, | |
toDOMStatic: t => { | |
const { | |
publication_logo_url: e, | |
publication_name: n, | |
title: s, | |
truncated_body_text: a, | |
url: o, | |
bylines: r, | |
date: i, | |
like_count: c, | |
comment_count: l, | |
utm_campaign: u, | |
type: d, | |
language: m | |
} = t.attrs, { | |
iString: f | |
} = I18N.i(m), h = yt(o, { | |
utm_source: qe.substack, | |
utm_campaign: u || Ut.postEmbed, | |
utm_medium: Kn.email | |
}), g = q("/img/podcast-headphones.svg", 19, { | |
format: "png" | |
}), b = q("/img/audio-player-play.png", 12); | |
return ["div", { | |
class: "embedded-post-wrap", | |
"data-component-name": "EmbeddedPostToDOMStatic" | |
}, | |
["div", { | |
class: "embedded-post" | |
}, | |
["div", { | |
class: "embedded-post-header" | |
}, e ? ["img", { | |
class: "embedded-post-publication-logo", | |
src: q(e, 56), | |
width: 28, | |
height: 28 | |
}] : ["span", {}], | |
["span", { | |
class: "embedded-post-publication-name" | |
}, n || f("Failed to embed post")] | |
], | |
["div", { | |
class: "embedded-post-title-wrapper" | |
}, ...d === "podcast" ? [ | |
["img", { | |
class: "embedded-post-title-icon embedded-post-title-icon-static", | |
src: g | |
}] | |
] : [], | |
["a", { | |
class: "embedded-post-title", | |
href: h || "#" | |
}, s || f("Failed to embed post")] | |
], ...a ? [ | |
["div", { | |
class: "embedded-post-body" | |
}, Oi(a)] | |
] : [ | |
["br"], | |
["br"] | |
], | |
["div", { | |
class: "embedded-post-cta-wrapper" | |
}, ...d === "podcast" ? [ | |
["img", { | |
width: 12, | |
height: 12, | |
class: "embedded-post-cta-icon-static", | |
src: b | |
}] | |
] : [], | |
["a", { | |
class: "embedded-post-cta", | |
href: h || "#" | |
}, f(d === "podcast" ? "Listen now" : "Read more")] | |
], | |
["div", { | |
class: "embedded-post-meta" | |
}, Li({ | |
date: i, | |
bylines: r, | |
like_count: c, | |
comment_count: l, | |
language: m | |
})] | |
] | |
] | |
} | |
}, | |
yQ = F({ | |
name: "embeddedPost", | |
nodeSpec: ud, | |
addCommands() { | |
return { | |
insertEmbeddedPost: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
pd = (t, { | |
customSchema: e, | |
forceAllowOwnPub: n = !1 | |
} = {}) => { | |
var r, i, c, l; | |
if (e && !e.nodes.embeddedPost) return null; | |
const s = lt(t); | |
if (!s) return null; | |
const o = $l({ | |
url: t, | |
currentSubdomain: (i = (r = window._preloads) == null ? void 0 : r.pub) == null ? void 0 : i.subdomain, | |
currentCustomDomain: (l = (c = window._preloads) == null ? void 0 : c.pub) == null ? void 0 : l.custom_domain | |
}) && !n; | |
return s && (s.pathname.startsWith("/p/") || Ul(s)) && !o ? t : null | |
}, | |
wQ = t => N(void 0, null, function*() { | |
const e = (yield Z(() => | |
import ("./sortBy-53166f8e.js").then(n => n.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default; | |
try { | |
return (yield e.get("/api/v1/posts/embed").query({ | |
url: t.trim() | |
})).body | |
} catch (n) { | |
return null | |
} | |
}), | |
dd = (s, ...a) => N(void 0, [s, ...a], function*(t, { | |
customSchema: e, | |
language: n = "en" | |
} = {}) { | |
const r = (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema, | |
i = yield wQ(t); | |
return i ? r.nodes.embeddedPost.create(P(S({}, i), { | |
language: n | |
})) : null | |
}), | |
Eo = t => t ? { | |
style: `background-color: ${t}` | |
} : {}, | |
fa = { | |
attrs: { | |
id: { | |
default: null | |
}, | |
name: { | |
default: "" | |
}, | |
logo_url: { | |
default: null | |
}, | |
base_url: { | |
default: null | |
}, | |
hero_text: { | |
default: null | |
}, | |
author_name: { | |
default: null | |
}, | |
show_subscribe: { | |
default: !0 | |
}, | |
logo_bg_color: { | |
default: null | |
}, | |
language: { | |
default: "en" | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.embedded-publication-wrap", | |
getAttrs: re | |
}], | |
toDOMWithSubscribe: t => { | |
const { | |
name: e, | |
logo_url: n, | |
base_url: s, | |
hero_text: a, | |
author_name: o, | |
logo_bg_color: r, | |
language: i | |
} = t.attrs, { | |
iString: c, | |
iTemplate: l | |
} = I18N.i(i); | |
return ["div", { | |
class: "embedded-publication-wrap", | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "EmbeddedPublicationToDOMWithSubscribe" | |
}, | |
["div", { | |
class: "embedded-publication show-subscribe" | |
}, | |
["a", { | |
class: "embedded-publication-link-part", | |
native: !0, | |
href: yt(s, { | |
utm_source: qe.substack, | |
utm_campaign: Ut.publicationEmbed, | |
utm_medium: Kn.web | |
}) | |
}, ...n ? [ | |
["img", S({ | |
class: "embedded-publication-logo", | |
src: q(n), | |
width: 56, | |
height: 56 | |
}, Eo(r))] | |
] : [], | |
["h3", { | |
class: "embedded-publication-name" | |
}, e || c("Failed to embed publication")], ...a ? [ | |
["div", { | |
class: "embedded-publication-hero-text" | |
}, a] | |
] : [], ...o && !e.includes(o) ? [ | |
["div", { | |
class: "embedded-publication-author-name" | |
}, l `By ${o}`] | |
] : [] | |
], | |
["form", { | |
class: "embedded-publication-subscribe", | |
method: "GET", | |
action: If({ | |
base_url: s | |
}, { | |
addBase: !0 | |
}) | |
}, | |
["input", { | |
type: "hidden", | |
name: "source", | |
value: "publication-embed" | |
}], | |
["input", { | |
type: "hidden", | |
name: "autoSubmit", | |
value: "true" | |
}], | |
["input", { | |
type: "email", | |
class: "email-input", | |
name: "email", | |
placeholder: c("Type your email...") | |
}], | |
["input", { | |
type: "submit", | |
class: "button primary", | |
value: c("Subscribe") | |
}] | |
] | |
] | |
] | |
}, | |
toDOMWithoutSubscribe: t => { | |
const { | |
name: e, | |
logo_url: n, | |
base_url: s, | |
hero_text: a, | |
author_name: o, | |
logo_bg_color: r, | |
language: i | |
} = t.attrs, { | |
iString: c, | |
iTemplate: l | |
} = I18N.i(i); | |
return ["div", { | |
class: "embedded-publication-wrap", | |
"data-attrs": JSON.stringify(t.attrs) | |
}, | |
["a", { | |
class: "embedded-publication embedded-publication-flex", | |
native: !0, | |
href: yt(s, { | |
utm_source: qe.substack, | |
utm_campaign: Ut.publicationEmbed, | |
utm_medium: Kn.web | |
}) | |
}, ...n ? [ | |
["div", { | |
class: "embedded-publication-left" | |
}, | |
["img", S({ | |
class: "embedded-publication-logo", | |
src: q(n), | |
width: 40, | |
height: 40 | |
}, Eo(r))] | |
] | |
] : [], | |
["div", { | |
class: "embedded-publication-right" | |
}, | |
["h3", { | |
class: "embedded-publication-name" | |
}, e || c("Failed to embed publication")], ...a ? [ | |
["div", { | |
class: "embedded-publication-hero-text" | |
}, a] | |
] : [], ...o && !e.includes(o) ? [ | |
["div", { | |
class: "embedded-publication-author-name" | |
}, l `By ${o}`] | |
] : [] | |
] | |
] | |
] | |
}, | |
toDOMStatic: t => { | |
const { | |
name: e, | |
logo_url: n, | |
base_url: s, | |
hero_text: a, | |
author_name: o, | |
logo_bg_color: r | |
} = t.attrs, i = yt(s, { | |
utm_source: qe.substack, | |
utm_campaign: Ut.publicationEmbed, | |
utm_medium: Kn.email | |
}); | |
return ["div", { | |
class: "embedded-publication-wrap", | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "EmbeddedPublicationToDOMStatic" | |
}, | |
["table", { | |
class: "embedded-publication" | |
}, | |
["tr", {}, ...n ? [ | |
["td", { | |
class: "embedded-publication-left", | |
valign: "top", | |
width: 56 | |
}, | |
["img", S({ | |
class: "embedded-publication-logo", | |
src: q(n), | |
width: 40, | |
height: 40 | |
}, Eo(r))] | |
] | |
] : [], | |
["td", { | |
class: "embedded-publication-right" | |
}, | |
["h3", { | |
class: "embedded-publication-name" | |
}, | |
["a", { | |
href: i | |
}, e || "Failed to embed publication"] | |
], ...a ? [ | |
["div", { | |
class: "embedded-publication-hero-text" | |
}, | |
["a", { | |
href: i | |
}, a] | |
] | |
] : [], ...o && !e.includes(o) ? [ | |
["div", { | |
class: "embedded-publication-author-name" | |
}, | |
["a", { | |
href: i | |
}, `By ${o}`] | |
] | |
] : [] | |
] | |
] | |
] | |
] | |
}, | |
toDOM: t => t.attrs.show_subscribe ? fa.toDOMWithSubscribe(t) : fa.toDOMWithoutSubscribe(t) | |
}, | |
kQ = F({ | |
name: "embeddedPublication", | |
nodeSpec: fa, | |
addCommands() { | |
return { | |
insertEmbeddedPublication: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
md = (t, { | |
customSchema: e | |
} = {}) => { | |
if (e && !e.nodes.embeddedPublication) return null; | |
const n = lt(t); | |
return n && (!n.pathname || n.pathname === "/") ? t : null | |
}, | |
fd = t => N(void 0, null, function*() { | |
const e = (yield Z(() => | |
import ("./sortBy-53166f8e.js").then(n => n.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default; | |
try { | |
const n = yield e.get("/api/v1/publication/embed").query({ | |
url: t.trim() | |
}); | |
return n.body.id ? n.body : null | |
} catch (n) { | |
return null | |
} | |
}), | |
_Q = t => N(void 0, null, function*() { | |
const e = yield fd(t); | |
return e ? P(S({}, e), { | |
show_subscribe: !0 | |
}) : null | |
}), | |
hd = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
const o = (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema, | |
r = yield _Q(t); | |
return r ? o.nodes.embeddedPublication.create(r) : null | |
}), | |
gd = { | |
attrs: { | |
collection: { | |
default: "" | |
}, | |
collection_slug: { | |
default: "" | |
}, | |
creator: { | |
default: "" | |
}, | |
description: { | |
default: "" | |
}, | |
image_url: { | |
default: "" | |
}, | |
name: { | |
default: "" | |
}, | |
animation_url: { | |
default: "" | |
}, | |
nft_logo_url: { | |
default: "" | |
}, | |
permalink: { | |
default: "" | |
}, | |
youtube_url: { | |
default: null | |
}, | |
belowTheFold: { | |
default: !1 | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.opensea", | |
getAttrs: re | |
}], | |
toDOMStatic: TQ, | |
toDOM: DQ | |
}, | |
CQ = F({ | |
name: "opensea", | |
nodeSpec: gd, | |
addCommands() { | |
return { | |
insertOpensea: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
EQ = t => { | |
var e, n, s; | |
return (s = (n = (e = lt(t)) == null ? void 0 : e.pathname.match(/assets\/(ethereum\/)?(.+)/)) == null ? void 0 : n[2]) == null ? void 0 : s.split("/")[0] | |
}, | |
AQ = t => { | |
var e, n, s; | |
return (s = (n = (e = lt(t)) == null ? void 0 : e.pathname.match(/assets\/(ethereum\/)?(.+)/)) == null ? void 0 : n[2]) == null ? void 0 : s.split("/")[1] | |
}, | |
SQ = t => N(void 0, null, function*() { | |
return (yield he.get("/api/v1/opensea").query({ | |
contract: EQ(t), | |
token_id: AQ(t) | |
})).body | |
}), | |
bd = (n, s) => N(void 0, [n, s], function*(t, { | |
customSchema: e | |
}) { | |
return e.nodes.opensea.create(yield SQ(t)) | |
}); | |
function TQ(t) { | |
const e = document.createElement("div"); | |
e.className = "opensea static", e.setAttribute("data-component-name", "OpenseaToDOMStatic"); | |
const n = document.createElement("table"); | |
n.className = "opensea-header-table"; | |
const s = document.createElement("tr"); | |
s.className = "opensea-header-row"; | |
const a = document.createElement("tr"), | |
o = document.createElement("td"), | |
r = document.createElement("a"); | |
r.className = "opensea-title", t.attrs.permalink && r.setAttribute("href", t.attrs.permalink), r.textContent = t.attrs.name, o.appendChild(r), a.appendChild(r); | |
const i = document.createElement("tr"), | |
c = document.createElement("td"), | |
l = document.createElement("a"); | |
l.className = "opensea-collection", t.attrs.collection_slug && l.setAttribute("href", `https://opensea.io/collection/${t.attrs.collection_slug}`), l.textContent = it(t.attrs.collection, 50), c.appendChild(l), i.appendChild(c); | |
const u = document.createElement("td"), | |
d = document.createElement("table"); | |
u.className = "opensea-masthead", d.appendChild(a), d.appendChild(i), u.appendChild(d); | |
const m = document.createElement("td"); | |
m.className = "nft-logo"; | |
const f = document.createElement("a"), | |
h = document.createElement("img"); | |
t.attrs.nft_logo_url && h.setAttribute("src", q(t.attrs.nft_logo_url)), t.attrs.permalink && f.setAttribute("href", t.attrs.permalink), t.attrs.belowTheFold && f.setAttribute("loading", "lazy"), f.appendChild(h), m.appendChild(f), s.appendChild(u), s.appendChild(m), n.appendChild(s); | |
const g = document.createElement("a"); | |
t.attrs.permalink && g.setAttribute("href", t.attrs.permalink); | |
const b = document.createElement("img"); | |
b.className = "opensea-image", t.attrs.image_url && b.setAttribute("src", q(t.attrs.image_url, 600, { | |
crop: "fill" | |
})), b.setAttribute("alt", t.attrs.name), b.setAttribute("width", "500"), t.attrs.belowTheFold && b.setAttribute("loading", "lazy"), g.appendChild(b); | |
const x = document.createElement("table"); | |
x.className = "opensea-footer-table"; | |
const v = document.createElement("tr"), | |
w = document.createElement("td"); | |
w.className = "opensea-description", w.textContent = it(t.attrs.description, 200), v.appendChild(w); | |
const E = document.createElement("tr"), | |
_ = document.createElement("td"), | |
k = document.createElement("a"); | |
_.className = "opensea-creator", t.attrs.creator && k.setAttribute("href", `https://opensea.io/${t.attrs.creator}?tab=created`), k.textContent = `Created by ${it(t.attrs.creator,50)}`, _.appendChild(k), E.appendChild(_); | |
const M = document.createElement("tr"), | |
y = document.createElement("td"), | |
T = document.createElement("a"), | |
D = document.createElement("table"), | |
C = document.createElement("tr"), | |
L = document.createElement("td"); | |
return T.className = "opensea-cta-link", t.attrs.permalink && T.setAttribute("href", t.attrs.permalink), D.setAttribute("cellspacing", "16"), D.className = "opensea-cta-table", L.className = "opensea-cta", L.textContent = "View on OpenSea", C.appendChild(L), D.appendChild(C), T.appendChild(D), y.appendChild(T), M.appendChild(y), t.attrs.description && x.appendChild(v), x.appendChild(E), x.appendChild(M), e.appendChild(n), e.appendChild(g), e.appendChild(x), e.querySelectorAll && Array.prototype.forEach.call(e.querySelectorAll("a"), R => { | |
R.target = "_blank" | |
}), e | |
} | |
function DQ(t) { | |
const e = document.createElement("div"); | |
e.className = "opensea", e.setAttribute("data-component-name", "OpenseaToDOM"); | |
const n = document.createElement("a"); | |
n.className = "opensea-title", t.attrs.permalink && n.setAttribute("href", t.attrs.permalink), n.textContent = t.attrs.name; | |
const s = document.createElement("a"); | |
s.className = "opensea-collection", t.attrs.collection_slug && s.setAttribute("href", `https://opensea.io/collection/${t.attrs.collection_slug}`), s.textContent = it(t.attrs.collection, 50); | |
const a = document.createElement("div"); | |
a.className = "opensea-masthead", a.appendChild(n), a.appendChild(s); | |
const o = document.createElement("a"); | |
t.attrs.permalink && o.setAttribute("href", t.attrs.permalink); | |
const r = document.createElement("img"); | |
t.attrs.nft_logo_url && r.setAttribute("src", q(t.attrs.nft_logo_url)), t.attrs.belowTheFold && r.setAttribute("loading", "lazy"), o.appendChild(r); | |
const i = document.createElement("div"); | |
i.className = "opensea-header", i.appendChild(a), i.appendChild(o); | |
const c = document.createElement("a"); | |
t.attrs.permalink && c.setAttribute("href", t.attrs.permalink), c.className = "opensea-media-link"; | |
let l, u; | |
const d = ["gltf", "glb", "webm", "mp4", "m4v", "ogv", "ogg"], | |
f = ["mp3", "wav", "oga"].some(k => { | |
var M; | |
return (M = t.attrs.animation_url) == null ? void 0 : M.endsWith(k) | |
}), | |
h = d.some(k => { | |
var M; | |
return (M = t.attrs.animation_url) == null ? void 0 : M.endsWith(k) | |
}), | |
g = !t.attrs.animation_url, | |
b = t.attrs.animation_url && !f && !h; | |
(g || f || b || t.attrs.youtube_url) && (u = document.createElement("img"), u.className = "opensea-image", t.attrs.image_url && u.setAttribute("src", q(t.attrs.image_url, 600, { | |
crop: "fill" | |
})), t.attrs.belowTheFold && u.setAttribute("loading", "lazy"), u.setAttribute("alt", t.attrs.name), c.appendChild(u)), (f || h) && (l = document.createElement(f ? "audio" : "video"), l.className = "opensea-player", l.setAttribute("controls", !0), l.setAttribute("loop", !0), l.setAttribute("src", t.attrs.animation_url), l.setAttribute("alt", "OpenSea NFT media"), t.attrs.belowTheFold && l.setAttribute("loading", "lazy")), u && c.appendChild(u), l && c.appendChild(l); | |
const v = document.createElement("div"); | |
v.className = "opensea-description", v.textContent = it(t.attrs.description, 200); | |
const w = document.createElement("a"); | |
w.className = "opensea-creator", t.attrs.creator && w.setAttribute("href", `https://opensea.io/${t.attrs.creator}?tab=created`), w.textContent = `Created by ${it(t.attrs.creator,50)}`; | |
const E = document.createElement("a"); | |
E.className = "opensea-cta", t.attrs.permalink && E.setAttribute("href", t.attrs.permalink), E.textContent = "View on OpenSea"; | |
const _ = document.createElement("div"); | |
return _.className = "opensea-footer", t.attrs.description && _.appendChild(v), _.appendChild(w), _.appendChild(E), e.appendChild(i), e.appendChild(c), e.appendChild(_), e.querySelectorAll && Array.prototype.forEach.call(e.querySelectorAll("a"), k => { | |
k.target = "_blank" | |
}), e | |
} | |
const IQ = /^https:\/\/opensea.io\/assets\/.+/, | |
vd = t => { | |
const e = IQ.exec(t); | |
return e && e[0] | |
}, | |
xd = t => vd(t) !== null, | |
Kr = new Set, | |
NQ = wr((t, e, n) => { | |
const s = e.trim(); | |
fd(s).then(a => { | |
a && (Kr.add(s), e === t.target.value && n.classList.add("has-substack-link")) | |
}) | |
}, 250, { | |
maxWait: 1e3 | |
}); | |
function MQ(t, e) { | |
if ("target" in t && t.target && "className" in t.target && t.target.className === "url-input" && "value" in t.target) { | |
const { | |
value: n | |
} = t.target, s = n.trim(); | |
if (Kr.has(s) || pd(s) || Yr(s)) { | |
e.classList.add("has-substack-link"); | |
return | |
} | |
if (xd(s)) { | |
e.classList.add("has-opensea-link"); | |
return | |
} | |
md(s) && NQ(t, n, e), e.classList.remove("has-substack-link"), e.classList.remove("has-opensea-link") | |
} | |
} | |
function OQ(t, { | |
scrollParent: e, | |
publication: n, | |
language: s | |
} = {}) { | |
const { | |
iString: a, | |
iTemplate: o | |
} = I18N.i(s != null ? s : "en"), r = o `Link ${Vl()}K`; | |
return new ad({ | |
class: "mark-menu-item", | |
title: r, | |
icon: HZ, | |
active(i) { | |
return !!(er(i, [i.schema.nodes.image2, i.schema.nodes.image3]) ? da(i) : Qo(i, t)) || cQ(i, t) | |
}, | |
enable() { | |
return !0 | |
}, | |
run(i, c, l) { | |
const u = Qo(i, t); | |
let d, m, f, h; | |
u ? (d = u.pos, m = u, f = Wp(i, u.pos.from, u.pos.to, { | |
allowedMarks: [t] | |
}), h = u.node.textContent) : (d = i.selection, m = bZ(i, t), f = vZ(i, { | |
allowedMarks: [t] | |
}), h = i.doc.textBetween(i.selection.from, i.selection.to)); | |
const g = er(i, [i.schema.nodes.captionedImage, i.schema.nodes.image2, i.schema.nodes.image3, i.schema.nodes.caption].filter(Boolean)), | |
b = g ? da(i) : null; | |
f = f && !g; | |
const x = l.dom.parentNode, | |
v = { | |
className: "create-link-menu", | |
submitText: a("Link"), | |
parent: r, | |
title: a("Create a link"), | |
fields: {}, | |
root: x, | |
scrollParent: e, | |
position: (C, L) => Yp(l, d, C, L), | |
onInput: MQ, | |
language: s | |
}; | |
f && v.fields && (v.fields.text = new Va({ | |
label: a("Enter text…"), | |
className: "text-input", | |
value: h, | |
required: !0 | |
})), v.fields && (v.fields.href = new iQ(m, b, s)), v.onSubmit = C => { | |
const L = i.tr; | |
if (g) Jp(i, L, C.href); | |
else if (i.selection.empty && !u) { | |
const R = i.selection.from, | |
A = R + C.text.length; | |
L.insertText(C.text), L.addMark(R, A, t.create(C)), L.setSelection(Ee.create(L.doc, R, A)) | |
} else C.text && C.text !== h ? (L.insertText(C.text, d.from), L.setSelection(Ee.create(L.doc, d.from, d.from + C.text.length)), L.deleteRange(d.from + C.text.length, d.to + C.text.length), L.addMark(d.from, d.from + C.text.length, t.create(C))) : L.addMark(d.from, d.to, t.create(C)); | |
if (c) return l.dispatch(L), !0 | |
}, v.onClose = () => { | |
l.focus() | |
}; | |
const w = C => N(this, null, function*() { | |
C.preventDefault(); | |
const L = document.querySelector(".create-link-menu .url-input"); | |
if (!L) { | |
console.warn("could not find input for creating link menu selecting for ['.create-link-menu .url-input']"); | |
return | |
} | |
const A = L.value.trim(); | |
let I; | |
Jr(v); | |
const O = Ye.add(l, d.pos, De); | |
try { | |
if (se(ae.EMBED_URL_ATTEMPTED, { | |
url: A, | |
source: "link-menu" | |
}), xd(A)) I = yield bd(A, { | |
customSchema: l.state.schema | |
}); | |
else if (Kr.has(A)) I = yield hd(A); | |
else if (Yr(A)) try { | |
const B = yield ld(A); | |
I = l.state.schema.nodes.digestPostEmbed.create(P(S({}, B), { | |
isEditorNode: !0, | |
nodeId: ka() | |
})) | |
} catch (B) { | |
console.error(B), alert(a("Failed to find post. Please check the link and try again.")) | |
} else I = yield dd(A, { | |
customSchema: l.state.schema, | |
language: n == null ? void 0 : n.language | |
}); | |
if (se(ae.EMBED_URL_SUCCEEDED, { | |
url: A, | |
source: "link-menu" | |
}), I) Ye.replace(l, O, I); | |
else throw Ye.remove(l, O), Error("No embed found") | |
} catch (B) { | |
se(ae.EMBED_URL_FAILED, { | |
url: A, | |
source: "link-menu" | |
}), alert(a("Embed failed. Please check the url and try again.")) | |
} | |
}), | |
E = document.createElement("div"); | |
E.className = "create-link-menu-footer"; | |
const _ = new DocumentFragment; | |
_.append(document.createTextNode(o `There’s a fancier way to share Substack links with your readers:`)); | |
const k = document.createElement("a"); | |
k.innerText = o `Convert your link into an embed`, k.href = "#", k.addEventListener("click", w), _.append(k), E.append(_), v.footer = E; | |
const M = document.createElement("div"); | |
M.className = "opensea-embed-footer"; | |
const y = new DocumentFragment, | |
T = document.createElement("b"); | |
T.textContent = "Tip: ", y.append(T), y.append(document.createTextNode("You can also ")); | |
const D = document.createElement("a"); | |
D.innerText = "embed your OpenSea NFT", D.href = "#", D.addEventListener("click", w), y.append(D), y.append(document.createTextNode(" to give your readers a visual preview.")), M.append(y), v.openseaEmbedFooter = M, ma(v) | |
} | |
}, "link") | |
} | |
const ul = typeof navigator != "undefined" ? /Mac/.test(navigator.platform) : !1, | |
LQ = (t, e) => { | |
const n = ["preformatted_text_block", "code_block", "codeBlock", "latex_block"], | |
{ | |
$anchor: s | |
} = t.selection, | |
{ | |
parent: a | |
} = s; | |
if (!a || !n.includes(a.type.name)) return !1; | |
if (!a.textContent.length && e) { | |
const { | |
tr: o | |
} = t; | |
return e(o.delete(o.selection.from - 1, o.selection.to + 1)), !0 | |
} | |
return !1 | |
}; | |
function RQ(t) { | |
const e = {}; | |
let n; | |
function s(a, o) { | |
const r = e[a]; | |
r ? e[a] = function(i, c) { | |
return r(i, c) || o(i, c) | |
} : e[a] = o | |
} | |
if (s("Mod-z", jh), s("Shift-Mod-z", Ui), s("Backspace", RZ), s("Backspace", LQ), ul || s("Mod-y", Ui), s("Alt-ArrowUp", dh), s("Alt-ArrowDown", mh), s("Mod-BracketLeft", fh), s("Mod-k", yd(t)), (n = t.marks.strong || t.marks.bold) && (s("Mod-b", St(n)), s("Mod-B", St(n))), (n = t.marks.em || t.marks.italic) && (s("Mod-i", St(n)), s("Mod-I", St(n))), (n = t.marks.strikethrough || t.marks.strike) && (s("Shift-Mod-x", St(n)), s("Shift-Mod-X", St(n))), (n = t.marks.code) && s("Mod-`", St(n)), (n = t.nodes.blockquote) && s("Ctrl->", hh(n)), (n = t.marks.superscript) && s("Mod-.", St(n)), (n = t.marks.subscript) && s("Mod->", St(n)), n = t.nodes.hard_break || t.nodes.hardBreak) { | |
const a = n, | |
o = eo(vh, (r, i) => (i && i(r.tr.replaceSelectionWith(a.create()).scrollIntoView()), !0)); | |
s("Mod-Enter", o), s("Shift-Enter", o), ul && s("Ctrl-Enter", o) | |
} | |
if ((n = t.nodes.list_item || t.nodes.listItem) && (s("Enter", gh(n)), s("Shift-Tab", eo(xh(n), () => !0)), s("Tab", eo(yh(n), () => !0))), n = t.nodes.heading) | |
for (let a = 1; a <= 6; a++) s(`Shift-Ctrl-${a}`, bh(n, { | |
level: a | |
})); | |
return e | |
} | |
const yd = t => (e, n, s) => { | |
var a, o; | |
return n && OQ(t.marks.link, { | |
scrollParent: ".editor-scroll", | |
language: typeof window != "undefined" ? (o = (a = window == null ? void 0 : window._preloads) == null ? void 0 : a.publication) == null ? void 0 : o.language : null | |
}).spec.run(e, n, s), !0 | |
}, | |
Ha = (t, e, n, s, { | |
targetUrl: a | |
} = {}) => { | |
let o = ["td", { | |
class: "audio-details", | |
"data-component-name": "AudioEmbedStatic" | |
}, | |
["p", { | |
class: "title" | |
}, e], | |
["p", { | |
class: "subtitle" | |
}, n] | |
]; | |
s && (o = [...o, ["p", { | |
class: "metadata" | |
}, s]]); | |
const r = ["table", { | |
class: "audio-embed-static", | |
cellspacing: "12", | |
"data-component-name": "AudioEmbedStaticTable" | |
}, | |
["tr", {}, | |
["td", { | |
class: "thumbnail-container" | |
}, | |
["div", { | |
class: "play-container" | |
}, | |
["img", { | |
class: "play", | |
src: q("/img/thumbnail-play.png", 72), | |
height: 36, | |
width: 36 | |
}] | |
], | |
["img", { | |
class: "thumbnail", | |
src: q(t, 160), | |
height: 80, | |
width: 80 | |
}] | |
], o | |
] | |
]; | |
return a ? ["a", { | |
class: "audio-embed-static-outer", | |
href: a, | |
target: "_blank", | |
"data-component-name": "AudioEmbedStaticLink" | |
}, r] : r | |
}, | |
PQ = t => { | |
const { | |
url: e, | |
isEpisode: n | |
} = t.attrs; | |
return ["div", { | |
class: "apple-podcast-container", | |
"data-component-name": "ApplePodcastToDom" | |
}, | |
["iframe", { | |
class: `apple-podcast ${n?"":"episode-list"}`, | |
"data-attrs": JSON.stringify(t.attrs), | |
src: e, | |
frameborder: "0", | |
allow: "autoplay *; encrypted-media *;", | |
allowfullscreen: "true" | |
}] | |
] | |
}, | |
BQ = t => { | |
const { | |
imageUrl: e, | |
isEpisode: n, | |
podcastTitle: s, | |
podcastByline: a, | |
duration: o, | |
numEpisodes: r, | |
targetUrl: i | |
} = t.attrs; | |
let c = t.attrs.title, | |
l = s, | |
u = Hl(o / 1e3); | |
return n || (c = s, l = a, u = Nf(r, "episode", { | |
zero_fallback: "No episodes" | |
})), Ha(e, c, l, u, { | |
targetUrl: i | |
}) | |
}, | |
wd = { | |
attrs: { | |
url: { | |
default: "" | |
}, | |
isEpisode: { | |
default: !1 | |
}, | |
imageUrl: { | |
default: "" | |
}, | |
title: { | |
default: "" | |
}, | |
podcastTitle: { | |
default: "" | |
}, | |
podcastByline: { | |
default: "" | |
}, | |
duration: { | |
default: "" | |
}, | |
numEpisodes: { | |
default: "" | |
}, | |
targetUrl: { | |
default: "" | |
}, | |
releaseDate: { | |
default: "" | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDom: [{ | |
tag: "iframe.apple-podcast", | |
getAttrs: re | |
}], | |
toDOM: PQ, | |
toDOMStatic: BQ | |
}, | |
zQ = /[<iframe]?.*[src="]?(https?:\/\/(embed\.)?podcasts\.apple\.com\/([^/]+)?\/?podcast\/([^/]+)\/?(id\d+)\??(i=(\d+))?)[\S]*/, | |
kd = t => { | |
const e = zQ.exec(t); | |
return e ? { | |
match: e[0], | |
embedLink: e[2], | |
countryCode: e[3], | |
slug: e[4], | |
podcastId: e[5].substr(2), | |
episodeId: e[7] | |
} : { | |
match: !1 | |
} | |
}, | |
qQ = F({ | |
name: "applePodcast", | |
nodeSpec: wd, | |
addCommands() { | |
return { | |
insertApplePodcast: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
FQ = (t, { | |
customSchema: e | |
} = {}) => e && !e.nodes.applePodcast ? null : kd(t).match || null, | |
jQ = t => N(void 0, null, function*() { | |
const e = kd(t), | |
{ | |
slug: n, | |
podcastId: s, | |
episodeId: a, | |
countryCode: o | |
} = e, | |
i = (yield he.get("/api/v1/apple_podcast").query({ | |
slug: n, | |
podcastId: s, | |
episodeId: a, | |
country: o | |
})).body; | |
return S({ | |
url: UQ(e), | |
isEpisode: !!e.episodeId | |
}, i) | |
}), | |
$Q = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
return (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.applePodcast.create(yield jQ(t)) | |
}), | |
UQ = ({ | |
countryCode: t, | |
slug: e, | |
podcastId: n, | |
episodeId: s | |
}) => { | |
const a = t || "us", | |
o = s ? `?i=${s}` : "", | |
r = encodeURIComponent(e || ""); | |
return `https://embed.podcasts.apple.com/${a}/podcast/${r}/id${n}${o}` | |
}, | |
VQ = "_container_1ctwc_1", | |
HQ = "_icon_1ctwc_6", | |
Ao = { | |
container: VQ, | |
icon: HQ | |
}, | |
_d = ({}) => { | |
const t = p(X.B4, { | |
translated: !0 | |
}, "This may be a temporary error, please refresh the page to try again."); | |
return p(wt, null, p(Y, { | |
alignItems: "center", | |
justifyContent: "center", | |
className: Ao.container | |
}, p(Eb, { | |
className: Ao.icon | |
}), p(ne, { | |
alignItems: "center", | |
gap: 4 | |
}, p(X.Meta, { | |
translated: !0, | |
color: "pub-accent" | |
}, "Image not found"), p(Ug, { | |
content: t | |
}, p(Cb, { | |
size: 12, | |
className: Ao.icon | |
}))))) | |
}, | |
pl = "image-asset-error", | |
Cd = { | |
attrs: { | |
url: { | |
default: "" | |
} | |
}, | |
group: "block", | |
defining: !0, | |
parseDOM: [{ | |
tag: `div.${pl}`, | |
getAttrs: re | |
}], | |
toDOM: t => { | |
if (typeof window != "undefined") try { | |
t.attrs.isEditor = !0; | |
const e = document.createElement("div"); | |
return e.className = pl, e.setAttribute("data-attrs", JSON.stringify(t.attrs)), Fe(p(_d, { | |
node: S({}, t) | |
}), e), e | |
} catch (e) { | |
return console.error("Error rendering ImageAssetError", e), Oe({ | |
msg: null, | |
node: t, | |
err: e, | |
group: "block" | |
}) | |
} | |
return ["div", { | |
"data-attrs": JSON.stringify(S({}, t.attrs)), | |
"data-component-name": "AssetErrorToDOM" | |
}, | |
[ | |
["picture"], | |
["img", { | |
src: Gl, | |
height: Mf, | |
width: Of | |
}] | |
] | |
] | |
}, | |
toDOMStatic: t => ["div", { | |
"data-attrs": JSON.stringify(S({}, t.attrs)), | |
"data-component-name": "AssetErrorToDOMStatic" | |
}] | |
}, | |
GQ = F({ | |
name: "assetError", | |
nodeSpec: Cd, | |
addNodeView() { | |
return kt(_d) | |
} | |
}), | |
WQ = ({ | |
node: t | |
}) => p(wt, null, p(wu, { | |
label: t.attrs.label, | |
src: `/api/v1/audio/upload/${t.attrs.mediaUploadId}/src`, | |
duration: t.attrs.duration | |
})), | |
Ed = { | |
attrs: { | |
label: { | |
default: null | |
}, | |
mediaUploadId: { | |
default: null | |
}, | |
duration: { | |
default: null | |
}, | |
isEditorNode: { | |
default: !1 | |
} | |
}, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.native-audio-embed", | |
getAttrs: re | |
}], | |
toDOM: t => { | |
if (typeof window != "undefined" && t.attrs.isEditorNode) try { | |
const e = document.createElement("div"); | |
return e.className = "native-audio-embed", e.setAttribute("data-attrs", JSON.stringify(t.attrs)), Fe(p(wu, { | |
label: t.attrs.label, | |
src: `/api/v1/audio/upload/${t.attrs.mediaUploadId}/src`, | |
duration: t.attrs.duration | |
}), e), e | |
} catch (e) { | |
return console.error("Error rendering AudioEmbedPlayer", e), Oe({ | |
msg: null, | |
node: t, | |
err: e, | |
group: "block" | |
}) | |
} | |
return dl(t) | |
}, | |
toDOMStatic: t => dl(t) | |
}, | |
JQ = F({ | |
name: "audio", | |
nodeSpec: Ed, | |
addNodeView: () => kt(WQ), | |
addCommands() { | |
return { | |
insertAudio: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: P(S({}, t), { | |
isEditorNode: !0 | |
}) | |
}) | |
} | |
} | |
}), | |
dl = t => ["div", { | |
class: "native-audio-embed", | |
"data-component-name": "AudioPlaceholder", | |
"data-attrs": JSON.stringify(t.attrs) | |
}], | |
YQ = t => ["div", { | |
class: "native-audio-url-embed", | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "AudioUrlPlaceholder" | |
}], | |
Ad = { | |
attrs: { | |
label: { | |
default: null | |
}, | |
url: { | |
default: null | |
}, | |
duration: { | |
default: null | |
} | |
}, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.native-audio-url-embed", | |
getAttrs: re | |
}], | |
toDOM: YQ | |
}, | |
KQ = F({ | |
name: "audioUrl", | |
nodeSpec: Ad | |
}), | |
Sd = { | |
attrs: { | |
request_id: { | |
default: null | |
}, | |
url: { | |
default: null | |
}, | |
src: { | |
default: null | |
}, | |
type: { | |
default: null | |
} | |
}, | |
untrackedAttrs: ["src"], | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "a.augmentation-placeholder", | |
getAttrs: re | |
}], | |
toDOM: t => ["a", { | |
class: "augmentation-placeholder image-link", | |
"data-attrs": JSON.stringify(t.attrs), | |
href: "javascript:void(0)", | |
"data-component-name": "AugmentationPlaceholderToDOM" | |
}, | |
["img", { | |
src: t.attrs.src || Fl | |
}] | |
] | |
}, | |
XQ = F({ | |
name: "augmentation_placeholder", | |
nodeSpec: Sd, | |
addCommands() { | |
return { | |
insertLoadingPlaceholder: (t, e) => ({ | |
commands: n | |
}) => e ? n.insertContentAt(e, { | |
type: this.name, | |
attrs: t | |
}) : n.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
ZQ = t => ["div", { | |
class: `bandcamp-wrap${t.attrs.is_album?" album":""}`, | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "BandcampToDOM" | |
}, | |
["iframe", { | |
src: t.attrs.embed_url, | |
frameborder: "0", | |
gesture: "media", | |
scrolling: "no", | |
allowfullscreen: "true" | |
}] | |
], | |
QQ = t => { | |
const { | |
thumbnail_url: e, | |
author: n, | |
title: s, | |
description: a, | |
url: o | |
} = t.attrs; | |
return Ha(e, s, (n || "").toString(), a, { | |
targetUrl: o | |
}) | |
}, | |
Td = { | |
attrs: { | |
url: { | |
default: "" | |
}, | |
title: { | |
default: "" | |
}, | |
description: { | |
default: "" | |
}, | |
thumbnail_url: { | |
default: "" | |
}, | |
author: { | |
default: "" | |
}, | |
embed_url: { | |
default: "" | |
}, | |
is_album: { | |
default: "" | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.bandcamp-wrap", | |
getAttrs: re | |
}], | |
toDOM: ZQ, | |
toDOMStatic: QQ | |
}, | |
eee = F({ | |
name: "bandcamp", | |
nodeSpec: Td, | |
addCommands() { | |
return { | |
insertBandcamp: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
Dd = /^.*(https?\:\/\/(\S+)?.bandcamp.com\/(...+)\/[^\/]+(\/[^\/]+)?(\?[\#]*)?(\#.*)?).*$/, | |
tee = t => { | |
const e = Dd.exec(t); | |
return e && e[1] | |
}, | |
nee = t => { | |
const e = Dd.exec(t); | |
return !!e && e[3] === "album" | |
}, | |
see = t => N(void 0, null, function*() { | |
const e = nee(t), | |
n = (yield Z(() => | |
import ("./sortBy-53166f8e.js").then(r => r.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default, | |
s = dr(t).theme === "dark" ? "dark" : "light", | |
o = (yield n.get("/api/v1/bandcamp").query({ | |
url: t.trim(), | |
is_album: e, | |
theme: s | |
})).body; | |
return P(S({}, o), { | |
is_album: e | |
}) | |
}), | |
aee = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
return (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.bandcamp.create(yield see(t)) | |
}), | |
Xr = { | |
content: "block+", | |
group: "block", | |
parseDOM: [{ | |
tag: "blockquote" | |
}, { | |
tag: "p", | |
priority: 100, | |
getAttrs: t => !t.style.marginLeft || t.style.marginLeft.startsWith("0") ? !1 : {} | |
}], | |
toDOM: () => ["blockquote", 0] | |
}, | |
oee = kr.extend({ | |
parseHTML() { | |
return Xr.parseDOM | |
}, | |
addCommands() { | |
return { | |
setBlockquote: () => ({ | |
state: t, | |
commands: e | |
}) => !gt(t, "paragraph") || gt(t, "pullquote") ? !1 : e.wrapIn(this.name), | |
toggleBlockquote: () => ({ | |
state: t, | |
commands: e | |
}) => !gt(t, "paragraph") || gt(t, "pullquote") ? !1 : e.toggleWrap(this.name), | |
unsetBlockquote: () => ({ | |
commands: t | |
}) => t.lift(this.name) | |
} | |
} | |
}), | |
Id = { | |
attrs: { | |
url: { | |
default: null | |
}, | |
text: { | |
default: null | |
}, | |
action: { | |
default: null | |
}, | |
class: { | |
default: null | |
} | |
}, | |
inline: !1, | |
atom: !0, | |
group: "block", | |
draggable: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "p.button-wrapper[data-attrs]", | |
priority: 100, | |
getAttrs: re | |
}], | |
toDOM: t => Zr(t) | |
}, | |
ree = F({ | |
name: "button", | |
nodeSpec: Id, | |
addCommands() { | |
return { | |
insertSubscribeButton: t => ({ | |
commands: e | |
}) => { | |
const n = { | |
url: ce.CHECKOUT_URL, | |
text: _n(t, { | |
now: !0 | |
}) | |
}; | |
return e.insertContent({ | |
type: this.name, | |
attrs: n | |
}) | |
}, | |
insertCustomButtonEditorV2: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}), | |
insertSubscribeButtonWithPreamble: t => ({ | |
commands: e, | |
editor: n | |
}) => { | |
const { | |
iTemplate: s | |
} = I18N.i({ | |
pub: t | |
}), a = t.payments_state !== "enabled" ? s `Thanks for reading ${t.name}! Subscribe for free to receive new posts and support my work.` : s `${t.name} is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.`, o = { | |
url: ce.CHECKOUT_URL, | |
text: _n(t), | |
language: t.language | |
}; | |
return e.insertContent({ | |
type: "subscribeWidget", | |
attrs: o, | |
content: [n.schema.nodes.ctaCaption.create(null, [n.schema.text(a)]).toJSON()] | |
}) | |
}, | |
insertCaptionedShareButton: t => ({ | |
commands: e, | |
editor: n | |
}) => { | |
const { | |
iString: s, | |
iTemplate: a | |
} = I18N.i({ | |
pub: t | |
}), o = a `Thank you for reading ${t.name}. This post is public so feel free to share it.`, r = { | |
url: ce.SHARE_URL, | |
text: s("Share") | |
}; | |
return e.insertContent({ | |
type: "captionedShareButton", | |
attrs: r, | |
content: [n.state.schema.nodes.ctaCaption.create(null, [n.state.schema.text(o)]).toJSON()] | |
}) | |
}, | |
insertSharePostButton: t => ({ | |
commands: e | |
}) => { | |
const { | |
iString: n | |
} = I18N.i({ | |
pub: t | |
}), s = { | |
url: ce.SHARE_URL, | |
text: n("Share") | |
}; | |
return e.insertContent({ | |
type: this.name, | |
attrs: s | |
}) | |
}, | |
insertSharePubButton: t => ({ | |
commands: e | |
}) => { | |
const { | |
iTemplate: n | |
} = I18N.i({ | |
pub: t | |
}), s = { | |
url: ce.SHARE_PUB_URL, | |
text: n `Share ${t.name}` | |
}; | |
return e.insertContent({ | |
type: this.name, | |
attrs: s | |
}) | |
}, | |
insertCommentsButton: t => ({ | |
commands: e | |
}) => { | |
const { | |
iString: n | |
} = I18N.i({ | |
pub: t | |
}), s = { | |
url: ce.HALF_MAGIC_COMMENTS_URL, | |
text: n("Leave a comment") | |
}; | |
return e.insertContent({ | |
type: this.name, | |
attrs: s | |
}) | |
}, | |
insertGiftButton: t => ({ | |
commands: e | |
}) => { | |
const { | |
iTemplate: n | |
} = I18N.i({ | |
pub: t | |
}), s = { | |
url: `${ce.CHECKOUT_URL}&gift=true`, | |
text: Cn(t, () => n `Give a gift subscription`, a => `Give a gift ${a.subscription}`) | |
}; | |
return e.insertContent({ | |
type: this.name, | |
attrs: s | |
}) | |
}, | |
insertDonateButton: t => ({ | |
commands: e | |
}) => { | |
const { | |
iString: n | |
} = I18N.i({ | |
pub: t | |
}), s = { | |
url: `${ce.CHECKOUT_URL}&donate=true`, | |
text: n("Donate Subscriptions") | |
}; | |
return e.insertContent({ | |
type: this.name, | |
attrs: s | |
}) | |
}, | |
insertSurveyButton: (t, e, n) => ({ | |
commands: s | |
}) => { | |
se(ae.READER_SURVEY_LINKED_IN_POST, { | |
editorVersion: "2", | |
surveyId: e.id | |
}); | |
const a = { | |
url: `${Wl(t,e.id)}`, | |
text: n | |
}; | |
return s.insertContent({ | |
type: this.name, | |
attrs: a | |
}) | |
}, | |
insertGroupSubscriptionButton: ({ | |
publication: t | |
}) => ({ | |
commands: e | |
}) => { | |
const { | |
iTemplate: n | |
} = I18N.i({ | |
pub: t | |
}), s = t.default_group_coupon, a = { | |
url: `${ce.CHECKOUT_URL}group=true${s?`&coupon=${s}`:""}`, | |
text: Cn(t, () => s && t.default_group_coupon_percent_off ? n `Get ${t.default_group_coupon_percent_off.split(".")[0]}% off a group subscription` : n `Get a group subscription`, o => s && t.default_group_coupon_percent_off ? `Get ${t.default_group_coupon_percent_off.split(".")[0]}% off a group ${o.subscription}` : `Get a group ${o.subscription}`) | |
}; | |
return e.insertContent({ | |
type: this.name, | |
attrs: a | |
}) | |
}, | |
insertCoupon: (t, e, n = {}) => ({ | |
commands: s | |
}) => { | |
const a = { | |
url: yt(`${t.base_url}/subscribe`, P(S({ | |
coupon: e.id | |
}, e.group_only && { | |
group: !0 | |
}), { | |
utm_content: n.postId | |
})), | |
text: `Get ${Jl(e)}` | |
}; | |
return s.insertContent({ | |
type: this.name, | |
attrs: a | |
}) | |
}, | |
insertReferralButton: t => ({ | |
commands: e | |
}) => { | |
const { | |
iString: n | |
} = I18N.i({ | |
pub: t | |
}), s = { | |
url: `${ce.LEADERBOARD_URL}&utm_source=${qe.post}`, | |
text: n("Refer a friend") | |
}; | |
return e.insertContent({ | |
type: this.name, | |
attrs: s | |
}) | |
}, | |
insertCaptionedWriterReferralButtonV2: ({ | |
writerReferralCode: t, | |
publication: e, | |
postId: n | |
}) => ({ | |
commands: s, | |
state: a, | |
dispatch: o | |
}) => { | |
if (!Le(a, a.schema.nodes.button)) return !1; | |
const { | |
iString: r, | |
iTemplate: i | |
} = I18N.i({ | |
pub: e | |
}), c = i `Start writing today. Use the button below to create your Substack and connect your publication with ${e.name}`, l = { | |
url: `${Yl(t||"")}?utm_source=${qe.substack}&utm_context=${Kl.post}&utm_content=${n}&utm_campaign=${Ut.writerReferralButton}`, | |
text: r("Start a Substack") | |
}, u = a.schema.nodes.captionedWriterReferralButton.create(l, a.schema.nodes.ctaCaption.create(null, [a.schema.text(c)])); | |
return o ? s.insertContent(u.toJSON()) : !0 | |
} | |
} | |
} | |
}), | |
Zr = t => { | |
const e = document.createElement("span"); | |
e.textContent = t.attrs.text; | |
const n = document.createElement("a"); | |
n.className = "button primary", t.attrs.class && (n.className += ` ${t.attrs.class}`), n.href = t.attrs.url, n.appendChild(e), n.addEventListener("click", a => { | |
/^.*%%.*%%/.test(n.href) && (a.preventDefault(), Lf(n.href)) | |
}); | |
const s = document.createElement("p"); | |
return s.className = "button-wrapper", s.setAttribute("data-attrs", JSON.stringify(t.attrs)), s.setAttribute("data-component-name", "ButtonCreateButton"), s.appendChild(n), s | |
}, | |
Nd = { | |
content: "text*", | |
group: "block", | |
selectable: !0, | |
defining: !0, | |
isolating: !0, | |
parseDOM: [{ | |
tag: "figcaption" | |
}], | |
toDOM: () => ["figcaption", { | |
class: "image-caption" | |
}, 0] | |
}, | |
iee = F({ | |
name: "caption", | |
nodeSpec: Nd | |
}), | |
or = t => ({ | |
content: "ctaCaption", | |
attrs: { | |
url: { | |
default: null | |
}, | |
text: { | |
default: null | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !1, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.captioned-button-wrap", | |
getAttrs: re | |
}], | |
toDOM: e => { | |
const n = document.createElement("div"); | |
n.className = "captioned-button-wrap", n.setAttribute("data-attrs", JSON.stringify(e.attrs)), n.setAttribute("data-component-name", "CaptionedButtonToDOM"); | |
const s = document.createElement("div"); | |
s.className = "preamble"; | |
const a = Zr({ | |
attrs: S(S({}, e.attrs), t) | |
}); | |
return n.appendChild(s), n.appendChild(a), { | |
dom: n, | |
contentDOM: s | |
} | |
} | |
}), | |
Md = ({ | |
substitutionAttrs: t, | |
name: e | |
}) => F({ | |
name: e, | |
nodeSpec: or(t) | |
}), | |
cee = Md({ | |
name: "captionedShareButton", | |
substitutionAttrs: { | |
url: ce.SHARE_URL | |
} | |
}), | |
lee = Md({ | |
name: "captionedWriterReferralButton", | |
substitutionAttrs: { | |
hasDynamicSubstitutions: !1 | |
} | |
}), | |
Od = { | |
content: "block caption*", | |
atom: !1, | |
selectable: !0, | |
isolating: !1, | |
defining: !0, | |
draggable: !0, | |
group: "block", | |
parseDOM: [{ | |
tag: "figure" | |
}], | |
toDOM: () => ["div", { | |
class: "captioned-image-container" | |
}, | |
["figure", 0] | |
], | |
toDOMStatic: () => ["div", { | |
class: "captioned-image-container-static" | |
}, | |
["figure", 0] | |
] | |
}, | |
uee = F({ | |
name: "captionedImage", | |
nodeSpec: Od | |
}), | |
Ld = { | |
attrs: { | |
symbol: { | |
default: "" | |
} | |
}, | |
atom: !0, | |
editable: !1, | |
selectable: !0, | |
isolating: !1, | |
defining: !0, | |
draggable: !1, | |
inline: !0, | |
group: "inline", | |
parseDOM: [{ | |
tag: ".cashtag-wrap", | |
getAttrs: t => { | |
try { | |
return JSON.parse(t.getElementsByTagName("a")[0].getAttribute("data-attrs")) | |
} catch (e) { | |
return !1 | |
} | |
} | |
}], | |
toDOM: t => { | |
if (typeof window != "undefined") try { | |
const e = document.createElement("span"); | |
return e.className = "cashtag-wrap", Fe(p(Vh, { | |
symbol: t.attrs.symbol.trim() | |
}), e), e | |
} catch (e) { | |
return console.error("Error rendering Cashtag", e), Oe({ | |
msg: null, | |
node: t, | |
err: e, | |
group: "inline" | |
}) | |
} | |
return ["span", { | |
class: "cashtag-wrap", | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "CashtagToDOM" | |
}] | |
}, | |
toDOMStatic: t => ["span", { | |
class: "cashtag-wrap", | |
"data-component-name": "CashtagToDOMStatic", | |
"data-attrs": JSON.stringify(P(S({}, t.attrs), { | |
prependSymbol: !0, | |
isStatic: !0 | |
})) | |
}] | |
}, | |
pee = F({ | |
name: "cashtag", | |
nodeSpec: Ld | |
}); | |
var Rd = {}; | |
const dee = { | |
"application/1d-interleaved-parityfec": { | |
source: "iana" | |
}, | |
"application/3gpdash-qoe-report+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/3gpp-ims+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/3gpphal+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/3gpphalforms+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/a2l": { | |
source: "iana" | |
}, | |
"application/ace+cbor": { | |
source: "iana" | |
}, | |
"application/activemessage": { | |
source: "iana" | |
}, | |
"application/activity+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/alto-costmap+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/alto-costmapfilter+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/alto-directory+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/alto-endpointcost+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/alto-endpointcostparams+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/alto-endpointprop+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/alto-endpointpropparams+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/alto-error+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/alto-networkmap+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/alto-networkmapfilter+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/alto-updatestreamcontrol+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/alto-updatestreamparams+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/aml": { | |
source: "iana" | |
}, | |
"application/andrew-inset": { | |
source: "iana", | |
extensions: ["ez"] | |
}, | |
"application/applefile": { | |
source: "iana" | |
}, | |
"application/applixware": { | |
source: "apache", | |
extensions: ["aw"] | |
}, | |
"application/at+jwt": { | |
source: "iana" | |
}, | |
"application/atf": { | |
source: "iana" | |
}, | |
"application/atfx": { | |
source: "iana" | |
}, | |
"application/atom+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["atom"] | |
}, | |
"application/atomcat+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["atomcat"] | |
}, | |
"application/atomdeleted+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["atomdeleted"] | |
}, | |
"application/atomicmail": { | |
source: "iana" | |
}, | |
"application/atomsvc+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["atomsvc"] | |
}, | |
"application/atsc-dwd+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["dwd"] | |
}, | |
"application/atsc-dynamic-event-message": { | |
source: "iana" | |
}, | |
"application/atsc-held+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["held"] | |
}, | |
"application/atsc-rdt+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/atsc-rsat+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["rsat"] | |
}, | |
"application/atxml": { | |
source: "iana" | |
}, | |
"application/auth-policy+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/bacnet-xdd+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/batch-smtp": { | |
source: "iana" | |
}, | |
"application/bdoc": { | |
compressible: !1, | |
extensions: ["bdoc"] | |
}, | |
"application/beep+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/calendar+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/calendar+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xcs"] | |
}, | |
"application/call-completion": { | |
source: "iana" | |
}, | |
"application/cals-1840": { | |
source: "iana" | |
}, | |
"application/captive+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/cbor": { | |
source: "iana" | |
}, | |
"application/cbor-seq": { | |
source: "iana" | |
}, | |
"application/cccex": { | |
source: "iana" | |
}, | |
"application/ccmp+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/ccxml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["ccxml"] | |
}, | |
"application/cdfx+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["cdfx"] | |
}, | |
"application/cdmi-capability": { | |
source: "iana", | |
extensions: ["cdmia"] | |
}, | |
"application/cdmi-container": { | |
source: "iana", | |
extensions: ["cdmic"] | |
}, | |
"application/cdmi-domain": { | |
source: "iana", | |
extensions: ["cdmid"] | |
}, | |
"application/cdmi-object": { | |
source: "iana", | |
extensions: ["cdmio"] | |
}, | |
"application/cdmi-queue": { | |
source: "iana", | |
extensions: ["cdmiq"] | |
}, | |
"application/cdni": { | |
source: "iana" | |
}, | |
"application/cea": { | |
source: "iana" | |
}, | |
"application/cea-2018+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/cellml+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/cfw": { | |
source: "iana" | |
}, | |
"application/city+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/clr": { | |
source: "iana" | |
}, | |
"application/clue+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/clue_info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/cms": { | |
source: "iana" | |
}, | |
"application/cnrp+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/coap-group+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/coap-payload": { | |
source: "iana" | |
}, | |
"application/commonground": { | |
source: "iana" | |
}, | |
"application/conference-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/cose": { | |
source: "iana" | |
}, | |
"application/cose-key": { | |
source: "iana" | |
}, | |
"application/cose-key-set": { | |
source: "iana" | |
}, | |
"application/cpl+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["cpl"] | |
}, | |
"application/csrattrs": { | |
source: "iana" | |
}, | |
"application/csta+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/cstadata+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/csvm+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/cu-seeme": { | |
source: "apache", | |
extensions: ["cu"] | |
}, | |
"application/cwt": { | |
source: "iana" | |
}, | |
"application/cybercash": { | |
source: "iana" | |
}, | |
"application/dart": { | |
compressible: !0 | |
}, | |
"application/dash+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["mpd"] | |
}, | |
"application/dash-patch+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["mpp"] | |
}, | |
"application/dashdelta": { | |
source: "iana" | |
}, | |
"application/davmount+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["davmount"] | |
}, | |
"application/dca-rft": { | |
source: "iana" | |
}, | |
"application/dcd": { | |
source: "iana" | |
}, | |
"application/dec-dx": { | |
source: "iana" | |
}, | |
"application/dialog-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/dicom": { | |
source: "iana" | |
}, | |
"application/dicom+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/dicom+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/dii": { | |
source: "iana" | |
}, | |
"application/dit": { | |
source: "iana" | |
}, | |
"application/dns": { | |
source: "iana" | |
}, | |
"application/dns+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/dns-message": { | |
source: "iana" | |
}, | |
"application/docbook+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["dbk"] | |
}, | |
"application/dots+cbor": { | |
source: "iana" | |
}, | |
"application/dskpp+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/dssc+der": { | |
source: "iana", | |
extensions: ["dssc"] | |
}, | |
"application/dssc+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xdssc"] | |
}, | |
"application/dvcs": { | |
source: "iana" | |
}, | |
"application/ecmascript": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["es", "ecma"] | |
}, | |
"application/edi-consent": { | |
source: "iana" | |
}, | |
"application/edi-x12": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/edifact": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/efi": { | |
source: "iana" | |
}, | |
"application/elm+json": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/elm+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/emergencycalldata.cap+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/emergencycalldata.comment+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/emergencycalldata.control+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/emergencycalldata.deviceinfo+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/emergencycalldata.ecall.msd": { | |
source: "iana" | |
}, | |
"application/emergencycalldata.providerinfo+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/emergencycalldata.serviceinfo+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/emergencycalldata.subscriberinfo+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/emergencycalldata.veds+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/emma+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["emma"] | |
}, | |
"application/emotionml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["emotionml"] | |
}, | |
"application/encaprtp": { | |
source: "iana" | |
}, | |
"application/epp+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/epub+zip": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["epub"] | |
}, | |
"application/eshop": { | |
source: "iana" | |
}, | |
"application/exi": { | |
source: "iana", | |
extensions: ["exi"] | |
}, | |
"application/expect-ct-report+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/express": { | |
source: "iana", | |
extensions: ["exp"] | |
}, | |
"application/fastinfoset": { | |
source: "iana" | |
}, | |
"application/fastsoap": { | |
source: "iana" | |
}, | |
"application/fdt+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["fdt"] | |
}, | |
"application/fhir+json": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/fhir+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/fido.trusted-apps+json": { | |
compressible: !0 | |
}, | |
"application/fits": { | |
source: "iana" | |
}, | |
"application/flexfec": { | |
source: "iana" | |
}, | |
"application/font-sfnt": { | |
source: "iana" | |
}, | |
"application/font-tdpfr": { | |
source: "iana", | |
extensions: ["pfr"] | |
}, | |
"application/font-woff": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/framework-attributes+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/geo+json": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["geojson"] | |
}, | |
"application/geo+json-seq": { | |
source: "iana" | |
}, | |
"application/geopackage+sqlite3": { | |
source: "iana" | |
}, | |
"application/geoxacml+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/gltf-buffer": { | |
source: "iana" | |
}, | |
"application/gml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["gml"] | |
}, | |
"application/gpx+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["gpx"] | |
}, | |
"application/gxf": { | |
source: "apache", | |
extensions: ["gxf"] | |
}, | |
"application/gzip": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["gz"] | |
}, | |
"application/h224": { | |
source: "iana" | |
}, | |
"application/held+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/hjson": { | |
extensions: ["hjson"] | |
}, | |
"application/http": { | |
source: "iana" | |
}, | |
"application/hyperstudio": { | |
source: "iana", | |
extensions: ["stk"] | |
}, | |
"application/ibe-key-request+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/ibe-pkg-reply+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/ibe-pp-data": { | |
source: "iana" | |
}, | |
"application/iges": { | |
source: "iana" | |
}, | |
"application/im-iscomposing+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/index": { | |
source: "iana" | |
}, | |
"application/index.cmd": { | |
source: "iana" | |
}, | |
"application/index.obj": { | |
source: "iana" | |
}, | |
"application/index.response": { | |
source: "iana" | |
}, | |
"application/index.vnd": { | |
source: "iana" | |
}, | |
"application/inkml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["ink", "inkml"] | |
}, | |
"application/iotp": { | |
source: "iana" | |
}, | |
"application/ipfix": { | |
source: "iana", | |
extensions: ["ipfix"] | |
}, | |
"application/ipp": { | |
source: "iana" | |
}, | |
"application/isup": { | |
source: "iana" | |
}, | |
"application/its+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["its"] | |
}, | |
"application/java-archive": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["jar", "war", "ear"] | |
}, | |
"application/java-serialized-object": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["ser"] | |
}, | |
"application/java-vm": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["class"] | |
}, | |
"application/javascript": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0, | |
extensions: ["js", "mjs"] | |
}, | |
"application/jf2feed+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/jose": { | |
source: "iana" | |
}, | |
"application/jose+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/jrd+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/jscalendar+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/json": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0, | |
extensions: ["json", "map"] | |
}, | |
"application/json-patch+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/json-seq": { | |
source: "iana" | |
}, | |
"application/json5": { | |
extensions: ["json5"] | |
}, | |
"application/jsonml+json": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["jsonml"] | |
}, | |
"application/jwk+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/jwk-set+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/jwt": { | |
source: "iana" | |
}, | |
"application/kpml-request+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/kpml-response+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/ld+json": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["jsonld"] | |
}, | |
"application/lgr+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["lgr"] | |
}, | |
"application/link-format": { | |
source: "iana" | |
}, | |
"application/load-control+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/lost+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["lostxml"] | |
}, | |
"application/lostsync+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/lpf+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/lxf": { | |
source: "iana" | |
}, | |
"application/mac-binhex40": { | |
source: "iana", | |
extensions: ["hqx"] | |
}, | |
"application/mac-compactpro": { | |
source: "apache", | |
extensions: ["cpt"] | |
}, | |
"application/macwriteii": { | |
source: "iana" | |
}, | |
"application/mads+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["mads"] | |
}, | |
"application/manifest+json": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0, | |
extensions: ["webmanifest"] | |
}, | |
"application/marc": { | |
source: "iana", | |
extensions: ["mrc"] | |
}, | |
"application/marcxml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["mrcx"] | |
}, | |
"application/mathematica": { | |
source: "iana", | |
extensions: ["ma", "nb", "mb"] | |
}, | |
"application/mathml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["mathml"] | |
}, | |
"application/mathml-content+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mathml-presentation+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mbms-associated-procedure-description+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mbms-deregister+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mbms-envelope+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mbms-msk+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mbms-msk-response+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mbms-protection-description+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mbms-reception-report+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mbms-register+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mbms-register-response+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mbms-schedule+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mbms-user-service-description+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mbox": { | |
source: "iana", | |
extensions: ["mbox"] | |
}, | |
"application/media-policy-dataset+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["mpf"] | |
}, | |
"application/media_control+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mediaservercontrol+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["mscml"] | |
}, | |
"application/merge-patch+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/metalink+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["metalink"] | |
}, | |
"application/metalink4+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["meta4"] | |
}, | |
"application/mets+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["mets"] | |
}, | |
"application/mf4": { | |
source: "iana" | |
}, | |
"application/mikey": { | |
source: "iana" | |
}, | |
"application/mipc": { | |
source: "iana" | |
}, | |
"application/missing-blocks+cbor-seq": { | |
source: "iana" | |
}, | |
"application/mmt-aei+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["maei"] | |
}, | |
"application/mmt-usd+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["musd"] | |
}, | |
"application/mods+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["mods"] | |
}, | |
"application/moss-keys": { | |
source: "iana" | |
}, | |
"application/moss-signature": { | |
source: "iana" | |
}, | |
"application/mosskey-data": { | |
source: "iana" | |
}, | |
"application/mosskey-request": { | |
source: "iana" | |
}, | |
"application/mp21": { | |
source: "iana", | |
extensions: ["m21", "mp21"] | |
}, | |
"application/mp4": { | |
source: "iana", | |
extensions: ["mp4s", "m4p"] | |
}, | |
"application/mpeg4-generic": { | |
source: "iana" | |
}, | |
"application/mpeg4-iod": { | |
source: "iana" | |
}, | |
"application/mpeg4-iod-xmt": { | |
source: "iana" | |
}, | |
"application/mrb-consumer+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/mrb-publish+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/msc-ivr+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/msc-mixer+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/msword": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["doc", "dot"] | |
}, | |
"application/mud+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/multipart-core": { | |
source: "iana" | |
}, | |
"application/mxf": { | |
source: "iana", | |
extensions: ["mxf"] | |
}, | |
"application/n-quads": { | |
source: "iana", | |
extensions: ["nq"] | |
}, | |
"application/n-triples": { | |
source: "iana", | |
extensions: ["nt"] | |
}, | |
"application/nasdata": { | |
source: "iana" | |
}, | |
"application/news-checkgroups": { | |
source: "iana", | |
charset: "US-ASCII" | |
}, | |
"application/news-groupinfo": { | |
source: "iana", | |
charset: "US-ASCII" | |
}, | |
"application/news-transmission": { | |
source: "iana" | |
}, | |
"application/nlsml+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/node": { | |
source: "iana", | |
extensions: ["cjs"] | |
}, | |
"application/nss": { | |
source: "iana" | |
}, | |
"application/oauth-authz-req+jwt": { | |
source: "iana" | |
}, | |
"application/oblivious-dns-message": { | |
source: "iana" | |
}, | |
"application/ocsp-request": { | |
source: "iana" | |
}, | |
"application/ocsp-response": { | |
source: "iana" | |
}, | |
"application/octet-stream": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"] | |
}, | |
"application/oda": { | |
source: "iana", | |
extensions: ["oda"] | |
}, | |
"application/odm+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/odx": { | |
source: "iana" | |
}, | |
"application/oebps-package+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["opf"] | |
}, | |
"application/ogg": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["ogx"] | |
}, | |
"application/omdoc+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["omdoc"] | |
}, | |
"application/onenote": { | |
source: "apache", | |
extensions: ["onetoc", "onetoc2", "onetmp", "onepkg"] | |
}, | |
"application/opc-nodeset+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/oscore": { | |
source: "iana" | |
}, | |
"application/oxps": { | |
source: "iana", | |
extensions: ["oxps"] | |
}, | |
"application/p21": { | |
source: "iana" | |
}, | |
"application/p21+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/p2p-overlay+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["relo"] | |
}, | |
"application/parityfec": { | |
source: "iana" | |
}, | |
"application/passport": { | |
source: "iana" | |
}, | |
"application/patch-ops-error+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xer"] | |
}, | |
"application/pdf": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["pdf"] | |
}, | |
"application/pdx": { | |
source: "iana" | |
}, | |
"application/pem-certificate-chain": { | |
source: "iana" | |
}, | |
"application/pgp-encrypted": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["pgp"] | |
}, | |
"application/pgp-keys": { | |
source: "iana", | |
extensions: ["asc"] | |
}, | |
"application/pgp-signature": { | |
source: "iana", | |
extensions: ["asc", "sig"] | |
}, | |
"application/pics-rules": { | |
source: "apache", | |
extensions: ["prf"] | |
}, | |
"application/pidf+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/pidf-diff+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/pkcs10": { | |
source: "iana", | |
extensions: ["p10"] | |
}, | |
"application/pkcs12": { | |
source: "iana" | |
}, | |
"application/pkcs7-mime": { | |
source: "iana", | |
extensions: ["p7m", "p7c"] | |
}, | |
"application/pkcs7-signature": { | |
source: "iana", | |
extensions: ["p7s"] | |
}, | |
"application/pkcs8": { | |
source: "iana", | |
extensions: ["p8"] | |
}, | |
"application/pkcs8-encrypted": { | |
source: "iana" | |
}, | |
"application/pkix-attr-cert": { | |
source: "iana", | |
extensions: ["ac"] | |
}, | |
"application/pkix-cert": { | |
source: "iana", | |
extensions: ["cer"] | |
}, | |
"application/pkix-crl": { | |
source: "iana", | |
extensions: ["crl"] | |
}, | |
"application/pkix-pkipath": { | |
source: "iana", | |
extensions: ["pkipath"] | |
}, | |
"application/pkixcmp": { | |
source: "iana", | |
extensions: ["pki"] | |
}, | |
"application/pls+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["pls"] | |
}, | |
"application/poc-settings+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/postscript": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["ai", "eps", "ps"] | |
}, | |
"application/ppsp-tracker+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/problem+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/problem+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/provenance+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["provx"] | |
}, | |
"application/prs.alvestrand.titrax-sheet": { | |
source: "iana" | |
}, | |
"application/prs.cww": { | |
source: "iana", | |
extensions: ["cww"] | |
}, | |
"application/prs.cyn": { | |
source: "iana", | |
charset: "7-BIT" | |
}, | |
"application/prs.hpub+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/prs.nprend": { | |
source: "iana" | |
}, | |
"application/prs.plucker": { | |
source: "iana" | |
}, | |
"application/prs.rdf-xml-crypt": { | |
source: "iana" | |
}, | |
"application/prs.xsf+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/pskc+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["pskcxml"] | |
}, | |
"application/pvd+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/qsig": { | |
source: "iana" | |
}, | |
"application/raml+yaml": { | |
compressible: !0, | |
extensions: ["raml"] | |
}, | |
"application/raptorfec": { | |
source: "iana" | |
}, | |
"application/rdap+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/rdf+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["rdf", "owl"] | |
}, | |
"application/reginfo+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["rif"] | |
}, | |
"application/relax-ng-compact-syntax": { | |
source: "iana", | |
extensions: ["rnc"] | |
}, | |
"application/remote-printing": { | |
source: "iana" | |
}, | |
"application/reputon+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/resource-lists+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["rl"] | |
}, | |
"application/resource-lists-diff+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["rld"] | |
}, | |
"application/rfc+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/riscos": { | |
source: "iana" | |
}, | |
"application/rlmi+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/rls-services+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["rs"] | |
}, | |
"application/route-apd+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["rapd"] | |
}, | |
"application/route-s-tsid+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["sls"] | |
}, | |
"application/route-usd+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["rusd"] | |
}, | |
"application/rpki-ghostbusters": { | |
source: "iana", | |
extensions: ["gbr"] | |
}, | |
"application/rpki-manifest": { | |
source: "iana", | |
extensions: ["mft"] | |
}, | |
"application/rpki-publication": { | |
source: "iana" | |
}, | |
"application/rpki-roa": { | |
source: "iana", | |
extensions: ["roa"] | |
}, | |
"application/rpki-updown": { | |
source: "iana" | |
}, | |
"application/rsd+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["rsd"] | |
}, | |
"application/rss+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["rss"] | |
}, | |
"application/rtf": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["rtf"] | |
}, | |
"application/rtploopback": { | |
source: "iana" | |
}, | |
"application/rtx": { | |
source: "iana" | |
}, | |
"application/samlassertion+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/samlmetadata+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/sarif+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/sarif-external-properties+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/sbe": { | |
source: "iana" | |
}, | |
"application/sbml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["sbml"] | |
}, | |
"application/scaip+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/scim+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/scvp-cv-request": { | |
source: "iana", | |
extensions: ["scq"] | |
}, | |
"application/scvp-cv-response": { | |
source: "iana", | |
extensions: ["scs"] | |
}, | |
"application/scvp-vp-request": { | |
source: "iana", | |
extensions: ["spq"] | |
}, | |
"application/scvp-vp-response": { | |
source: "iana", | |
extensions: ["spp"] | |
}, | |
"application/sdp": { | |
source: "iana", | |
extensions: ["sdp"] | |
}, | |
"application/secevent+jwt": { | |
source: "iana" | |
}, | |
"application/senml+cbor": { | |
source: "iana" | |
}, | |
"application/senml+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/senml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["senmlx"] | |
}, | |
"application/senml-etch+cbor": { | |
source: "iana" | |
}, | |
"application/senml-etch+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/senml-exi": { | |
source: "iana" | |
}, | |
"application/sensml+cbor": { | |
source: "iana" | |
}, | |
"application/sensml+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/sensml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["sensmlx"] | |
}, | |
"application/sensml-exi": { | |
source: "iana" | |
}, | |
"application/sep+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/sep-exi": { | |
source: "iana" | |
}, | |
"application/session-info": { | |
source: "iana" | |
}, | |
"application/set-payment": { | |
source: "iana" | |
}, | |
"application/set-payment-initiation": { | |
source: "iana", | |
extensions: ["setpay"] | |
}, | |
"application/set-registration": { | |
source: "iana" | |
}, | |
"application/set-registration-initiation": { | |
source: "iana", | |
extensions: ["setreg"] | |
}, | |
"application/sgml": { | |
source: "iana" | |
}, | |
"application/sgml-open-catalog": { | |
source: "iana" | |
}, | |
"application/shf+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["shf"] | |
}, | |
"application/sieve": { | |
source: "iana", | |
extensions: ["siv", "sieve"] | |
}, | |
"application/simple-filter+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/simple-message-summary": { | |
source: "iana" | |
}, | |
"application/simplesymbolcontainer": { | |
source: "iana" | |
}, | |
"application/sipc": { | |
source: "iana" | |
}, | |
"application/slate": { | |
source: "iana" | |
}, | |
"application/smil": { | |
source: "iana" | |
}, | |
"application/smil+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["smi", "smil"] | |
}, | |
"application/smpte336m": { | |
source: "iana" | |
}, | |
"application/soap+fastinfoset": { | |
source: "iana" | |
}, | |
"application/soap+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/sparql-query": { | |
source: "iana", | |
extensions: ["rq"] | |
}, | |
"application/sparql-results+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["srx"] | |
}, | |
"application/spdx+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/spirits-event+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/sql": { | |
source: "iana" | |
}, | |
"application/srgs": { | |
source: "iana", | |
extensions: ["gram"] | |
}, | |
"application/srgs+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["grxml"] | |
}, | |
"application/sru+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["sru"] | |
}, | |
"application/ssdl+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["ssdl"] | |
}, | |
"application/ssml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["ssml"] | |
}, | |
"application/stix+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/swid+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["swidtag"] | |
}, | |
"application/tamp-apex-update": { | |
source: "iana" | |
}, | |
"application/tamp-apex-update-confirm": { | |
source: "iana" | |
}, | |
"application/tamp-community-update": { | |
source: "iana" | |
}, | |
"application/tamp-community-update-confirm": { | |
source: "iana" | |
}, | |
"application/tamp-error": { | |
source: "iana" | |
}, | |
"application/tamp-sequence-adjust": { | |
source: "iana" | |
}, | |
"application/tamp-sequence-adjust-confirm": { | |
source: "iana" | |
}, | |
"application/tamp-status-query": { | |
source: "iana" | |
}, | |
"application/tamp-status-response": { | |
source: "iana" | |
}, | |
"application/tamp-update": { | |
source: "iana" | |
}, | |
"application/tamp-update-confirm": { | |
source: "iana" | |
}, | |
"application/tar": { | |
compressible: !0 | |
}, | |
"application/taxii+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/td+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/tei+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["tei", "teicorpus"] | |
}, | |
"application/tetra_isi": { | |
source: "iana" | |
}, | |
"application/thraud+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["tfi"] | |
}, | |
"application/timestamp-query": { | |
source: "iana" | |
}, | |
"application/timestamp-reply": { | |
source: "iana" | |
}, | |
"application/timestamped-data": { | |
source: "iana", | |
extensions: ["tsd"] | |
}, | |
"application/tlsrpt+gzip": { | |
source: "iana" | |
}, | |
"application/tlsrpt+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/tnauthlist": { | |
source: "iana" | |
}, | |
"application/token-introspection+jwt": { | |
source: "iana" | |
}, | |
"application/toml": { | |
compressible: !0, | |
extensions: ["toml"] | |
}, | |
"application/trickle-ice-sdpfrag": { | |
source: "iana" | |
}, | |
"application/trig": { | |
source: "iana", | |
extensions: ["trig"] | |
}, | |
"application/ttml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["ttml"] | |
}, | |
"application/tve-trigger": { | |
source: "iana" | |
}, | |
"application/tzif": { | |
source: "iana" | |
}, | |
"application/tzif-leap": { | |
source: "iana" | |
}, | |
"application/ubjson": { | |
compressible: !1, | |
extensions: ["ubj"] | |
}, | |
"application/ulpfec": { | |
source: "iana" | |
}, | |
"application/urc-grpsheet+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/urc-ressheet+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["rsheet"] | |
}, | |
"application/urc-targetdesc+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["td"] | |
}, | |
"application/urc-uisocketdesc+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vcard+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vcard+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vemmi": { | |
source: "iana" | |
}, | |
"application/vividence.scriptfile": { | |
source: "apache" | |
}, | |
"application/vnd.1000minds.decision-model+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["1km"] | |
}, | |
"application/vnd.3gpp-prose+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp-prose-pc3ch+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp-v2x-local-service-information": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp.5gnas": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp.access-transfer-events+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.bsf+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.gmop+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.gtpc": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp.interworking-data": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp.lpp": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp.mc-signalling-ear": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp.mcdata-affiliation-command+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcdata-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcdata-payload": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp.mcdata-service-config+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcdata-signalling": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp.mcdata-ue-config+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcdata-user-profile+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcptt-affiliation-command+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcptt-floor-request+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcptt-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcptt-location-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcptt-mbms-usage-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcptt-service-config+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcptt-signed+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcptt-ue-config+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcptt-ue-init-config+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcptt-user-profile+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcvideo-affiliation-command+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcvideo-affiliation-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcvideo-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcvideo-location-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcvideo-service-config+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcvideo-transmission-request+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcvideo-ue-config+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mcvideo-user-profile+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.mid-call+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.ngap": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp.pfcp": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp.pic-bw-large": { | |
source: "iana", | |
extensions: ["plb"] | |
}, | |
"application/vnd.3gpp.pic-bw-small": { | |
source: "iana", | |
extensions: ["psb"] | |
}, | |
"application/vnd.3gpp.pic-bw-var": { | |
source: "iana", | |
extensions: ["pvb"] | |
}, | |
"application/vnd.3gpp.s1ap": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp.sms": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp.sms+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.srvcc-ext+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.srvcc-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.state-and-event-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp.ussd+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp2.bcmcsinfo+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.3gpp2.sms": { | |
source: "iana" | |
}, | |
"application/vnd.3gpp2.tcap": { | |
source: "iana", | |
extensions: ["tcap"] | |
}, | |
"application/vnd.3lightssoftware.imagescal": { | |
source: "iana" | |
}, | |
"application/vnd.3m.post-it-notes": { | |
source: "iana", | |
extensions: ["pwn"] | |
}, | |
"application/vnd.accpac.simply.aso": { | |
source: "iana", | |
extensions: ["aso"] | |
}, | |
"application/vnd.accpac.simply.imp": { | |
source: "iana", | |
extensions: ["imp"] | |
}, | |
"application/vnd.acucobol": { | |
source: "iana", | |
extensions: ["acu"] | |
}, | |
"application/vnd.acucorp": { | |
source: "iana", | |
extensions: ["atc", "acutc"] | |
}, | |
"application/vnd.adobe.air-application-installer-package+zip": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["air"] | |
}, | |
"application/vnd.adobe.flash.movie": { | |
source: "iana" | |
}, | |
"application/vnd.adobe.formscentral.fcdt": { | |
source: "iana", | |
extensions: ["fcdt"] | |
}, | |
"application/vnd.adobe.fxp": { | |
source: "iana", | |
extensions: ["fxp", "fxpl"] | |
}, | |
"application/vnd.adobe.partial-upload": { | |
source: "iana" | |
}, | |
"application/vnd.adobe.xdp+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xdp"] | |
}, | |
"application/vnd.adobe.xfdf": { | |
source: "iana", | |
extensions: ["xfdf"] | |
}, | |
"application/vnd.aether.imp": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.afplinedata": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.afplinedata-pagedef": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.cmoca-cmresource": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.foca-charset": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.foca-codedfont": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.foca-codepage": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.modca": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.modca-cmtable": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.modca-formdef": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.modca-mediummap": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.modca-objectcontainer": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.modca-overlay": { | |
source: "iana" | |
}, | |
"application/vnd.afpc.modca-pagesegment": { | |
source: "iana" | |
}, | |
"application/vnd.age": { | |
source: "iana", | |
extensions: ["age"] | |
}, | |
"application/vnd.ah-barcode": { | |
source: "iana" | |
}, | |
"application/vnd.ahead.space": { | |
source: "iana", | |
extensions: ["ahead"] | |
}, | |
"application/vnd.airzip.filesecure.azf": { | |
source: "iana", | |
extensions: ["azf"] | |
}, | |
"application/vnd.airzip.filesecure.azs": { | |
source: "iana", | |
extensions: ["azs"] | |
}, | |
"application/vnd.amadeus+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.amazon.ebook": { | |
source: "apache", | |
extensions: ["azw"] | |
}, | |
"application/vnd.amazon.mobi8-ebook": { | |
source: "iana" | |
}, | |
"application/vnd.americandynamics.acc": { | |
source: "iana", | |
extensions: ["acc"] | |
}, | |
"application/vnd.amiga.ami": { | |
source: "iana", | |
extensions: ["ami"] | |
}, | |
"application/vnd.amundsen.maze+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.android.ota": { | |
source: "iana" | |
}, | |
"application/vnd.android.package-archive": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["apk"] | |
}, | |
"application/vnd.anki": { | |
source: "iana" | |
}, | |
"application/vnd.anser-web-certificate-issue-initiation": { | |
source: "iana", | |
extensions: ["cii"] | |
}, | |
"application/vnd.anser-web-funds-transfer-initiation": { | |
source: "apache", | |
extensions: ["fti"] | |
}, | |
"application/vnd.antix.game-component": { | |
source: "iana", | |
extensions: ["atx"] | |
}, | |
"application/vnd.apache.arrow.file": { | |
source: "iana" | |
}, | |
"application/vnd.apache.arrow.stream": { | |
source: "iana" | |
}, | |
"application/vnd.apache.thrift.binary": { | |
source: "iana" | |
}, | |
"application/vnd.apache.thrift.compact": { | |
source: "iana" | |
}, | |
"application/vnd.apache.thrift.json": { | |
source: "iana" | |
}, | |
"application/vnd.api+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.aplextor.warrp+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.apothekende.reservation+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.apple.installer+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["mpkg"] | |
}, | |
"application/vnd.apple.keynote": { | |
source: "iana", | |
extensions: ["key"] | |
}, | |
"application/vnd.apple.mpegurl": { | |
source: "iana", | |
extensions: ["m3u8"] | |
}, | |
"application/vnd.apple.numbers": { | |
source: "iana", | |
extensions: ["numbers"] | |
}, | |
"application/vnd.apple.pages": { | |
source: "iana", | |
extensions: ["pages"] | |
}, | |
"application/vnd.apple.pkpass": { | |
compressible: !1, | |
extensions: ["pkpass"] | |
}, | |
"application/vnd.arastra.swi": { | |
source: "iana" | |
}, | |
"application/vnd.aristanetworks.swi": { | |
source: "iana", | |
extensions: ["swi"] | |
}, | |
"application/vnd.artisan+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.artsquare": { | |
source: "iana" | |
}, | |
"application/vnd.astraea-software.iota": { | |
source: "iana", | |
extensions: ["iota"] | |
}, | |
"application/vnd.audiograph": { | |
source: "iana", | |
extensions: ["aep"] | |
}, | |
"application/vnd.autopackage": { | |
source: "iana" | |
}, | |
"application/vnd.avalon+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.avistar+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.balsamiq.bmml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["bmml"] | |
}, | |
"application/vnd.balsamiq.bmpr": { | |
source: "iana" | |
}, | |
"application/vnd.banana-accounting": { | |
source: "iana" | |
}, | |
"application/vnd.bbf.usp.error": { | |
source: "iana" | |
}, | |
"application/vnd.bbf.usp.msg": { | |
source: "iana" | |
}, | |
"application/vnd.bbf.usp.msg+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.bekitzur-stech+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.bint.med-content": { | |
source: "iana" | |
}, | |
"application/vnd.biopax.rdf+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.blink-idb-value-wrapper": { | |
source: "iana" | |
}, | |
"application/vnd.blueice.multipass": { | |
source: "iana", | |
extensions: ["mpm"] | |
}, | |
"application/vnd.bluetooth.ep.oob": { | |
source: "iana" | |
}, | |
"application/vnd.bluetooth.le.oob": { | |
source: "iana" | |
}, | |
"application/vnd.bmi": { | |
source: "iana", | |
extensions: ["bmi"] | |
}, | |
"application/vnd.bpf": { | |
source: "iana" | |
}, | |
"application/vnd.bpf3": { | |
source: "iana" | |
}, | |
"application/vnd.businessobjects": { | |
source: "iana", | |
extensions: ["rep"] | |
}, | |
"application/vnd.byu.uapi+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.cab-jscript": { | |
source: "iana" | |
}, | |
"application/vnd.canon-cpdl": { | |
source: "iana" | |
}, | |
"application/vnd.canon-lips": { | |
source: "iana" | |
}, | |
"application/vnd.capasystems-pg+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.cendio.thinlinc.clientconf": { | |
source: "iana" | |
}, | |
"application/vnd.century-systems.tcp_stream": { | |
source: "iana" | |
}, | |
"application/vnd.chemdraw+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["cdxml"] | |
}, | |
"application/vnd.chess-pgn": { | |
source: "iana" | |
}, | |
"application/vnd.chipnuts.karaoke-mmd": { | |
source: "iana", | |
extensions: ["mmd"] | |
}, | |
"application/vnd.ciedi": { | |
source: "iana" | |
}, | |
"application/vnd.cinderella": { | |
source: "iana", | |
extensions: ["cdy"] | |
}, | |
"application/vnd.cirpack.isdn-ext": { | |
source: "iana" | |
}, | |
"application/vnd.citationstyles.style+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["csl"] | |
}, | |
"application/vnd.claymore": { | |
source: "iana", | |
extensions: ["cla"] | |
}, | |
"application/vnd.cloanto.rp9": { | |
source: "iana", | |
extensions: ["rp9"] | |
}, | |
"application/vnd.clonk.c4group": { | |
source: "iana", | |
extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"] | |
}, | |
"application/vnd.cluetrust.cartomobile-config": { | |
source: "iana", | |
extensions: ["c11amc"] | |
}, | |
"application/vnd.cluetrust.cartomobile-config-pkg": { | |
source: "iana", | |
extensions: ["c11amz"] | |
}, | |
"application/vnd.coffeescript": { | |
source: "iana" | |
}, | |
"application/vnd.collabio.xodocuments.document": { | |
source: "iana" | |
}, | |
"application/vnd.collabio.xodocuments.document-template": { | |
source: "iana" | |
}, | |
"application/vnd.collabio.xodocuments.presentation": { | |
source: "iana" | |
}, | |
"application/vnd.collabio.xodocuments.presentation-template": { | |
source: "iana" | |
}, | |
"application/vnd.collabio.xodocuments.spreadsheet": { | |
source: "iana" | |
}, | |
"application/vnd.collabio.xodocuments.spreadsheet-template": { | |
source: "iana" | |
}, | |
"application/vnd.collection+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.collection.doc+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.collection.next+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.comicbook+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.comicbook-rar": { | |
source: "iana" | |
}, | |
"application/vnd.commerce-battelle": { | |
source: "iana" | |
}, | |
"application/vnd.commonspace": { | |
source: "iana", | |
extensions: ["csp"] | |
}, | |
"application/vnd.contact.cmsg": { | |
source: "iana", | |
extensions: ["cdbcmsg"] | |
}, | |
"application/vnd.coreos.ignition+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.cosmocaller": { | |
source: "iana", | |
extensions: ["cmc"] | |
}, | |
"application/vnd.crick.clicker": { | |
source: "iana", | |
extensions: ["clkx"] | |
}, | |
"application/vnd.crick.clicker.keyboard": { | |
source: "iana", | |
extensions: ["clkk"] | |
}, | |
"application/vnd.crick.clicker.palette": { | |
source: "iana", | |
extensions: ["clkp"] | |
}, | |
"application/vnd.crick.clicker.template": { | |
source: "iana", | |
extensions: ["clkt"] | |
}, | |
"application/vnd.crick.clicker.wordbank": { | |
source: "iana", | |
extensions: ["clkw"] | |
}, | |
"application/vnd.criticaltools.wbs+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["wbs"] | |
}, | |
"application/vnd.cryptii.pipe+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.crypto-shade-file": { | |
source: "iana" | |
}, | |
"application/vnd.cryptomator.encrypted": { | |
source: "iana" | |
}, | |
"application/vnd.cryptomator.vault": { | |
source: "iana" | |
}, | |
"application/vnd.ctc-posml": { | |
source: "iana", | |
extensions: ["pml"] | |
}, | |
"application/vnd.ctct.ws+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.cups-pdf": { | |
source: "iana" | |
}, | |
"application/vnd.cups-postscript": { | |
source: "iana" | |
}, | |
"application/vnd.cups-ppd": { | |
source: "iana", | |
extensions: ["ppd"] | |
}, | |
"application/vnd.cups-raster": { | |
source: "iana" | |
}, | |
"application/vnd.cups-raw": { | |
source: "iana" | |
}, | |
"application/vnd.curl": { | |
source: "iana" | |
}, | |
"application/vnd.curl.car": { | |
source: "apache", | |
extensions: ["car"] | |
}, | |
"application/vnd.curl.pcurl": { | |
source: "apache", | |
extensions: ["pcurl"] | |
}, | |
"application/vnd.cyan.dean.root+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.cybank": { | |
source: "iana" | |
}, | |
"application/vnd.cyclonedx+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.cyclonedx+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.d2l.coursepackage1p0+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.d3m-dataset": { | |
source: "iana" | |
}, | |
"application/vnd.d3m-problem": { | |
source: "iana" | |
}, | |
"application/vnd.dart": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["dart"] | |
}, | |
"application/vnd.data-vision.rdz": { | |
source: "iana", | |
extensions: ["rdz"] | |
}, | |
"application/vnd.datapackage+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.dataresource+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.dbf": { | |
source: "iana", | |
extensions: ["dbf"] | |
}, | |
"application/vnd.debian.binary-package": { | |
source: "iana" | |
}, | |
"application/vnd.dece.data": { | |
source: "iana", | |
extensions: ["uvf", "uvvf", "uvd", "uvvd"] | |
}, | |
"application/vnd.dece.ttml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["uvt", "uvvt"] | |
}, | |
"application/vnd.dece.unspecified": { | |
source: "iana", | |
extensions: ["uvx", "uvvx"] | |
}, | |
"application/vnd.dece.zip": { | |
source: "iana", | |
extensions: ["uvz", "uvvz"] | |
}, | |
"application/vnd.denovo.fcselayout-link": { | |
source: "iana", | |
extensions: ["fe_launch"] | |
}, | |
"application/vnd.desmume.movie": { | |
source: "iana" | |
}, | |
"application/vnd.dir-bi.plate-dl-nosuffix": { | |
source: "iana" | |
}, | |
"application/vnd.dm.delegation+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.dna": { | |
source: "iana", | |
extensions: ["dna"] | |
}, | |
"application/vnd.document+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.dolby.mlp": { | |
source: "apache", | |
extensions: ["mlp"] | |
}, | |
"application/vnd.dolby.mobile.1": { | |
source: "iana" | |
}, | |
"application/vnd.dolby.mobile.2": { | |
source: "iana" | |
}, | |
"application/vnd.doremir.scorecloud-binary-document": { | |
source: "iana" | |
}, | |
"application/vnd.dpgraph": { | |
source: "iana", | |
extensions: ["dpg"] | |
}, | |
"application/vnd.dreamfactory": { | |
source: "iana", | |
extensions: ["dfac"] | |
}, | |
"application/vnd.drive+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ds-keypoint": { | |
source: "apache", | |
extensions: ["kpxx"] | |
}, | |
"application/vnd.dtg.local": { | |
source: "iana" | |
}, | |
"application/vnd.dtg.local.flash": { | |
source: "iana" | |
}, | |
"application/vnd.dtg.local.html": { | |
source: "iana" | |
}, | |
"application/vnd.dvb.ait": { | |
source: "iana", | |
extensions: ["ait"] | |
}, | |
"application/vnd.dvb.dvbisl+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.dvb.dvbj": { | |
source: "iana" | |
}, | |
"application/vnd.dvb.esgcontainer": { | |
source: "iana" | |
}, | |
"application/vnd.dvb.ipdcdftnotifaccess": { | |
source: "iana" | |
}, | |
"application/vnd.dvb.ipdcesgaccess": { | |
source: "iana" | |
}, | |
"application/vnd.dvb.ipdcesgaccess2": { | |
source: "iana" | |
}, | |
"application/vnd.dvb.ipdcesgpdd": { | |
source: "iana" | |
}, | |
"application/vnd.dvb.ipdcroaming": { | |
source: "iana" | |
}, | |
"application/vnd.dvb.iptv.alfec-base": { | |
source: "iana" | |
}, | |
"application/vnd.dvb.iptv.alfec-enhancement": { | |
source: "iana" | |
}, | |
"application/vnd.dvb.notif-aggregate-root+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.dvb.notif-container+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.dvb.notif-generic+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.dvb.notif-ia-msglist+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.dvb.notif-ia-registration-request+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.dvb.notif-ia-registration-response+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.dvb.notif-init+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.dvb.pfr": { | |
source: "iana" | |
}, | |
"application/vnd.dvb.service": { | |
source: "iana", | |
extensions: ["svc"] | |
}, | |
"application/vnd.dxr": { | |
source: "iana" | |
}, | |
"application/vnd.dynageo": { | |
source: "iana", | |
extensions: ["geo"] | |
}, | |
"application/vnd.dzr": { | |
source: "iana" | |
}, | |
"application/vnd.easykaraoke.cdgdownload": { | |
source: "iana" | |
}, | |
"application/vnd.ecdis-update": { | |
source: "iana" | |
}, | |
"application/vnd.ecip.rlp": { | |
source: "iana" | |
}, | |
"application/vnd.eclipse.ditto+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ecowin.chart": { | |
source: "iana", | |
extensions: ["mag"] | |
}, | |
"application/vnd.ecowin.filerequest": { | |
source: "iana" | |
}, | |
"application/vnd.ecowin.fileupdate": { | |
source: "iana" | |
}, | |
"application/vnd.ecowin.series": { | |
source: "iana" | |
}, | |
"application/vnd.ecowin.seriesrequest": { | |
source: "iana" | |
}, | |
"application/vnd.ecowin.seriesupdate": { | |
source: "iana" | |
}, | |
"application/vnd.efi.img": { | |
source: "iana" | |
}, | |
"application/vnd.efi.iso": { | |
source: "iana" | |
}, | |
"application/vnd.emclient.accessrequest+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.enliven": { | |
source: "iana", | |
extensions: ["nml"] | |
}, | |
"application/vnd.enphase.envoy": { | |
source: "iana" | |
}, | |
"application/vnd.eprints.data+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.epson.esf": { | |
source: "iana", | |
extensions: ["esf"] | |
}, | |
"application/vnd.epson.msf": { | |
source: "iana", | |
extensions: ["msf"] | |
}, | |
"application/vnd.epson.quickanime": { | |
source: "iana", | |
extensions: ["qam"] | |
}, | |
"application/vnd.epson.salt": { | |
source: "iana", | |
extensions: ["slt"] | |
}, | |
"application/vnd.epson.ssf": { | |
source: "iana", | |
extensions: ["ssf"] | |
}, | |
"application/vnd.ericsson.quickcall": { | |
source: "iana" | |
}, | |
"application/vnd.espass-espass+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.eszigno3+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["es3", "et3"] | |
}, | |
"application/vnd.etsi.aoc+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.asic-e+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.etsi.asic-s+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.etsi.cug+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.iptvcommand+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.iptvdiscovery+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.iptvprofile+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.iptvsad-bc+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.iptvsad-cod+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.iptvsad-npvr+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.iptvservice+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.iptvsync+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.iptvueprofile+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.mcid+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.mheg5": { | |
source: "iana" | |
}, | |
"application/vnd.etsi.overload-control-policy-dataset+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.pstn+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.sci+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.simservs+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.timestamp-token": { | |
source: "iana" | |
}, | |
"application/vnd.etsi.tsl+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.etsi.tsl.der": { | |
source: "iana" | |
}, | |
"application/vnd.eu.kasparian.car+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.eudora.data": { | |
source: "iana" | |
}, | |
"application/vnd.evolv.ecig.profile": { | |
source: "iana" | |
}, | |
"application/vnd.evolv.ecig.settings": { | |
source: "iana" | |
}, | |
"application/vnd.evolv.ecig.theme": { | |
source: "iana" | |
}, | |
"application/vnd.exstream-empower+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.exstream-package": { | |
source: "iana" | |
}, | |
"application/vnd.ezpix-album": { | |
source: "iana", | |
extensions: ["ez2"] | |
}, | |
"application/vnd.ezpix-package": { | |
source: "iana", | |
extensions: ["ez3"] | |
}, | |
"application/vnd.f-secure.mobile": { | |
source: "iana" | |
}, | |
"application/vnd.familysearch.gedcom+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.fastcopy-disk-image": { | |
source: "iana" | |
}, | |
"application/vnd.fdf": { | |
source: "iana", | |
extensions: ["fdf"] | |
}, | |
"application/vnd.fdsn.mseed": { | |
source: "iana", | |
extensions: ["mseed"] | |
}, | |
"application/vnd.fdsn.seed": { | |
source: "iana", | |
extensions: ["seed", "dataless"] | |
}, | |
"application/vnd.ffsns": { | |
source: "iana" | |
}, | |
"application/vnd.ficlab.flb+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.filmit.zfc": { | |
source: "iana" | |
}, | |
"application/vnd.fints": { | |
source: "iana" | |
}, | |
"application/vnd.firemonkeys.cloudcell": { | |
source: "iana" | |
}, | |
"application/vnd.flographit": { | |
source: "iana", | |
extensions: ["gph"] | |
}, | |
"application/vnd.fluxtime.clip": { | |
source: "iana", | |
extensions: ["ftc"] | |
}, | |
"application/vnd.font-fontforge-sfd": { | |
source: "iana" | |
}, | |
"application/vnd.framemaker": { | |
source: "iana", | |
extensions: ["fm", "frame", "maker", "book"] | |
}, | |
"application/vnd.frogans.fnc": { | |
source: "iana", | |
extensions: ["fnc"] | |
}, | |
"application/vnd.frogans.ltf": { | |
source: "iana", | |
extensions: ["ltf"] | |
}, | |
"application/vnd.fsc.weblaunch": { | |
source: "iana", | |
extensions: ["fsc"] | |
}, | |
"application/vnd.fujifilm.fb.docuworks": { | |
source: "iana" | |
}, | |
"application/vnd.fujifilm.fb.docuworks.binder": { | |
source: "iana" | |
}, | |
"application/vnd.fujifilm.fb.docuworks.container": { | |
source: "iana" | |
}, | |
"application/vnd.fujifilm.fb.jfi+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.fujitsu.oasys": { | |
source: "iana", | |
extensions: ["oas"] | |
}, | |
"application/vnd.fujitsu.oasys2": { | |
source: "iana", | |
extensions: ["oa2"] | |
}, | |
"application/vnd.fujitsu.oasys3": { | |
source: "iana", | |
extensions: ["oa3"] | |
}, | |
"application/vnd.fujitsu.oasysgp": { | |
source: "iana", | |
extensions: ["fg5"] | |
}, | |
"application/vnd.fujitsu.oasysprs": { | |
source: "iana", | |
extensions: ["bh2"] | |
}, | |
"application/vnd.fujixerox.art-ex": { | |
source: "iana" | |
}, | |
"application/vnd.fujixerox.art4": { | |
source: "iana" | |
}, | |
"application/vnd.fujixerox.ddd": { | |
source: "iana", | |
extensions: ["ddd"] | |
}, | |
"application/vnd.fujixerox.docuworks": { | |
source: "iana", | |
extensions: ["xdw"] | |
}, | |
"application/vnd.fujixerox.docuworks.binder": { | |
source: "iana", | |
extensions: ["xbd"] | |
}, | |
"application/vnd.fujixerox.docuworks.container": { | |
source: "iana" | |
}, | |
"application/vnd.fujixerox.hbpl": { | |
source: "iana" | |
}, | |
"application/vnd.fut-misnet": { | |
source: "iana" | |
}, | |
"application/vnd.futoin+cbor": { | |
source: "iana" | |
}, | |
"application/vnd.futoin+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.fuzzysheet": { | |
source: "iana", | |
extensions: ["fzs"] | |
}, | |
"application/vnd.genomatix.tuxedo": { | |
source: "iana", | |
extensions: ["txd"] | |
}, | |
"application/vnd.gentics.grd+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.geo+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.geocube+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.geogebra.file": { | |
source: "iana", | |
extensions: ["ggb"] | |
}, | |
"application/vnd.geogebra.slides": { | |
source: "iana" | |
}, | |
"application/vnd.geogebra.tool": { | |
source: "iana", | |
extensions: ["ggt"] | |
}, | |
"application/vnd.geometry-explorer": { | |
source: "iana", | |
extensions: ["gex", "gre"] | |
}, | |
"application/vnd.geonext": { | |
source: "iana", | |
extensions: ["gxt"] | |
}, | |
"application/vnd.geoplan": { | |
source: "iana", | |
extensions: ["g2w"] | |
}, | |
"application/vnd.geospace": { | |
source: "iana", | |
extensions: ["g3w"] | |
}, | |
"application/vnd.gerber": { | |
source: "iana" | |
}, | |
"application/vnd.globalplatform.card-content-mgt": { | |
source: "iana" | |
}, | |
"application/vnd.globalplatform.card-content-mgt-response": { | |
source: "iana" | |
}, | |
"application/vnd.gmx": { | |
source: "iana", | |
extensions: ["gmx"] | |
}, | |
"application/vnd.google-apps.document": { | |
compressible: !1, | |
extensions: ["gdoc"] | |
}, | |
"application/vnd.google-apps.presentation": { | |
compressible: !1, | |
extensions: ["gslides"] | |
}, | |
"application/vnd.google-apps.spreadsheet": { | |
compressible: !1, | |
extensions: ["gsheet"] | |
}, | |
"application/vnd.google-earth.kml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["kml"] | |
}, | |
"application/vnd.google-earth.kmz": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["kmz"] | |
}, | |
"application/vnd.gov.sk.e-form+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.gov.sk.e-form+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.gov.sk.xmldatacontainer+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.grafeq": { | |
source: "iana", | |
extensions: ["gqf", "gqs"] | |
}, | |
"application/vnd.gridmp": { | |
source: "iana" | |
}, | |
"application/vnd.groove-account": { | |
source: "iana", | |
extensions: ["gac"] | |
}, | |
"application/vnd.groove-help": { | |
source: "iana", | |
extensions: ["ghf"] | |
}, | |
"application/vnd.groove-identity-message": { | |
source: "iana", | |
extensions: ["gim"] | |
}, | |
"application/vnd.groove-injector": { | |
source: "iana", | |
extensions: ["grv"] | |
}, | |
"application/vnd.groove-tool-message": { | |
source: "iana", | |
extensions: ["gtm"] | |
}, | |
"application/vnd.groove-tool-template": { | |
source: "iana", | |
extensions: ["tpl"] | |
}, | |
"application/vnd.groove-vcard": { | |
source: "iana", | |
extensions: ["vcg"] | |
}, | |
"application/vnd.hal+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.hal+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["hal"] | |
}, | |
"application/vnd.handheld-entertainment+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["zmm"] | |
}, | |
"application/vnd.hbci": { | |
source: "iana", | |
extensions: ["hbci"] | |
}, | |
"application/vnd.hc+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.hcl-bireports": { | |
source: "iana" | |
}, | |
"application/vnd.hdt": { | |
source: "iana" | |
}, | |
"application/vnd.heroku+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.hhe.lesson-player": { | |
source: "iana", | |
extensions: ["les"] | |
}, | |
"application/vnd.hl7cda+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/vnd.hl7v2+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/vnd.hp-hpgl": { | |
source: "iana", | |
extensions: ["hpgl"] | |
}, | |
"application/vnd.hp-hpid": { | |
source: "iana", | |
extensions: ["hpid"] | |
}, | |
"application/vnd.hp-hps": { | |
source: "iana", | |
extensions: ["hps"] | |
}, | |
"application/vnd.hp-jlyt": { | |
source: "iana", | |
extensions: ["jlt"] | |
}, | |
"application/vnd.hp-pcl": { | |
source: "iana", | |
extensions: ["pcl"] | |
}, | |
"application/vnd.hp-pclxl": { | |
source: "iana", | |
extensions: ["pclxl"] | |
}, | |
"application/vnd.httphone": { | |
source: "iana" | |
}, | |
"application/vnd.hydrostatix.sof-data": { | |
source: "iana", | |
extensions: ["sfd-hdstx"] | |
}, | |
"application/vnd.hyper+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.hyper-item+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.hyperdrive+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.hzn-3d-crossword": { | |
source: "iana" | |
}, | |
"application/vnd.ibm.afplinedata": { | |
source: "iana" | |
}, | |
"application/vnd.ibm.electronic-media": { | |
source: "iana" | |
}, | |
"application/vnd.ibm.minipay": { | |
source: "iana", | |
extensions: ["mpy"] | |
}, | |
"application/vnd.ibm.modcap": { | |
source: "iana", | |
extensions: ["afp", "listafp", "list3820"] | |
}, | |
"application/vnd.ibm.rights-management": { | |
source: "iana", | |
extensions: ["irm"] | |
}, | |
"application/vnd.ibm.secure-container": { | |
source: "iana", | |
extensions: ["sc"] | |
}, | |
"application/vnd.iccprofile": { | |
source: "iana", | |
extensions: ["icc", "icm"] | |
}, | |
"application/vnd.ieee.1905": { | |
source: "iana" | |
}, | |
"application/vnd.igloader": { | |
source: "iana", | |
extensions: ["igl"] | |
}, | |
"application/vnd.imagemeter.folder+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.imagemeter.image+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.immervision-ivp": { | |
source: "iana", | |
extensions: ["ivp"] | |
}, | |
"application/vnd.immervision-ivu": { | |
source: "iana", | |
extensions: ["ivu"] | |
}, | |
"application/vnd.ims.imsccv1p1": { | |
source: "iana" | |
}, | |
"application/vnd.ims.imsccv1p2": { | |
source: "iana" | |
}, | |
"application/vnd.ims.imsccv1p3": { | |
source: "iana" | |
}, | |
"application/vnd.ims.lis.v2.result+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ims.lti.v2.toolconsumerprofile+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ims.lti.v2.toolproxy+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ims.lti.v2.toolproxy.id+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ims.lti.v2.toolsettings+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ims.lti.v2.toolsettings.simple+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.informedcontrol.rms+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.informix-visionary": { | |
source: "iana" | |
}, | |
"application/vnd.infotech.project": { | |
source: "iana" | |
}, | |
"application/vnd.infotech.project+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.innopath.wamp.notification": { | |
source: "iana" | |
}, | |
"application/vnd.insors.igm": { | |
source: "iana", | |
extensions: ["igm"] | |
}, | |
"application/vnd.intercon.formnet": { | |
source: "iana", | |
extensions: ["xpw", "xpx"] | |
}, | |
"application/vnd.intergeo": { | |
source: "iana", | |
extensions: ["i2g"] | |
}, | |
"application/vnd.intertrust.digibox": { | |
source: "iana" | |
}, | |
"application/vnd.intertrust.nncp": { | |
source: "iana" | |
}, | |
"application/vnd.intu.qbo": { | |
source: "iana", | |
extensions: ["qbo"] | |
}, | |
"application/vnd.intu.qfx": { | |
source: "iana", | |
extensions: ["qfx"] | |
}, | |
"application/vnd.iptc.g2.catalogitem+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.iptc.g2.conceptitem+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.iptc.g2.knowledgeitem+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.iptc.g2.newsitem+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.iptc.g2.newsmessage+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.iptc.g2.packageitem+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.iptc.g2.planningitem+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ipunplugged.rcprofile": { | |
source: "iana", | |
extensions: ["rcprofile"] | |
}, | |
"application/vnd.irepository.package+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["irp"] | |
}, | |
"application/vnd.is-xpr": { | |
source: "iana", | |
extensions: ["xpr"] | |
}, | |
"application/vnd.isac.fcs": { | |
source: "iana", | |
extensions: ["fcs"] | |
}, | |
"application/vnd.iso11783-10+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.jam": { | |
source: "iana", | |
extensions: ["jam"] | |
}, | |
"application/vnd.japannet-directory-service": { | |
source: "iana" | |
}, | |
"application/vnd.japannet-jpnstore-wakeup": { | |
source: "iana" | |
}, | |
"application/vnd.japannet-payment-wakeup": { | |
source: "iana" | |
}, | |
"application/vnd.japannet-registration": { | |
source: "iana" | |
}, | |
"application/vnd.japannet-registration-wakeup": { | |
source: "iana" | |
}, | |
"application/vnd.japannet-setstore-wakeup": { | |
source: "iana" | |
}, | |
"application/vnd.japannet-verification": { | |
source: "iana" | |
}, | |
"application/vnd.japannet-verification-wakeup": { | |
source: "iana" | |
}, | |
"application/vnd.jcp.javame.midlet-rms": { | |
source: "iana", | |
extensions: ["rms"] | |
}, | |
"application/vnd.jisp": { | |
source: "iana", | |
extensions: ["jisp"] | |
}, | |
"application/vnd.joost.joda-archive": { | |
source: "iana", | |
extensions: ["joda"] | |
}, | |
"application/vnd.jsk.isdn-ngn": { | |
source: "iana" | |
}, | |
"application/vnd.kahootz": { | |
source: "iana", | |
extensions: ["ktz", "ktr"] | |
}, | |
"application/vnd.kde.karbon": { | |
source: "iana", | |
extensions: ["karbon"] | |
}, | |
"application/vnd.kde.kchart": { | |
source: "iana", | |
extensions: ["chrt"] | |
}, | |
"application/vnd.kde.kformula": { | |
source: "iana", | |
extensions: ["kfo"] | |
}, | |
"application/vnd.kde.kivio": { | |
source: "iana", | |
extensions: ["flw"] | |
}, | |
"application/vnd.kde.kontour": { | |
source: "iana", | |
extensions: ["kon"] | |
}, | |
"application/vnd.kde.kpresenter": { | |
source: "iana", | |
extensions: ["kpr", "kpt"] | |
}, | |
"application/vnd.kde.kspread": { | |
source: "iana", | |
extensions: ["ksp"] | |
}, | |
"application/vnd.kde.kword": { | |
source: "iana", | |
extensions: ["kwd", "kwt"] | |
}, | |
"application/vnd.kenameaapp": { | |
source: "iana", | |
extensions: ["htke"] | |
}, | |
"application/vnd.kidspiration": { | |
source: "iana", | |
extensions: ["kia"] | |
}, | |
"application/vnd.kinar": { | |
source: "iana", | |
extensions: ["kne", "knp"] | |
}, | |
"application/vnd.koan": { | |
source: "iana", | |
extensions: ["skp", "skd", "skt", "skm"] | |
}, | |
"application/vnd.kodak-descriptor": { | |
source: "iana", | |
extensions: ["sse"] | |
}, | |
"application/vnd.las": { | |
source: "iana" | |
}, | |
"application/vnd.las.las+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.las.las+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["lasxml"] | |
}, | |
"application/vnd.laszip": { | |
source: "iana" | |
}, | |
"application/vnd.leap+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.liberty-request+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.llamagraphics.life-balance.desktop": { | |
source: "iana", | |
extensions: ["lbd"] | |
}, | |
"application/vnd.llamagraphics.life-balance.exchange+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["lbe"] | |
}, | |
"application/vnd.logipipe.circuit+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.loom": { | |
source: "iana" | |
}, | |
"application/vnd.lotus-1-2-3": { | |
source: "iana", | |
extensions: ["123"] | |
}, | |
"application/vnd.lotus-approach": { | |
source: "iana", | |
extensions: ["apr"] | |
}, | |
"application/vnd.lotus-freelance": { | |
source: "iana", | |
extensions: ["pre"] | |
}, | |
"application/vnd.lotus-notes": { | |
source: "iana", | |
extensions: ["nsf"] | |
}, | |
"application/vnd.lotus-organizer": { | |
source: "iana", | |
extensions: ["org"] | |
}, | |
"application/vnd.lotus-screencam": { | |
source: "iana", | |
extensions: ["scm"] | |
}, | |
"application/vnd.lotus-wordpro": { | |
source: "iana", | |
extensions: ["lwp"] | |
}, | |
"application/vnd.macports.portpkg": { | |
source: "iana", | |
extensions: ["portpkg"] | |
}, | |
"application/vnd.mapbox-vector-tile": { | |
source: "iana", | |
extensions: ["mvt"] | |
}, | |
"application/vnd.marlin.drm.actiontoken+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.marlin.drm.conftoken+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.marlin.drm.license+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.marlin.drm.mdcf": { | |
source: "iana" | |
}, | |
"application/vnd.mason+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.maxar.archive.3tz+zip": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"application/vnd.maxmind.maxmind-db": { | |
source: "iana" | |
}, | |
"application/vnd.mcd": { | |
source: "iana", | |
extensions: ["mcd"] | |
}, | |
"application/vnd.medcalcdata": { | |
source: "iana", | |
extensions: ["mc1"] | |
}, | |
"application/vnd.mediastation.cdkey": { | |
source: "iana", | |
extensions: ["cdkey"] | |
}, | |
"application/vnd.meridian-slingshot": { | |
source: "iana" | |
}, | |
"application/vnd.mfer": { | |
source: "iana", | |
extensions: ["mwf"] | |
}, | |
"application/vnd.mfmp": { | |
source: "iana", | |
extensions: ["mfm"] | |
}, | |
"application/vnd.micro+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.micrografx.flo": { | |
source: "iana", | |
extensions: ["flo"] | |
}, | |
"application/vnd.micrografx.igx": { | |
source: "iana", | |
extensions: ["igx"] | |
}, | |
"application/vnd.microsoft.portable-executable": { | |
source: "iana" | |
}, | |
"application/vnd.microsoft.windows.thumbnail-cache": { | |
source: "iana" | |
}, | |
"application/vnd.miele+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.mif": { | |
source: "iana", | |
extensions: ["mif"] | |
}, | |
"application/vnd.minisoft-hp3000-save": { | |
source: "iana" | |
}, | |
"application/vnd.mitsubishi.misty-guard.trustweb": { | |
source: "iana" | |
}, | |
"application/vnd.mobius.daf": { | |
source: "iana", | |
extensions: ["daf"] | |
}, | |
"application/vnd.mobius.dis": { | |
source: "iana", | |
extensions: ["dis"] | |
}, | |
"application/vnd.mobius.mbk": { | |
source: "iana", | |
extensions: ["mbk"] | |
}, | |
"application/vnd.mobius.mqy": { | |
source: "iana", | |
extensions: ["mqy"] | |
}, | |
"application/vnd.mobius.msl": { | |
source: "iana", | |
extensions: ["msl"] | |
}, | |
"application/vnd.mobius.plc": { | |
source: "iana", | |
extensions: ["plc"] | |
}, | |
"application/vnd.mobius.txf": { | |
source: "iana", | |
extensions: ["txf"] | |
}, | |
"application/vnd.mophun.application": { | |
source: "iana", | |
extensions: ["mpn"] | |
}, | |
"application/vnd.mophun.certificate": { | |
source: "iana", | |
extensions: ["mpc"] | |
}, | |
"application/vnd.motorola.flexsuite": { | |
source: "iana" | |
}, | |
"application/vnd.motorola.flexsuite.adsi": { | |
source: "iana" | |
}, | |
"application/vnd.motorola.flexsuite.fis": { | |
source: "iana" | |
}, | |
"application/vnd.motorola.flexsuite.gotap": { | |
source: "iana" | |
}, | |
"application/vnd.motorola.flexsuite.kmr": { | |
source: "iana" | |
}, | |
"application/vnd.motorola.flexsuite.ttc": { | |
source: "iana" | |
}, | |
"application/vnd.motorola.flexsuite.wem": { | |
source: "iana" | |
}, | |
"application/vnd.motorola.iprm": { | |
source: "iana" | |
}, | |
"application/vnd.mozilla.xul+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xul"] | |
}, | |
"application/vnd.ms-3mfdocument": { | |
source: "iana" | |
}, | |
"application/vnd.ms-artgalry": { | |
source: "iana", | |
extensions: ["cil"] | |
}, | |
"application/vnd.ms-asf": { | |
source: "iana" | |
}, | |
"application/vnd.ms-cab-compressed": { | |
source: "iana", | |
extensions: ["cab"] | |
}, | |
"application/vnd.ms-color.iccprofile": { | |
source: "apache" | |
}, | |
"application/vnd.ms-excel": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"] | |
}, | |
"application/vnd.ms-excel.addin.macroenabled.12": { | |
source: "iana", | |
extensions: ["xlam"] | |
}, | |
"application/vnd.ms-excel.sheet.binary.macroenabled.12": { | |
source: "iana", | |
extensions: ["xlsb"] | |
}, | |
"application/vnd.ms-excel.sheet.macroenabled.12": { | |
source: "iana", | |
extensions: ["xlsm"] | |
}, | |
"application/vnd.ms-excel.template.macroenabled.12": { | |
source: "iana", | |
extensions: ["xltm"] | |
}, | |
"application/vnd.ms-fontobject": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["eot"] | |
}, | |
"application/vnd.ms-htmlhelp": { | |
source: "iana", | |
extensions: ["chm"] | |
}, | |
"application/vnd.ms-ims": { | |
source: "iana", | |
extensions: ["ims"] | |
}, | |
"application/vnd.ms-lrm": { | |
source: "iana", | |
extensions: ["lrm"] | |
}, | |
"application/vnd.ms-office.activex+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ms-officetheme": { | |
source: "iana", | |
extensions: ["thmx"] | |
}, | |
"application/vnd.ms-opentype": { | |
source: "apache", | |
compressible: !0 | |
}, | |
"application/vnd.ms-outlook": { | |
compressible: !1, | |
extensions: ["msg"] | |
}, | |
"application/vnd.ms-package.obfuscated-opentype": { | |
source: "apache" | |
}, | |
"application/vnd.ms-pki.seccat": { | |
source: "apache", | |
extensions: ["cat"] | |
}, | |
"application/vnd.ms-pki.stl": { | |
source: "apache", | |
extensions: ["stl"] | |
}, | |
"application/vnd.ms-playready.initiator+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ms-powerpoint": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["ppt", "pps", "pot"] | |
}, | |
"application/vnd.ms-powerpoint.addin.macroenabled.12": { | |
source: "iana", | |
extensions: ["ppam"] | |
}, | |
"application/vnd.ms-powerpoint.presentation.macroenabled.12": { | |
source: "iana", | |
extensions: ["pptm"] | |
}, | |
"application/vnd.ms-powerpoint.slide.macroenabled.12": { | |
source: "iana", | |
extensions: ["sldm"] | |
}, | |
"application/vnd.ms-powerpoint.slideshow.macroenabled.12": { | |
source: "iana", | |
extensions: ["ppsm"] | |
}, | |
"application/vnd.ms-powerpoint.template.macroenabled.12": { | |
source: "iana", | |
extensions: ["potm"] | |
}, | |
"application/vnd.ms-printdevicecapabilities+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ms-printing.printticket+xml": { | |
source: "apache", | |
compressible: !0 | |
}, | |
"application/vnd.ms-printschematicket+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ms-project": { | |
source: "iana", | |
extensions: ["mpp", "mpt"] | |
}, | |
"application/vnd.ms-tnef": { | |
source: "iana" | |
}, | |
"application/vnd.ms-windows.devicepairing": { | |
source: "iana" | |
}, | |
"application/vnd.ms-windows.nwprinting.oob": { | |
source: "iana" | |
}, | |
"application/vnd.ms-windows.printerpairing": { | |
source: "iana" | |
}, | |
"application/vnd.ms-windows.wsd.oob": { | |
source: "iana" | |
}, | |
"application/vnd.ms-wmdrm.lic-chlg-req": { | |
source: "iana" | |
}, | |
"application/vnd.ms-wmdrm.lic-resp": { | |
source: "iana" | |
}, | |
"application/vnd.ms-wmdrm.meter-chlg-req": { | |
source: "iana" | |
}, | |
"application/vnd.ms-wmdrm.meter-resp": { | |
source: "iana" | |
}, | |
"application/vnd.ms-word.document.macroenabled.12": { | |
source: "iana", | |
extensions: ["docm"] | |
}, | |
"application/vnd.ms-word.template.macroenabled.12": { | |
source: "iana", | |
extensions: ["dotm"] | |
}, | |
"application/vnd.ms-works": { | |
source: "iana", | |
extensions: ["wps", "wks", "wcm", "wdb"] | |
}, | |
"application/vnd.ms-wpl": { | |
source: "iana", | |
extensions: ["wpl"] | |
}, | |
"application/vnd.ms-xpsdocument": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["xps"] | |
}, | |
"application/vnd.msa-disk-image": { | |
source: "iana" | |
}, | |
"application/vnd.mseq": { | |
source: "iana", | |
extensions: ["mseq"] | |
}, | |
"application/vnd.msign": { | |
source: "iana" | |
}, | |
"application/vnd.multiad.creator": { | |
source: "iana" | |
}, | |
"application/vnd.multiad.creator.cif": { | |
source: "iana" | |
}, | |
"application/vnd.music-niff": { | |
source: "iana" | |
}, | |
"application/vnd.musician": { | |
source: "iana", | |
extensions: ["mus"] | |
}, | |
"application/vnd.muvee.style": { | |
source: "iana", | |
extensions: ["msty"] | |
}, | |
"application/vnd.mynfc": { | |
source: "iana", | |
extensions: ["taglet"] | |
}, | |
"application/vnd.nacamar.ybrid+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.ncd.control": { | |
source: "iana" | |
}, | |
"application/vnd.ncd.reference": { | |
source: "iana" | |
}, | |
"application/vnd.nearst.inv+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.nebumind.line": { | |
source: "iana" | |
}, | |
"application/vnd.nervana": { | |
source: "iana" | |
}, | |
"application/vnd.netfpx": { | |
source: "iana" | |
}, | |
"application/vnd.neurolanguage.nlu": { | |
source: "iana", | |
extensions: ["nlu"] | |
}, | |
"application/vnd.nimn": { | |
source: "iana" | |
}, | |
"application/vnd.nintendo.nitro.rom": { | |
source: "iana" | |
}, | |
"application/vnd.nintendo.snes.rom": { | |
source: "iana" | |
}, | |
"application/vnd.nitf": { | |
source: "iana", | |
extensions: ["ntf", "nitf"] | |
}, | |
"application/vnd.noblenet-directory": { | |
source: "iana", | |
extensions: ["nnd"] | |
}, | |
"application/vnd.noblenet-sealer": { | |
source: "iana", | |
extensions: ["nns"] | |
}, | |
"application/vnd.noblenet-web": { | |
source: "iana", | |
extensions: ["nnw"] | |
}, | |
"application/vnd.nokia.catalogs": { | |
source: "iana" | |
}, | |
"application/vnd.nokia.conml+wbxml": { | |
source: "iana" | |
}, | |
"application/vnd.nokia.conml+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.nokia.iptv.config+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.nokia.isds-radio-presets": { | |
source: "iana" | |
}, | |
"application/vnd.nokia.landmark+wbxml": { | |
source: "iana" | |
}, | |
"application/vnd.nokia.landmark+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.nokia.landmarkcollection+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.nokia.n-gage.ac+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["ac"] | |
}, | |
"application/vnd.nokia.n-gage.data": { | |
source: "iana", | |
extensions: ["ngdat"] | |
}, | |
"application/vnd.nokia.n-gage.symbian.install": { | |
source: "iana", | |
extensions: ["n-gage"] | |
}, | |
"application/vnd.nokia.ncd": { | |
source: "iana" | |
}, | |
"application/vnd.nokia.pcd+wbxml": { | |
source: "iana" | |
}, | |
"application/vnd.nokia.pcd+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.nokia.radio-preset": { | |
source: "iana", | |
extensions: ["rpst"] | |
}, | |
"application/vnd.nokia.radio-presets": { | |
source: "iana", | |
extensions: ["rpss"] | |
}, | |
"application/vnd.novadigm.edm": { | |
source: "iana", | |
extensions: ["edm"] | |
}, | |
"application/vnd.novadigm.edx": { | |
source: "iana", | |
extensions: ["edx"] | |
}, | |
"application/vnd.novadigm.ext": { | |
source: "iana", | |
extensions: ["ext"] | |
}, | |
"application/vnd.ntt-local.content-share": { | |
source: "iana" | |
}, | |
"application/vnd.ntt-local.file-transfer": { | |
source: "iana" | |
}, | |
"application/vnd.ntt-local.ogw_remote-access": { | |
source: "iana" | |
}, | |
"application/vnd.ntt-local.sip-ta_remote": { | |
source: "iana" | |
}, | |
"application/vnd.ntt-local.sip-ta_tcp_stream": { | |
source: "iana" | |
}, | |
"application/vnd.oasis.opendocument.chart": { | |
source: "iana", | |
extensions: ["odc"] | |
}, | |
"application/vnd.oasis.opendocument.chart-template": { | |
source: "iana", | |
extensions: ["otc"] | |
}, | |
"application/vnd.oasis.opendocument.database": { | |
source: "iana", | |
extensions: ["odb"] | |
}, | |
"application/vnd.oasis.opendocument.formula": { | |
source: "iana", | |
extensions: ["odf"] | |
}, | |
"application/vnd.oasis.opendocument.formula-template": { | |
source: "iana", | |
extensions: ["odft"] | |
}, | |
"application/vnd.oasis.opendocument.graphics": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["odg"] | |
}, | |
"application/vnd.oasis.opendocument.graphics-template": { | |
source: "iana", | |
extensions: ["otg"] | |
}, | |
"application/vnd.oasis.opendocument.image": { | |
source: "iana", | |
extensions: ["odi"] | |
}, | |
"application/vnd.oasis.opendocument.image-template": { | |
source: "iana", | |
extensions: ["oti"] | |
}, | |
"application/vnd.oasis.opendocument.presentation": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["odp"] | |
}, | |
"application/vnd.oasis.opendocument.presentation-template": { | |
source: "iana", | |
extensions: ["otp"] | |
}, | |
"application/vnd.oasis.opendocument.spreadsheet": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["ods"] | |
}, | |
"application/vnd.oasis.opendocument.spreadsheet-template": { | |
source: "iana", | |
extensions: ["ots"] | |
}, | |
"application/vnd.oasis.opendocument.text": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["odt"] | |
}, | |
"application/vnd.oasis.opendocument.text-master": { | |
source: "iana", | |
extensions: ["odm"] | |
}, | |
"application/vnd.oasis.opendocument.text-template": { | |
source: "iana", | |
extensions: ["ott"] | |
}, | |
"application/vnd.oasis.opendocument.text-web": { | |
source: "iana", | |
extensions: ["oth"] | |
}, | |
"application/vnd.obn": { | |
source: "iana" | |
}, | |
"application/vnd.ocf+cbor": { | |
source: "iana" | |
}, | |
"application/vnd.oci.image.manifest.v1+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oftn.l10n+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oipf.contentaccessdownload+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oipf.contentaccessstreaming+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oipf.cspg-hexbinary": { | |
source: "iana" | |
}, | |
"application/vnd.oipf.dae.svg+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oipf.dae.xhtml+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oipf.mippvcontrolmessage+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oipf.pae.gem": { | |
source: "iana" | |
}, | |
"application/vnd.oipf.spdiscovery+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oipf.spdlist+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oipf.ueprofile+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oipf.userprofile+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.olpc-sugar": { | |
source: "iana", | |
extensions: ["xo"] | |
}, | |
"application/vnd.oma-scws-config": { | |
source: "iana" | |
}, | |
"application/vnd.oma-scws-http-request": { | |
source: "iana" | |
}, | |
"application/vnd.oma-scws-http-response": { | |
source: "iana" | |
}, | |
"application/vnd.oma.bcast.associated-procedure-parameter+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.bcast.drm-trigger+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.bcast.imd+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.bcast.ltkm": { | |
source: "iana" | |
}, | |
"application/vnd.oma.bcast.notification+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.bcast.provisioningtrigger": { | |
source: "iana" | |
}, | |
"application/vnd.oma.bcast.sgboot": { | |
source: "iana" | |
}, | |
"application/vnd.oma.bcast.sgdd+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.bcast.sgdu": { | |
source: "iana" | |
}, | |
"application/vnd.oma.bcast.simple-symbol-container": { | |
source: "iana" | |
}, | |
"application/vnd.oma.bcast.smartcard-trigger+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.bcast.sprov+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.bcast.stkm": { | |
source: "iana" | |
}, | |
"application/vnd.oma.cab-address-book+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.cab-feature-handler+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.cab-pcc+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.cab-subs-invite+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.cab-user-prefs+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.dcd": { | |
source: "iana" | |
}, | |
"application/vnd.oma.dcdc": { | |
source: "iana" | |
}, | |
"application/vnd.oma.dd2+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["dd2"] | |
}, | |
"application/vnd.oma.drm.risd+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.group-usage-list+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.lwm2m+cbor": { | |
source: "iana" | |
}, | |
"application/vnd.oma.lwm2m+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.lwm2m+tlv": { | |
source: "iana" | |
}, | |
"application/vnd.oma.pal+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.poc.detailed-progress-report+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.poc.final-report+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.poc.groups+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.poc.invocation-descriptor+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.poc.optimized-progress-report+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.push": { | |
source: "iana" | |
}, | |
"application/vnd.oma.scidm.messages+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oma.xcap-directory+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.omads-email+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/vnd.omads-file+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/vnd.omads-folder+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/vnd.omaloc-supl-init": { | |
source: "iana" | |
}, | |
"application/vnd.onepager": { | |
source: "iana" | |
}, | |
"application/vnd.onepagertamp": { | |
source: "iana" | |
}, | |
"application/vnd.onepagertamx": { | |
source: "iana" | |
}, | |
"application/vnd.onepagertat": { | |
source: "iana" | |
}, | |
"application/vnd.onepagertatp": { | |
source: "iana" | |
}, | |
"application/vnd.onepagertatx": { | |
source: "iana" | |
}, | |
"application/vnd.openblox.game+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["obgx"] | |
}, | |
"application/vnd.openblox.game-binary": { | |
source: "iana" | |
}, | |
"application/vnd.openeye.oeb": { | |
source: "iana" | |
}, | |
"application/vnd.openofficeorg.extension": { | |
source: "apache", | |
extensions: ["oxt"] | |
}, | |
"application/vnd.openstreetmap.data+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["osm"] | |
}, | |
"application/vnd.opentimestamps.ots": { | |
source: "iana" | |
}, | |
"application/vnd.openxmlformats-officedocument.custom-properties+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.drawing+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.extended-properties+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.presentation": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["pptx"] | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.slide": { | |
source: "iana", | |
extensions: ["sldx"] | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.slideshow": { | |
source: "iana", | |
extensions: ["ppsx"] | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.template": { | |
source: "iana", | |
extensions: ["potx"] | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["xlsx"] | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": { | |
source: "iana", | |
extensions: ["xltx"] | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.theme+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.themeoverride+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.vmldrawing": { | |
source: "iana" | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["docx"] | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": { | |
source: "iana", | |
extensions: ["dotx"] | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-package.core-properties+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.openxmlformats-package.relationships+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oracle.resource+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.orange.indata": { | |
source: "iana" | |
}, | |
"application/vnd.osa.netdeploy": { | |
source: "iana" | |
}, | |
"application/vnd.osgeo.mapguide.package": { | |
source: "iana", | |
extensions: ["mgp"] | |
}, | |
"application/vnd.osgi.bundle": { | |
source: "iana" | |
}, | |
"application/vnd.osgi.dp": { | |
source: "iana", | |
extensions: ["dp"] | |
}, | |
"application/vnd.osgi.subsystem": { | |
source: "iana", | |
extensions: ["esa"] | |
}, | |
"application/vnd.otps.ct-kip+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.oxli.countgraph": { | |
source: "iana" | |
}, | |
"application/vnd.pagerduty+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.palm": { | |
source: "iana", | |
extensions: ["pdb", "pqa", "oprc"] | |
}, | |
"application/vnd.panoply": { | |
source: "iana" | |
}, | |
"application/vnd.paos.xml": { | |
source: "iana" | |
}, | |
"application/vnd.patentdive": { | |
source: "iana" | |
}, | |
"application/vnd.patientecommsdoc": { | |
source: "iana" | |
}, | |
"application/vnd.pawaafile": { | |
source: "iana", | |
extensions: ["paw"] | |
}, | |
"application/vnd.pcos": { | |
source: "iana" | |
}, | |
"application/vnd.pg.format": { | |
source: "iana", | |
extensions: ["str"] | |
}, | |
"application/vnd.pg.osasli": { | |
source: "iana", | |
extensions: ["ei6"] | |
}, | |
"application/vnd.piaccess.application-licence": { | |
source: "iana" | |
}, | |
"application/vnd.picsel": { | |
source: "iana", | |
extensions: ["efif"] | |
}, | |
"application/vnd.pmi.widget": { | |
source: "iana", | |
extensions: ["wg"] | |
}, | |
"application/vnd.poc.group-advertisement+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.pocketlearn": { | |
source: "iana", | |
extensions: ["plf"] | |
}, | |
"application/vnd.powerbuilder6": { | |
source: "iana", | |
extensions: ["pbd"] | |
}, | |
"application/vnd.powerbuilder6-s": { | |
source: "iana" | |
}, | |
"application/vnd.powerbuilder7": { | |
source: "iana" | |
}, | |
"application/vnd.powerbuilder7-s": { | |
source: "iana" | |
}, | |
"application/vnd.powerbuilder75": { | |
source: "iana" | |
}, | |
"application/vnd.powerbuilder75-s": { | |
source: "iana" | |
}, | |
"application/vnd.preminet": { | |
source: "iana" | |
}, | |
"application/vnd.previewsystems.box": { | |
source: "iana", | |
extensions: ["box"] | |
}, | |
"application/vnd.proteus.magazine": { | |
source: "iana", | |
extensions: ["mgz"] | |
}, | |
"application/vnd.psfs": { | |
source: "iana" | |
}, | |
"application/vnd.publishare-delta-tree": { | |
source: "iana", | |
extensions: ["qps"] | |
}, | |
"application/vnd.pvi.ptid1": { | |
source: "iana", | |
extensions: ["ptid"] | |
}, | |
"application/vnd.pwg-multiplexed": { | |
source: "iana" | |
}, | |
"application/vnd.pwg-xhtml-print+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.qualcomm.brew-app-res": { | |
source: "iana" | |
}, | |
"application/vnd.quarantainenet": { | |
source: "iana" | |
}, | |
"application/vnd.quark.quarkxpress": { | |
source: "iana", | |
extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"] | |
}, | |
"application/vnd.quobject-quoxdocument": { | |
source: "iana" | |
}, | |
"application/vnd.radisys.moml+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-audit+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-audit-conf+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-audit-conn+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-audit-dialog+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-audit-stream+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-conf+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-dialog+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-dialog-base+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-dialog-fax-detect+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-dialog-group+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-dialog-speech+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.radisys.msml-dialog-transform+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.rainstor.data": { | |
source: "iana" | |
}, | |
"application/vnd.rapid": { | |
source: "iana" | |
}, | |
"application/vnd.rar": { | |
source: "iana", | |
extensions: ["rar"] | |
}, | |
"application/vnd.realvnc.bed": { | |
source: "iana", | |
extensions: ["bed"] | |
}, | |
"application/vnd.recordare.musicxml": { | |
source: "iana", | |
extensions: ["mxl"] | |
}, | |
"application/vnd.recordare.musicxml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["musicxml"] | |
}, | |
"application/vnd.renlearn.rlprint": { | |
source: "iana" | |
}, | |
"application/vnd.resilient.logic": { | |
source: "iana" | |
}, | |
"application/vnd.restful+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.rig.cryptonote": { | |
source: "iana", | |
extensions: ["cryptonote"] | |
}, | |
"application/vnd.rim.cod": { | |
source: "apache", | |
extensions: ["cod"] | |
}, | |
"application/vnd.rn-realmedia": { | |
source: "apache", | |
extensions: ["rm"] | |
}, | |
"application/vnd.rn-realmedia-vbr": { | |
source: "apache", | |
extensions: ["rmvb"] | |
}, | |
"application/vnd.route66.link66+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["link66"] | |
}, | |
"application/vnd.rs-274x": { | |
source: "iana" | |
}, | |
"application/vnd.ruckus.download": { | |
source: "iana" | |
}, | |
"application/vnd.s3sms": { | |
source: "iana" | |
}, | |
"application/vnd.sailingtracker.track": { | |
source: "iana", | |
extensions: ["st"] | |
}, | |
"application/vnd.sar": { | |
source: "iana" | |
}, | |
"application/vnd.sbm.cid": { | |
source: "iana" | |
}, | |
"application/vnd.sbm.mid2": { | |
source: "iana" | |
}, | |
"application/vnd.scribus": { | |
source: "iana" | |
}, | |
"application/vnd.sealed.3df": { | |
source: "iana" | |
}, | |
"application/vnd.sealed.csf": { | |
source: "iana" | |
}, | |
"application/vnd.sealed.doc": { | |
source: "iana" | |
}, | |
"application/vnd.sealed.eml": { | |
source: "iana" | |
}, | |
"application/vnd.sealed.mht": { | |
source: "iana" | |
}, | |
"application/vnd.sealed.net": { | |
source: "iana" | |
}, | |
"application/vnd.sealed.ppt": { | |
source: "iana" | |
}, | |
"application/vnd.sealed.tiff": { | |
source: "iana" | |
}, | |
"application/vnd.sealed.xls": { | |
source: "iana" | |
}, | |
"application/vnd.sealedmedia.softseal.html": { | |
source: "iana" | |
}, | |
"application/vnd.sealedmedia.softseal.pdf": { | |
source: "iana" | |
}, | |
"application/vnd.seemail": { | |
source: "iana", | |
extensions: ["see"] | |
}, | |
"application/vnd.seis+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.sema": { | |
source: "iana", | |
extensions: ["sema"] | |
}, | |
"application/vnd.semd": { | |
source: "iana", | |
extensions: ["semd"] | |
}, | |
"application/vnd.semf": { | |
source: "iana", | |
extensions: ["semf"] | |
}, | |
"application/vnd.shade-save-file": { | |
source: "iana" | |
}, | |
"application/vnd.shana.informed.formdata": { | |
source: "iana", | |
extensions: ["ifm"] | |
}, | |
"application/vnd.shana.informed.formtemplate": { | |
source: "iana", | |
extensions: ["itp"] | |
}, | |
"application/vnd.shana.informed.interchange": { | |
source: "iana", | |
extensions: ["iif"] | |
}, | |
"application/vnd.shana.informed.package": { | |
source: "iana", | |
extensions: ["ipk"] | |
}, | |
"application/vnd.shootproof+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.shopkick+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.shp": { | |
source: "iana" | |
}, | |
"application/vnd.shx": { | |
source: "iana" | |
}, | |
"application/vnd.sigrok.session": { | |
source: "iana" | |
}, | |
"application/vnd.simtech-mindmapper": { | |
source: "iana", | |
extensions: ["twd", "twds"] | |
}, | |
"application/vnd.siren+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.smaf": { | |
source: "iana", | |
extensions: ["mmf"] | |
}, | |
"application/vnd.smart.notebook": { | |
source: "iana" | |
}, | |
"application/vnd.smart.teacher": { | |
source: "iana", | |
extensions: ["teacher"] | |
}, | |
"application/vnd.snesdev-page-table": { | |
source: "iana" | |
}, | |
"application/vnd.software602.filler.form+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["fo"] | |
}, | |
"application/vnd.software602.filler.form-xml-zip": { | |
source: "iana" | |
}, | |
"application/vnd.solent.sdkm+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["sdkm", "sdkd"] | |
}, | |
"application/vnd.spotfire.dxp": { | |
source: "iana", | |
extensions: ["dxp"] | |
}, | |
"application/vnd.spotfire.sfs": { | |
source: "iana", | |
extensions: ["sfs"] | |
}, | |
"application/vnd.sqlite3": { | |
source: "iana" | |
}, | |
"application/vnd.sss-cod": { | |
source: "iana" | |
}, | |
"application/vnd.sss-dtf": { | |
source: "iana" | |
}, | |
"application/vnd.sss-ntf": { | |
source: "iana" | |
}, | |
"application/vnd.stardivision.calc": { | |
source: "apache", | |
extensions: ["sdc"] | |
}, | |
"application/vnd.stardivision.draw": { | |
source: "apache", | |
extensions: ["sda"] | |
}, | |
"application/vnd.stardivision.impress": { | |
source: "apache", | |
extensions: ["sdd"] | |
}, | |
"application/vnd.stardivision.math": { | |
source: "apache", | |
extensions: ["smf"] | |
}, | |
"application/vnd.stardivision.writer": { | |
source: "apache", | |
extensions: ["sdw", "vor"] | |
}, | |
"application/vnd.stardivision.writer-global": { | |
source: "apache", | |
extensions: ["sgl"] | |
}, | |
"application/vnd.stepmania.package": { | |
source: "iana", | |
extensions: ["smzip"] | |
}, | |
"application/vnd.stepmania.stepchart": { | |
source: "iana", | |
extensions: ["sm"] | |
}, | |
"application/vnd.street-stream": { | |
source: "iana" | |
}, | |
"application/vnd.sun.wadl+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["wadl"] | |
}, | |
"application/vnd.sun.xml.calc": { | |
source: "apache", | |
extensions: ["sxc"] | |
}, | |
"application/vnd.sun.xml.calc.template": { | |
source: "apache", | |
extensions: ["stc"] | |
}, | |
"application/vnd.sun.xml.draw": { | |
source: "apache", | |
extensions: ["sxd"] | |
}, | |
"application/vnd.sun.xml.draw.template": { | |
source: "apache", | |
extensions: ["std"] | |
}, | |
"application/vnd.sun.xml.impress": { | |
source: "apache", | |
extensions: ["sxi"] | |
}, | |
"application/vnd.sun.xml.impress.template": { | |
source: "apache", | |
extensions: ["sti"] | |
}, | |
"application/vnd.sun.xml.math": { | |
source: "apache", | |
extensions: ["sxm"] | |
}, | |
"application/vnd.sun.xml.writer": { | |
source: "apache", | |
extensions: ["sxw"] | |
}, | |
"application/vnd.sun.xml.writer.global": { | |
source: "apache", | |
extensions: ["sxg"] | |
}, | |
"application/vnd.sun.xml.writer.template": { | |
source: "apache", | |
extensions: ["stw"] | |
}, | |
"application/vnd.sus-calendar": { | |
source: "iana", | |
extensions: ["sus", "susp"] | |
}, | |
"application/vnd.svd": { | |
source: "iana", | |
extensions: ["svd"] | |
}, | |
"application/vnd.swiftview-ics": { | |
source: "iana" | |
}, | |
"application/vnd.sycle+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.syft+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.symbian.install": { | |
source: "apache", | |
extensions: ["sis", "sisx"] | |
}, | |
"application/vnd.syncml+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0, | |
extensions: ["xsm"] | |
}, | |
"application/vnd.syncml.dm+wbxml": { | |
source: "iana", | |
charset: "UTF-8", | |
extensions: ["bdm"] | |
}, | |
"application/vnd.syncml.dm+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0, | |
extensions: ["xdm"] | |
}, | |
"application/vnd.syncml.dm.notification": { | |
source: "iana" | |
}, | |
"application/vnd.syncml.dmddf+wbxml": { | |
source: "iana" | |
}, | |
"application/vnd.syncml.dmddf+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0, | |
extensions: ["ddf"] | |
}, | |
"application/vnd.syncml.dmtnds+wbxml": { | |
source: "iana" | |
}, | |
"application/vnd.syncml.dmtnds+xml": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0 | |
}, | |
"application/vnd.syncml.ds.notification": { | |
source: "iana" | |
}, | |
"application/vnd.tableschema+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.tao.intent-module-archive": { | |
source: "iana", | |
extensions: ["tao"] | |
}, | |
"application/vnd.tcpdump.pcap": { | |
source: "iana", | |
extensions: ["pcap", "cap", "dmp"] | |
}, | |
"application/vnd.think-cell.ppttc+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.tmd.mediaflex.api+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.tml": { | |
source: "iana" | |
}, | |
"application/vnd.tmobile-livetv": { | |
source: "iana", | |
extensions: ["tmo"] | |
}, | |
"application/vnd.tri.onesource": { | |
source: "iana" | |
}, | |
"application/vnd.trid.tpt": { | |
source: "iana", | |
extensions: ["tpt"] | |
}, | |
"application/vnd.triscape.mxs": { | |
source: "iana", | |
extensions: ["mxs"] | |
}, | |
"application/vnd.trueapp": { | |
source: "iana", | |
extensions: ["tra"] | |
}, | |
"application/vnd.truedoc": { | |
source: "iana" | |
}, | |
"application/vnd.ubisoft.webplayer": { | |
source: "iana" | |
}, | |
"application/vnd.ufdl": { | |
source: "iana", | |
extensions: ["ufd", "ufdl"] | |
}, | |
"application/vnd.uiq.theme": { | |
source: "iana", | |
extensions: ["utz"] | |
}, | |
"application/vnd.umajin": { | |
source: "iana", | |
extensions: ["umj"] | |
}, | |
"application/vnd.unity": { | |
source: "iana", | |
extensions: ["unityweb"] | |
}, | |
"application/vnd.uoml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["uoml"] | |
}, | |
"application/vnd.uplanet.alert": { | |
source: "iana" | |
}, | |
"application/vnd.uplanet.alert-wbxml": { | |
source: "iana" | |
}, | |
"application/vnd.uplanet.bearer-choice": { | |
source: "iana" | |
}, | |
"application/vnd.uplanet.bearer-choice-wbxml": { | |
source: "iana" | |
}, | |
"application/vnd.uplanet.cacheop": { | |
source: "iana" | |
}, | |
"application/vnd.uplanet.cacheop-wbxml": { | |
source: "iana" | |
}, | |
"application/vnd.uplanet.channel": { | |
source: "iana" | |
}, | |
"application/vnd.uplanet.channel-wbxml": { | |
source: "iana" | |
}, | |
"application/vnd.uplanet.list": { | |
source: "iana" | |
}, | |
"application/vnd.uplanet.list-wbxml": { | |
source: "iana" | |
}, | |
"application/vnd.uplanet.listcmd": { | |
source: "iana" | |
}, | |
"application/vnd.uplanet.listcmd-wbxml": { | |
source: "iana" | |
}, | |
"application/vnd.uplanet.signal": { | |
source: "iana" | |
}, | |
"application/vnd.uri-map": { | |
source: "iana" | |
}, | |
"application/vnd.valve.source.material": { | |
source: "iana" | |
}, | |
"application/vnd.vcx": { | |
source: "iana", | |
extensions: ["vcx"] | |
}, | |
"application/vnd.vd-study": { | |
source: "iana" | |
}, | |
"application/vnd.vectorworks": { | |
source: "iana" | |
}, | |
"application/vnd.vel+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.verimatrix.vcas": { | |
source: "iana" | |
}, | |
"application/vnd.veritone.aion+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.veryant.thin": { | |
source: "iana" | |
}, | |
"application/vnd.ves.encrypted": { | |
source: "iana" | |
}, | |
"application/vnd.vidsoft.vidconference": { | |
source: "iana" | |
}, | |
"application/vnd.visio": { | |
source: "iana", | |
extensions: ["vsd", "vst", "vss", "vsw"] | |
}, | |
"application/vnd.visionary": { | |
source: "iana", | |
extensions: ["vis"] | |
}, | |
"application/vnd.vividence.scriptfile": { | |
source: "iana" | |
}, | |
"application/vnd.vsf": { | |
source: "iana", | |
extensions: ["vsf"] | |
}, | |
"application/vnd.wap.sic": { | |
source: "iana" | |
}, | |
"application/vnd.wap.slc": { | |
source: "iana" | |
}, | |
"application/vnd.wap.wbxml": { | |
source: "iana", | |
charset: "UTF-8", | |
extensions: ["wbxml"] | |
}, | |
"application/vnd.wap.wmlc": { | |
source: "iana", | |
extensions: ["wmlc"] | |
}, | |
"application/vnd.wap.wmlscriptc": { | |
source: "iana", | |
extensions: ["wmlsc"] | |
}, | |
"application/vnd.webturbo": { | |
source: "iana", | |
extensions: ["wtb"] | |
}, | |
"application/vnd.wfa.dpp": { | |
source: "iana" | |
}, | |
"application/vnd.wfa.p2p": { | |
source: "iana" | |
}, | |
"application/vnd.wfa.wsc": { | |
source: "iana" | |
}, | |
"application/vnd.windows.devicepairing": { | |
source: "iana" | |
}, | |
"application/vnd.wmc": { | |
source: "iana" | |
}, | |
"application/vnd.wmf.bootstrap": { | |
source: "iana" | |
}, | |
"application/vnd.wolfram.mathematica": { | |
source: "iana" | |
}, | |
"application/vnd.wolfram.mathematica.package": { | |
source: "iana" | |
}, | |
"application/vnd.wolfram.player": { | |
source: "iana", | |
extensions: ["nbp"] | |
}, | |
"application/vnd.wordperfect": { | |
source: "iana", | |
extensions: ["wpd"] | |
}, | |
"application/vnd.wqd": { | |
source: "iana", | |
extensions: ["wqd"] | |
}, | |
"application/vnd.wrq-hp3000-labelled": { | |
source: "iana" | |
}, | |
"application/vnd.wt.stf": { | |
source: "iana", | |
extensions: ["stf"] | |
}, | |
"application/vnd.wv.csp+wbxml": { | |
source: "iana" | |
}, | |
"application/vnd.wv.csp+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.wv.ssp+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.xacml+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.xara": { | |
source: "iana", | |
extensions: ["xar"] | |
}, | |
"application/vnd.xfdl": { | |
source: "iana", | |
extensions: ["xfdl"] | |
}, | |
"application/vnd.xfdl.webform": { | |
source: "iana" | |
}, | |
"application/vnd.xmi+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vnd.xmpie.cpkg": { | |
source: "iana" | |
}, | |
"application/vnd.xmpie.dpkg": { | |
source: "iana" | |
}, | |
"application/vnd.xmpie.plan": { | |
source: "iana" | |
}, | |
"application/vnd.xmpie.ppkg": { | |
source: "iana" | |
}, | |
"application/vnd.xmpie.xlim": { | |
source: "iana" | |
}, | |
"application/vnd.yamaha.hv-dic": { | |
source: "iana", | |
extensions: ["hvd"] | |
}, | |
"application/vnd.yamaha.hv-script": { | |
source: "iana", | |
extensions: ["hvs"] | |
}, | |
"application/vnd.yamaha.hv-voice": { | |
source: "iana", | |
extensions: ["hvp"] | |
}, | |
"application/vnd.yamaha.openscoreformat": { | |
source: "iana", | |
extensions: ["osf"] | |
}, | |
"application/vnd.yamaha.openscoreformat.osfpvg+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["osfpvg"] | |
}, | |
"application/vnd.yamaha.remote-setup": { | |
source: "iana" | |
}, | |
"application/vnd.yamaha.smaf-audio": { | |
source: "iana", | |
extensions: ["saf"] | |
}, | |
"application/vnd.yamaha.smaf-phrase": { | |
source: "iana", | |
extensions: ["spf"] | |
}, | |
"application/vnd.yamaha.through-ngn": { | |
source: "iana" | |
}, | |
"application/vnd.yamaha.tunnel-udpencap": { | |
source: "iana" | |
}, | |
"application/vnd.yaoweme": { | |
source: "iana" | |
}, | |
"application/vnd.yellowriver-custom-menu": { | |
source: "iana", | |
extensions: ["cmp"] | |
}, | |
"application/vnd.youtube.yt": { | |
source: "iana" | |
}, | |
"application/vnd.zul": { | |
source: "iana", | |
extensions: ["zir", "zirz"] | |
}, | |
"application/vnd.zzazz.deck+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["zaz"] | |
}, | |
"application/voicexml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["vxml"] | |
}, | |
"application/voucher-cms+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/vq-rtcpxr": { | |
source: "iana" | |
}, | |
"application/wasm": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["wasm"] | |
}, | |
"application/watcherinfo+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["wif"] | |
}, | |
"application/webpush-options+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/whoispp-query": { | |
source: "iana" | |
}, | |
"application/whoispp-response": { | |
source: "iana" | |
}, | |
"application/widget": { | |
source: "iana", | |
extensions: ["wgt"] | |
}, | |
"application/winhlp": { | |
source: "apache", | |
extensions: ["hlp"] | |
}, | |
"application/wita": { | |
source: "iana" | |
}, | |
"application/wordperfect5.1": { | |
source: "iana" | |
}, | |
"application/wsdl+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["wsdl"] | |
}, | |
"application/wspolicy+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["wspolicy"] | |
}, | |
"application/x-7z-compressed": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["7z"] | |
}, | |
"application/x-abiword": { | |
source: "apache", | |
extensions: ["abw"] | |
}, | |
"application/x-ace-compressed": { | |
source: "apache", | |
extensions: ["ace"] | |
}, | |
"application/x-amf": { | |
source: "apache" | |
}, | |
"application/x-apple-diskimage": { | |
source: "apache", | |
extensions: ["dmg"] | |
}, | |
"application/x-arj": { | |
compressible: !1, | |
extensions: ["arj"] | |
}, | |
"application/x-authorware-bin": { | |
source: "apache", | |
extensions: ["aab", "x32", "u32", "vox"] | |
}, | |
"application/x-authorware-map": { | |
source: "apache", | |
extensions: ["aam"] | |
}, | |
"application/x-authorware-seg": { | |
source: "apache", | |
extensions: ["aas"] | |
}, | |
"application/x-bcpio": { | |
source: "apache", | |
extensions: ["bcpio"] | |
}, | |
"application/x-bdoc": { | |
compressible: !1, | |
extensions: ["bdoc"] | |
}, | |
"application/x-bittorrent": { | |
source: "apache", | |
extensions: ["torrent"] | |
}, | |
"application/x-blorb": { | |
source: "apache", | |
extensions: ["blb", "blorb"] | |
}, | |
"application/x-bzip": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["bz"] | |
}, | |
"application/x-bzip2": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["bz2", "boz"] | |
}, | |
"application/x-cbr": { | |
source: "apache", | |
extensions: ["cbr", "cba", "cbt", "cbz", "cb7"] | |
}, | |
"application/x-cdlink": { | |
source: "apache", | |
extensions: ["vcd"] | |
}, | |
"application/x-cfs-compressed": { | |
source: "apache", | |
extensions: ["cfs"] | |
}, | |
"application/x-chat": { | |
source: "apache", | |
extensions: ["chat"] | |
}, | |
"application/x-chess-pgn": { | |
source: "apache", | |
extensions: ["pgn"] | |
}, | |
"application/x-chrome-extension": { | |
extensions: ["crx"] | |
}, | |
"application/x-cocoa": { | |
source: "nginx", | |
extensions: ["cco"] | |
}, | |
"application/x-compress": { | |
source: "apache" | |
}, | |
"application/x-conference": { | |
source: "apache", | |
extensions: ["nsc"] | |
}, | |
"application/x-cpio": { | |
source: "apache", | |
extensions: ["cpio"] | |
}, | |
"application/x-csh": { | |
source: "apache", | |
extensions: ["csh"] | |
}, | |
"application/x-deb": { | |
compressible: !1 | |
}, | |
"application/x-debian-package": { | |
source: "apache", | |
extensions: ["deb", "udeb"] | |
}, | |
"application/x-dgc-compressed": { | |
source: "apache", | |
extensions: ["dgc"] | |
}, | |
"application/x-director": { | |
source: "apache", | |
extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"] | |
}, | |
"application/x-doom": { | |
source: "apache", | |
extensions: ["wad"] | |
}, | |
"application/x-dtbncx+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["ncx"] | |
}, | |
"application/x-dtbook+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["dtb"] | |
}, | |
"application/x-dtbresource+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["res"] | |
}, | |
"application/x-dvi": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["dvi"] | |
}, | |
"application/x-envoy": { | |
source: "apache", | |
extensions: ["evy"] | |
}, | |
"application/x-eva": { | |
source: "apache", | |
extensions: ["eva"] | |
}, | |
"application/x-font-bdf": { | |
source: "apache", | |
extensions: ["bdf"] | |
}, | |
"application/x-font-dos": { | |
source: "apache" | |
}, | |
"application/x-font-framemaker": { | |
source: "apache" | |
}, | |
"application/x-font-ghostscript": { | |
source: "apache", | |
extensions: ["gsf"] | |
}, | |
"application/x-font-libgrx": { | |
source: "apache" | |
}, | |
"application/x-font-linux-psf": { | |
source: "apache", | |
extensions: ["psf"] | |
}, | |
"application/x-font-pcf": { | |
source: "apache", | |
extensions: ["pcf"] | |
}, | |
"application/x-font-snf": { | |
source: "apache", | |
extensions: ["snf"] | |
}, | |
"application/x-font-speedo": { | |
source: "apache" | |
}, | |
"application/x-font-sunos-news": { | |
source: "apache" | |
}, | |
"application/x-font-type1": { | |
source: "apache", | |
extensions: ["pfa", "pfb", "pfm", "afm"] | |
}, | |
"application/x-font-vfont": { | |
source: "apache" | |
}, | |
"application/x-freearc": { | |
source: "apache", | |
extensions: ["arc"] | |
}, | |
"application/x-futuresplash": { | |
source: "apache", | |
extensions: ["spl"] | |
}, | |
"application/x-gca-compressed": { | |
source: "apache", | |
extensions: ["gca"] | |
}, | |
"application/x-glulx": { | |
source: "apache", | |
extensions: ["ulx"] | |
}, | |
"application/x-gnumeric": { | |
source: "apache", | |
extensions: ["gnumeric"] | |
}, | |
"application/x-gramps-xml": { | |
source: "apache", | |
extensions: ["gramps"] | |
}, | |
"application/x-gtar": { | |
source: "apache", | |
extensions: ["gtar"] | |
}, | |
"application/x-gzip": { | |
source: "apache" | |
}, | |
"application/x-hdf": { | |
source: "apache", | |
extensions: ["hdf"] | |
}, | |
"application/x-httpd-php": { | |
compressible: !0, | |
extensions: ["php"] | |
}, | |
"application/x-install-instructions": { | |
source: "apache", | |
extensions: ["install"] | |
}, | |
"application/x-iso9660-image": { | |
source: "apache", | |
extensions: ["iso"] | |
}, | |
"application/x-iwork-keynote-sffkey": { | |
extensions: ["key"] | |
}, | |
"application/x-iwork-numbers-sffnumbers": { | |
extensions: ["numbers"] | |
}, | |
"application/x-iwork-pages-sffpages": { | |
extensions: ["pages"] | |
}, | |
"application/x-java-archive-diff": { | |
source: "nginx", | |
extensions: ["jardiff"] | |
}, | |
"application/x-java-jnlp-file": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["jnlp"] | |
}, | |
"application/x-javascript": { | |
compressible: !0 | |
}, | |
"application/x-keepass2": { | |
extensions: ["kdbx"] | |
}, | |
"application/x-latex": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["latex"] | |
}, | |
"application/x-lua-bytecode": { | |
extensions: ["luac"] | |
}, | |
"application/x-lzh-compressed": { | |
source: "apache", | |
extensions: ["lzh", "lha"] | |
}, | |
"application/x-makeself": { | |
source: "nginx", | |
extensions: ["run"] | |
}, | |
"application/x-mie": { | |
source: "apache", | |
extensions: ["mie"] | |
}, | |
"application/x-mobipocket-ebook": { | |
source: "apache", | |
extensions: ["prc", "mobi"] | |
}, | |
"application/x-mpegurl": { | |
compressible: !1 | |
}, | |
"application/x-ms-application": { | |
source: "apache", | |
extensions: ["application"] | |
}, | |
"application/x-ms-shortcut": { | |
source: "apache", | |
extensions: ["lnk"] | |
}, | |
"application/x-ms-wmd": { | |
source: "apache", | |
extensions: ["wmd"] | |
}, | |
"application/x-ms-wmz": { | |
source: "apache", | |
extensions: ["wmz"] | |
}, | |
"application/x-ms-xbap": { | |
source: "apache", | |
extensions: ["xbap"] | |
}, | |
"application/x-msaccess": { | |
source: "apache", | |
extensions: ["mdb"] | |
}, | |
"application/x-msbinder": { | |
source: "apache", | |
extensions: ["obd"] | |
}, | |
"application/x-mscardfile": { | |
source: "apache", | |
extensions: ["crd"] | |
}, | |
"application/x-msclip": { | |
source: "apache", | |
extensions: ["clp"] | |
}, | |
"application/x-msdos-program": { | |
extensions: ["exe"] | |
}, | |
"application/x-msdownload": { | |
source: "apache", | |
extensions: ["exe", "dll", "com", "bat", "msi"] | |
}, | |
"application/x-msmediaview": { | |
source: "apache", | |
extensions: ["mvb", "m13", "m14"] | |
}, | |
"application/x-msmetafile": { | |
source: "apache", | |
extensions: ["wmf", "wmz", "emf", "emz"] | |
}, | |
"application/x-msmoney": { | |
source: "apache", | |
extensions: ["mny"] | |
}, | |
"application/x-mspublisher": { | |
source: "apache", | |
extensions: ["pub"] | |
}, | |
"application/x-msschedule": { | |
source: "apache", | |
extensions: ["scd"] | |
}, | |
"application/x-msterminal": { | |
source: "apache", | |
extensions: ["trm"] | |
}, | |
"application/x-mswrite": { | |
source: "apache", | |
extensions: ["wri"] | |
}, | |
"application/x-netcdf": { | |
source: "apache", | |
extensions: ["nc", "cdf"] | |
}, | |
"application/x-ns-proxy-autoconfig": { | |
compressible: !0, | |
extensions: ["pac"] | |
}, | |
"application/x-nzb": { | |
source: "apache", | |
extensions: ["nzb"] | |
}, | |
"application/x-perl": { | |
source: "nginx", | |
extensions: ["pl", "pm"] | |
}, | |
"application/x-pilot": { | |
source: "nginx", | |
extensions: ["prc", "pdb"] | |
}, | |
"application/x-pkcs12": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["p12", "pfx"] | |
}, | |
"application/x-pkcs7-certificates": { | |
source: "apache", | |
extensions: ["p7b", "spc"] | |
}, | |
"application/x-pkcs7-certreqresp": { | |
source: "apache", | |
extensions: ["p7r"] | |
}, | |
"application/x-pki-message": { | |
source: "iana" | |
}, | |
"application/x-rar-compressed": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["rar"] | |
}, | |
"application/x-redhat-package-manager": { | |
source: "nginx", | |
extensions: ["rpm"] | |
}, | |
"application/x-research-info-systems": { | |
source: "apache", | |
extensions: ["ris"] | |
}, | |
"application/x-sea": { | |
source: "nginx", | |
extensions: ["sea"] | |
}, | |
"application/x-sh": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["sh"] | |
}, | |
"application/x-shar": { | |
source: "apache", | |
extensions: ["shar"] | |
}, | |
"application/x-shockwave-flash": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["swf"] | |
}, | |
"application/x-silverlight-app": { | |
source: "apache", | |
extensions: ["xap"] | |
}, | |
"application/x-sql": { | |
source: "apache", | |
extensions: ["sql"] | |
}, | |
"application/x-stuffit": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["sit"] | |
}, | |
"application/x-stuffitx": { | |
source: "apache", | |
extensions: ["sitx"] | |
}, | |
"application/x-subrip": { | |
source: "apache", | |
extensions: ["srt"] | |
}, | |
"application/x-sv4cpio": { | |
source: "apache", | |
extensions: ["sv4cpio"] | |
}, | |
"application/x-sv4crc": { | |
source: "apache", | |
extensions: ["sv4crc"] | |
}, | |
"application/x-t3vm-image": { | |
source: "apache", | |
extensions: ["t3"] | |
}, | |
"application/x-tads": { | |
source: "apache", | |
extensions: ["gam"] | |
}, | |
"application/x-tar": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["tar"] | |
}, | |
"application/x-tcl": { | |
source: "apache", | |
extensions: ["tcl", "tk"] | |
}, | |
"application/x-tex": { | |
source: "apache", | |
extensions: ["tex"] | |
}, | |
"application/x-tex-tfm": { | |
source: "apache", | |
extensions: ["tfm"] | |
}, | |
"application/x-texinfo": { | |
source: "apache", | |
extensions: ["texinfo", "texi"] | |
}, | |
"application/x-tgif": { | |
source: "apache", | |
extensions: ["obj"] | |
}, | |
"application/x-ustar": { | |
source: "apache", | |
extensions: ["ustar"] | |
}, | |
"application/x-virtualbox-hdd": { | |
compressible: !0, | |
extensions: ["hdd"] | |
}, | |
"application/x-virtualbox-ova": { | |
compressible: !0, | |
extensions: ["ova"] | |
}, | |
"application/x-virtualbox-ovf": { | |
compressible: !0, | |
extensions: ["ovf"] | |
}, | |
"application/x-virtualbox-vbox": { | |
compressible: !0, | |
extensions: ["vbox"] | |
}, | |
"application/x-virtualbox-vbox-extpack": { | |
compressible: !1, | |
extensions: ["vbox-extpack"] | |
}, | |
"application/x-virtualbox-vdi": { | |
compressible: !0, | |
extensions: ["vdi"] | |
}, | |
"application/x-virtualbox-vhd": { | |
compressible: !0, | |
extensions: ["vhd"] | |
}, | |
"application/x-virtualbox-vmdk": { | |
compressible: !0, | |
extensions: ["vmdk"] | |
}, | |
"application/x-wais-source": { | |
source: "apache", | |
extensions: ["src"] | |
}, | |
"application/x-web-app-manifest+json": { | |
compressible: !0, | |
extensions: ["webapp"] | |
}, | |
"application/x-www-form-urlencoded": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/x-x509-ca-cert": { | |
source: "iana", | |
extensions: ["der", "crt", "pem"] | |
}, | |
"application/x-x509-ca-ra-cert": { | |
source: "iana" | |
}, | |
"application/x-x509-next-ca-cert": { | |
source: "iana" | |
}, | |
"application/x-xfig": { | |
source: "apache", | |
extensions: ["fig"] | |
}, | |
"application/x-xliff+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["xlf"] | |
}, | |
"application/x-xpinstall": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["xpi"] | |
}, | |
"application/x-xz": { | |
source: "apache", | |
extensions: ["xz"] | |
}, | |
"application/x-zmachine": { | |
source: "apache", | |
extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"] | |
}, | |
"application/x400-bp": { | |
source: "iana" | |
}, | |
"application/xacml+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/xaml+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["xaml"] | |
}, | |
"application/xcap-att+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xav"] | |
}, | |
"application/xcap-caps+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xca"] | |
}, | |
"application/xcap-diff+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xdf"] | |
}, | |
"application/xcap-el+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xel"] | |
}, | |
"application/xcap-error+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/xcap-ns+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xns"] | |
}, | |
"application/xcon-conference-info+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/xcon-conference-info-diff+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/xenc+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xenc"] | |
}, | |
"application/xhtml+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xhtml", "xht"] | |
}, | |
"application/xhtml-voice+xml": { | |
source: "apache", | |
compressible: !0 | |
}, | |
"application/xliff+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xlf"] | |
}, | |
"application/xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xml", "xsl", "xsd", "rng"] | |
}, | |
"application/xml-dtd": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["dtd"] | |
}, | |
"application/xml-external-parsed-entity": { | |
source: "iana" | |
}, | |
"application/xml-patch+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/xmpp+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/xop+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xop"] | |
}, | |
"application/xproc+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["xpl"] | |
}, | |
"application/xslt+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xsl", "xslt"] | |
}, | |
"application/xspf+xml": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["xspf"] | |
}, | |
"application/xv+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["mxml", "xhvml", "xvml", "xvm"] | |
}, | |
"application/yang": { | |
source: "iana", | |
extensions: ["yang"] | |
}, | |
"application/yang-data+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/yang-data+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/yang-patch+json": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/yang-patch+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"application/yin+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["yin"] | |
}, | |
"application/zip": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["zip"] | |
}, | |
"application/zlib": { | |
source: "iana" | |
}, | |
"application/zstd": { | |
source: "iana" | |
}, | |
"audio/1d-interleaved-parityfec": { | |
source: "iana" | |
}, | |
"audio/32kadpcm": { | |
source: "iana" | |
}, | |
"audio/3gpp": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["3gpp"] | |
}, | |
"audio/3gpp2": { | |
source: "iana" | |
}, | |
"audio/aac": { | |
source: "iana" | |
}, | |
"audio/ac3": { | |
source: "iana" | |
}, | |
"audio/adpcm": { | |
source: "apache", | |
extensions: ["adp"] | |
}, | |
"audio/amr": { | |
source: "iana", | |
extensions: ["amr"] | |
}, | |
"audio/amr-wb": { | |
source: "iana" | |
}, | |
"audio/amr-wb+": { | |
source: "iana" | |
}, | |
"audio/aptx": { | |
source: "iana" | |
}, | |
"audio/asc": { | |
source: "iana" | |
}, | |
"audio/atrac-advanced-lossless": { | |
source: "iana" | |
}, | |
"audio/atrac-x": { | |
source: "iana" | |
}, | |
"audio/atrac3": { | |
source: "iana" | |
}, | |
"audio/basic": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["au", "snd"] | |
}, | |
"audio/bv16": { | |
source: "iana" | |
}, | |
"audio/bv32": { | |
source: "iana" | |
}, | |
"audio/clearmode": { | |
source: "iana" | |
}, | |
"audio/cn": { | |
source: "iana" | |
}, | |
"audio/dat12": { | |
source: "iana" | |
}, | |
"audio/dls": { | |
source: "iana" | |
}, | |
"audio/dsr-es201108": { | |
source: "iana" | |
}, | |
"audio/dsr-es202050": { | |
source: "iana" | |
}, | |
"audio/dsr-es202211": { | |
source: "iana" | |
}, | |
"audio/dsr-es202212": { | |
source: "iana" | |
}, | |
"audio/dv": { | |
source: "iana" | |
}, | |
"audio/dvi4": { | |
source: "iana" | |
}, | |
"audio/eac3": { | |
source: "iana" | |
}, | |
"audio/encaprtp": { | |
source: "iana" | |
}, | |
"audio/evrc": { | |
source: "iana" | |
}, | |
"audio/evrc-qcp": { | |
source: "iana" | |
}, | |
"audio/evrc0": { | |
source: "iana" | |
}, | |
"audio/evrc1": { | |
source: "iana" | |
}, | |
"audio/evrcb": { | |
source: "iana" | |
}, | |
"audio/evrcb0": { | |
source: "iana" | |
}, | |
"audio/evrcb1": { | |
source: "iana" | |
}, | |
"audio/evrcnw": { | |
source: "iana" | |
}, | |
"audio/evrcnw0": { | |
source: "iana" | |
}, | |
"audio/evrcnw1": { | |
source: "iana" | |
}, | |
"audio/evrcwb": { | |
source: "iana" | |
}, | |
"audio/evrcwb0": { | |
source: "iana" | |
}, | |
"audio/evrcwb1": { | |
source: "iana" | |
}, | |
"audio/evs": { | |
source: "iana" | |
}, | |
"audio/flexfec": { | |
source: "iana" | |
}, | |
"audio/fwdred": { | |
source: "iana" | |
}, | |
"audio/g711-0": { | |
source: "iana" | |
}, | |
"audio/g719": { | |
source: "iana" | |
}, | |
"audio/g722": { | |
source: "iana" | |
}, | |
"audio/g7221": { | |
source: "iana" | |
}, | |
"audio/g723": { | |
source: "iana" | |
}, | |
"audio/g726-16": { | |
source: "iana" | |
}, | |
"audio/g726-24": { | |
source: "iana" | |
}, | |
"audio/g726-32": { | |
source: "iana" | |
}, | |
"audio/g726-40": { | |
source: "iana" | |
}, | |
"audio/g728": { | |
source: "iana" | |
}, | |
"audio/g729": { | |
source: "iana" | |
}, | |
"audio/g7291": { | |
source: "iana" | |
}, | |
"audio/g729d": { | |
source: "iana" | |
}, | |
"audio/g729e": { | |
source: "iana" | |
}, | |
"audio/gsm": { | |
source: "iana" | |
}, | |
"audio/gsm-efr": { | |
source: "iana" | |
}, | |
"audio/gsm-hr-08": { | |
source: "iana" | |
}, | |
"audio/ilbc": { | |
source: "iana" | |
}, | |
"audio/ip-mr_v2.5": { | |
source: "iana" | |
}, | |
"audio/isac": { | |
source: "apache" | |
}, | |
"audio/l16": { | |
source: "iana" | |
}, | |
"audio/l20": { | |
source: "iana" | |
}, | |
"audio/l24": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"audio/l8": { | |
source: "iana" | |
}, | |
"audio/lpc": { | |
source: "iana" | |
}, | |
"audio/melp": { | |
source: "iana" | |
}, | |
"audio/melp1200": { | |
source: "iana" | |
}, | |
"audio/melp2400": { | |
source: "iana" | |
}, | |
"audio/melp600": { | |
source: "iana" | |
}, | |
"audio/mhas": { | |
source: "iana" | |
}, | |
"audio/midi": { | |
source: "apache", | |
extensions: ["mid", "midi", "kar", "rmi"] | |
}, | |
"audio/mobile-xmf": { | |
source: "iana", | |
extensions: ["mxmf"] | |
}, | |
"audio/mp3": { | |
compressible: !1, | |
extensions: ["mp3"] | |
}, | |
"audio/mp4": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["m4a", "mp4a"] | |
}, | |
"audio/mp4a-latm": { | |
source: "iana" | |
}, | |
"audio/mpa": { | |
source: "iana" | |
}, | |
"audio/mpa-robust": { | |
source: "iana" | |
}, | |
"audio/mpeg": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"] | |
}, | |
"audio/mpeg4-generic": { | |
source: "iana" | |
}, | |
"audio/musepack": { | |
source: "apache" | |
}, | |
"audio/ogg": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["oga", "ogg", "spx", "opus"] | |
}, | |
"audio/opus": { | |
source: "iana" | |
}, | |
"audio/parityfec": { | |
source: "iana" | |
}, | |
"audio/pcma": { | |
source: "iana" | |
}, | |
"audio/pcma-wb": { | |
source: "iana" | |
}, | |
"audio/pcmu": { | |
source: "iana" | |
}, | |
"audio/pcmu-wb": { | |
source: "iana" | |
}, | |
"audio/prs.sid": { | |
source: "iana" | |
}, | |
"audio/qcelp": { | |
source: "iana" | |
}, | |
"audio/raptorfec": { | |
source: "iana" | |
}, | |
"audio/red": { | |
source: "iana" | |
}, | |
"audio/rtp-enc-aescm128": { | |
source: "iana" | |
}, | |
"audio/rtp-midi": { | |
source: "iana" | |
}, | |
"audio/rtploopback": { | |
source: "iana" | |
}, | |
"audio/rtx": { | |
source: "iana" | |
}, | |
"audio/s3m": { | |
source: "apache", | |
extensions: ["s3m"] | |
}, | |
"audio/scip": { | |
source: "iana" | |
}, | |
"audio/silk": { | |
source: "apache", | |
extensions: ["sil"] | |
}, | |
"audio/smv": { | |
source: "iana" | |
}, | |
"audio/smv-qcp": { | |
source: "iana" | |
}, | |
"audio/smv0": { | |
source: "iana" | |
}, | |
"audio/sofa": { | |
source: "iana" | |
}, | |
"audio/sp-midi": { | |
source: "iana" | |
}, | |
"audio/speex": { | |
source: "iana" | |
}, | |
"audio/t140c": { | |
source: "iana" | |
}, | |
"audio/t38": { | |
source: "iana" | |
}, | |
"audio/telephone-event": { | |
source: "iana" | |
}, | |
"audio/tetra_acelp": { | |
source: "iana" | |
}, | |
"audio/tetra_acelp_bb": { | |
source: "iana" | |
}, | |
"audio/tone": { | |
source: "iana" | |
}, | |
"audio/tsvcis": { | |
source: "iana" | |
}, | |
"audio/uemclip": { | |
source: "iana" | |
}, | |
"audio/ulpfec": { | |
source: "iana" | |
}, | |
"audio/usac": { | |
source: "iana" | |
}, | |
"audio/vdvi": { | |
source: "iana" | |
}, | |
"audio/vmr-wb": { | |
source: "iana" | |
}, | |
"audio/vnd.3gpp.iufp": { | |
source: "iana" | |
}, | |
"audio/vnd.4sb": { | |
source: "iana" | |
}, | |
"audio/vnd.audiokoz": { | |
source: "iana" | |
}, | |
"audio/vnd.celp": { | |
source: "iana" | |
}, | |
"audio/vnd.cisco.nse": { | |
source: "iana" | |
}, | |
"audio/vnd.cmles.radio-events": { | |
source: "iana" | |
}, | |
"audio/vnd.cns.anp1": { | |
source: "iana" | |
}, | |
"audio/vnd.cns.inf1": { | |
source: "iana" | |
}, | |
"audio/vnd.dece.audio": { | |
source: "iana", | |
extensions: ["uva", "uvva"] | |
}, | |
"audio/vnd.digital-winds": { | |
source: "iana", | |
extensions: ["eol"] | |
}, | |
"audio/vnd.dlna.adts": { | |
source: "iana" | |
}, | |
"audio/vnd.dolby.heaac.1": { | |
source: "iana" | |
}, | |
"audio/vnd.dolby.heaac.2": { | |
source: "iana" | |
}, | |
"audio/vnd.dolby.mlp": { | |
source: "iana" | |
}, | |
"audio/vnd.dolby.mps": { | |
source: "iana" | |
}, | |
"audio/vnd.dolby.pl2": { | |
source: "iana" | |
}, | |
"audio/vnd.dolby.pl2x": { | |
source: "iana" | |
}, | |
"audio/vnd.dolby.pl2z": { | |
source: "iana" | |
}, | |
"audio/vnd.dolby.pulse.1": { | |
source: "iana" | |
}, | |
"audio/vnd.dra": { | |
source: "iana", | |
extensions: ["dra"] | |
}, | |
"audio/vnd.dts": { | |
source: "iana", | |
extensions: ["dts"] | |
}, | |
"audio/vnd.dts.hd": { | |
source: "iana", | |
extensions: ["dtshd"] | |
}, | |
"audio/vnd.dts.uhd": { | |
source: "iana" | |
}, | |
"audio/vnd.dvb.file": { | |
source: "iana" | |
}, | |
"audio/vnd.everad.plj": { | |
source: "iana" | |
}, | |
"audio/vnd.hns.audio": { | |
source: "iana" | |
}, | |
"audio/vnd.lucent.voice": { | |
source: "iana", | |
extensions: ["lvp"] | |
}, | |
"audio/vnd.ms-playready.media.pya": { | |
source: "iana", | |
extensions: ["pya"] | |
}, | |
"audio/vnd.nokia.mobile-xmf": { | |
source: "iana" | |
}, | |
"audio/vnd.nortel.vbk": { | |
source: "iana" | |
}, | |
"audio/vnd.nuera.ecelp4800": { | |
source: "iana", | |
extensions: ["ecelp4800"] | |
}, | |
"audio/vnd.nuera.ecelp7470": { | |
source: "iana", | |
extensions: ["ecelp7470"] | |
}, | |
"audio/vnd.nuera.ecelp9600": { | |
source: "iana", | |
extensions: ["ecelp9600"] | |
}, | |
"audio/vnd.octel.sbc": { | |
source: "iana" | |
}, | |
"audio/vnd.presonus.multitrack": { | |
source: "iana" | |
}, | |
"audio/vnd.qcelp": { | |
source: "iana" | |
}, | |
"audio/vnd.rhetorex.32kadpcm": { | |
source: "iana" | |
}, | |
"audio/vnd.rip": { | |
source: "iana", | |
extensions: ["rip"] | |
}, | |
"audio/vnd.rn-realaudio": { | |
compressible: !1 | |
}, | |
"audio/vnd.sealedmedia.softseal.mpeg": { | |
source: "iana" | |
}, | |
"audio/vnd.vmx.cvsd": { | |
source: "iana" | |
}, | |
"audio/vnd.wave": { | |
compressible: !1 | |
}, | |
"audio/vorbis": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"audio/vorbis-config": { | |
source: "iana" | |
}, | |
"audio/wav": { | |
compressible: !1, | |
extensions: ["wav"] | |
}, | |
"audio/wave": { | |
compressible: !1, | |
extensions: ["wav"] | |
}, | |
"audio/webm": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["weba"] | |
}, | |
"audio/x-aac": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["aac"] | |
}, | |
"audio/x-aiff": { | |
source: "apache", | |
extensions: ["aif", "aiff", "aifc"] | |
}, | |
"audio/x-caf": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["caf"] | |
}, | |
"audio/x-flac": { | |
source: "apache", | |
extensions: ["flac"] | |
}, | |
"audio/x-m4a": { | |
source: "nginx", | |
extensions: ["m4a"] | |
}, | |
"audio/x-matroska": { | |
source: "apache", | |
extensions: ["mka"] | |
}, | |
"audio/x-mpegurl": { | |
source: "apache", | |
extensions: ["m3u"] | |
}, | |
"audio/x-ms-wax": { | |
source: "apache", | |
extensions: ["wax"] | |
}, | |
"audio/x-ms-wma": { | |
source: "apache", | |
extensions: ["wma"] | |
}, | |
"audio/x-pn-realaudio": { | |
source: "apache", | |
extensions: ["ram", "ra"] | |
}, | |
"audio/x-pn-realaudio-plugin": { | |
source: "apache", | |
extensions: ["rmp"] | |
}, | |
"audio/x-realaudio": { | |
source: "nginx", | |
extensions: ["ra"] | |
}, | |
"audio/x-tta": { | |
source: "apache" | |
}, | |
"audio/x-wav": { | |
source: "apache", | |
extensions: ["wav"] | |
}, | |
"audio/xm": { | |
source: "apache", | |
extensions: ["xm"] | |
}, | |
"chemical/x-cdx": { | |
source: "apache", | |
extensions: ["cdx"] | |
}, | |
"chemical/x-cif": { | |
source: "apache", | |
extensions: ["cif"] | |
}, | |
"chemical/x-cmdf": { | |
source: "apache", | |
extensions: ["cmdf"] | |
}, | |
"chemical/x-cml": { | |
source: "apache", | |
extensions: ["cml"] | |
}, | |
"chemical/x-csml": { | |
source: "apache", | |
extensions: ["csml"] | |
}, | |
"chemical/x-pdb": { | |
source: "apache" | |
}, | |
"chemical/x-xyz": { | |
source: "apache", | |
extensions: ["xyz"] | |
}, | |
"font/collection": { | |
source: "iana", | |
extensions: ["ttc"] | |
}, | |
"font/otf": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["otf"] | |
}, | |
"font/sfnt": { | |
source: "iana" | |
}, | |
"font/ttf": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["ttf"] | |
}, | |
"font/woff": { | |
source: "iana", | |
extensions: ["woff"] | |
}, | |
"font/woff2": { | |
source: "iana", | |
extensions: ["woff2"] | |
}, | |
"image/aces": { | |
source: "iana", | |
extensions: ["exr"] | |
}, | |
"image/apng": { | |
compressible: !1, | |
extensions: ["apng"] | |
}, | |
"image/avci": { | |
source: "iana", | |
extensions: ["avci"] | |
}, | |
"image/avcs": { | |
source: "iana", | |
extensions: ["avcs"] | |
}, | |
"image/avif": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["avif"] | |
}, | |
"image/bmp": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["bmp"] | |
}, | |
"image/cgm": { | |
source: "iana", | |
extensions: ["cgm"] | |
}, | |
"image/dicom-rle": { | |
source: "iana", | |
extensions: ["drle"] | |
}, | |
"image/emf": { | |
source: "iana", | |
extensions: ["emf"] | |
}, | |
"image/fits": { | |
source: "iana", | |
extensions: ["fits"] | |
}, | |
"image/g3fax": { | |
source: "iana", | |
extensions: ["g3"] | |
}, | |
"image/gif": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["gif"] | |
}, | |
"image/heic": { | |
source: "iana", | |
extensions: ["heic"] | |
}, | |
"image/heic-sequence": { | |
source: "iana", | |
extensions: ["heics"] | |
}, | |
"image/heif": { | |
source: "iana", | |
extensions: ["heif"] | |
}, | |
"image/heif-sequence": { | |
source: "iana", | |
extensions: ["heifs"] | |
}, | |
"image/hej2k": { | |
source: "iana", | |
extensions: ["hej2"] | |
}, | |
"image/hsj2": { | |
source: "iana", | |
extensions: ["hsj2"] | |
}, | |
"image/ief": { | |
source: "iana", | |
extensions: ["ief"] | |
}, | |
"image/jls": { | |
source: "iana", | |
extensions: ["jls"] | |
}, | |
"image/jp2": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["jp2", "jpg2"] | |
}, | |
"image/jpeg": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["jpeg", "jpg", "jpe"] | |
}, | |
"image/jph": { | |
source: "iana", | |
extensions: ["jph"] | |
}, | |
"image/jphc": { | |
source: "iana", | |
extensions: ["jhc"] | |
}, | |
"image/jpm": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["jpm"] | |
}, | |
"image/jpx": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["jpx", "jpf"] | |
}, | |
"image/jxr": { | |
source: "iana", | |
extensions: ["jxr"] | |
}, | |
"image/jxra": { | |
source: "iana", | |
extensions: ["jxra"] | |
}, | |
"image/jxrs": { | |
source: "iana", | |
extensions: ["jxrs"] | |
}, | |
"image/jxs": { | |
source: "iana", | |
extensions: ["jxs"] | |
}, | |
"image/jxsc": { | |
source: "iana", | |
extensions: ["jxsc"] | |
}, | |
"image/jxsi": { | |
source: "iana", | |
extensions: ["jxsi"] | |
}, | |
"image/jxss": { | |
source: "iana", | |
extensions: ["jxss"] | |
}, | |
"image/ktx": { | |
source: "iana", | |
extensions: ["ktx"] | |
}, | |
"image/ktx2": { | |
source: "iana", | |
extensions: ["ktx2"] | |
}, | |
"image/naplps": { | |
source: "iana" | |
}, | |
"image/pjpeg": { | |
compressible: !1 | |
}, | |
"image/png": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["png"] | |
}, | |
"image/prs.btif": { | |
source: "iana", | |
extensions: ["btif"] | |
}, | |
"image/prs.pti": { | |
source: "iana", | |
extensions: ["pti"] | |
}, | |
"image/pwg-raster": { | |
source: "iana" | |
}, | |
"image/sgi": { | |
source: "apache", | |
extensions: ["sgi"] | |
}, | |
"image/svg+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["svg", "svgz"] | |
}, | |
"image/t38": { | |
source: "iana", | |
extensions: ["t38"] | |
}, | |
"image/tiff": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["tif", "tiff"] | |
}, | |
"image/tiff-fx": { | |
source: "iana", | |
extensions: ["tfx"] | |
}, | |
"image/vnd.adobe.photoshop": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["psd"] | |
}, | |
"image/vnd.airzip.accelerator.azv": { | |
source: "iana", | |
extensions: ["azv"] | |
}, | |
"image/vnd.cns.inf2": { | |
source: "iana" | |
}, | |
"image/vnd.dece.graphic": { | |
source: "iana", | |
extensions: ["uvi", "uvvi", "uvg", "uvvg"] | |
}, | |
"image/vnd.djvu": { | |
source: "iana", | |
extensions: ["djvu", "djv"] | |
}, | |
"image/vnd.dvb.subtitle": { | |
source: "iana", | |
extensions: ["sub"] | |
}, | |
"image/vnd.dwg": { | |
source: "iana", | |
extensions: ["dwg"] | |
}, | |
"image/vnd.dxf": { | |
source: "iana", | |
extensions: ["dxf"] | |
}, | |
"image/vnd.fastbidsheet": { | |
source: "iana", | |
extensions: ["fbs"] | |
}, | |
"image/vnd.fpx": { | |
source: "iana", | |
extensions: ["fpx"] | |
}, | |
"image/vnd.fst": { | |
source: "iana", | |
extensions: ["fst"] | |
}, | |
"image/vnd.fujixerox.edmics-mmr": { | |
source: "iana", | |
extensions: ["mmr"] | |
}, | |
"image/vnd.fujixerox.edmics-rlc": { | |
source: "iana", | |
extensions: ["rlc"] | |
}, | |
"image/vnd.globalgraphics.pgb": { | |
source: "iana" | |
}, | |
"image/vnd.microsoft.icon": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["ico"] | |
}, | |
"image/vnd.mix": { | |
source: "iana" | |
}, | |
"image/vnd.mozilla.apng": { | |
source: "iana" | |
}, | |
"image/vnd.ms-dds": { | |
compressible: !0, | |
extensions: ["dds"] | |
}, | |
"image/vnd.ms-modi": { | |
source: "iana", | |
extensions: ["mdi"] | |
}, | |
"image/vnd.ms-photo": { | |
source: "apache", | |
extensions: ["wdp"] | |
}, | |
"image/vnd.net-fpx": { | |
source: "iana", | |
extensions: ["npx"] | |
}, | |
"image/vnd.pco.b16": { | |
source: "iana", | |
extensions: ["b16"] | |
}, | |
"image/vnd.radiance": { | |
source: "iana" | |
}, | |
"image/vnd.sealed.png": { | |
source: "iana" | |
}, | |
"image/vnd.sealedmedia.softseal.gif": { | |
source: "iana" | |
}, | |
"image/vnd.sealedmedia.softseal.jpg": { | |
source: "iana" | |
}, | |
"image/vnd.svf": { | |
source: "iana" | |
}, | |
"image/vnd.tencent.tap": { | |
source: "iana", | |
extensions: ["tap"] | |
}, | |
"image/vnd.valve.source.texture": { | |
source: "iana", | |
extensions: ["vtf"] | |
}, | |
"image/vnd.wap.wbmp": { | |
source: "iana", | |
extensions: ["wbmp"] | |
}, | |
"image/vnd.xiff": { | |
source: "iana", | |
extensions: ["xif"] | |
}, | |
"image/vnd.zbrush.pcx": { | |
source: "iana", | |
extensions: ["pcx"] | |
}, | |
"image/webp": { | |
source: "apache", | |
extensions: ["webp"] | |
}, | |
"image/wmf": { | |
source: "iana", | |
extensions: ["wmf"] | |
}, | |
"image/x-3ds": { | |
source: "apache", | |
extensions: ["3ds"] | |
}, | |
"image/x-cmu-raster": { | |
source: "apache", | |
extensions: ["ras"] | |
}, | |
"image/x-cmx": { | |
source: "apache", | |
extensions: ["cmx"] | |
}, | |
"image/x-freehand": { | |
source: "apache", | |
extensions: ["fh", "fhc", "fh4", "fh5", "fh7"] | |
}, | |
"image/x-icon": { | |
source: "apache", | |
compressible: !0, | |
extensions: ["ico"] | |
}, | |
"image/x-jng": { | |
source: "nginx", | |
extensions: ["jng"] | |
}, | |
"image/x-mrsid-image": { | |
source: "apache", | |
extensions: ["sid"] | |
}, | |
"image/x-ms-bmp": { | |
source: "nginx", | |
compressible: !0, | |
extensions: ["bmp"] | |
}, | |
"image/x-pcx": { | |
source: "apache", | |
extensions: ["pcx"] | |
}, | |
"image/x-pict": { | |
source: "apache", | |
extensions: ["pic", "pct"] | |
}, | |
"image/x-portable-anymap": { | |
source: "apache", | |
extensions: ["pnm"] | |
}, | |
"image/x-portable-bitmap": { | |
source: "apache", | |
extensions: ["pbm"] | |
}, | |
"image/x-portable-graymap": { | |
source: "apache", | |
extensions: ["pgm"] | |
}, | |
"image/x-portable-pixmap": { | |
source: "apache", | |
extensions: ["ppm"] | |
}, | |
"image/x-rgb": { | |
source: "apache", | |
extensions: ["rgb"] | |
}, | |
"image/x-tga": { | |
source: "apache", | |
extensions: ["tga"] | |
}, | |
"image/x-xbitmap": { | |
source: "apache", | |
extensions: ["xbm"] | |
}, | |
"image/x-xcf": { | |
compressible: !1 | |
}, | |
"image/x-xpixmap": { | |
source: "apache", | |
extensions: ["xpm"] | |
}, | |
"image/x-xwindowdump": { | |
source: "apache", | |
extensions: ["xwd"] | |
}, | |
"message/cpim": { | |
source: "iana" | |
}, | |
"message/delivery-status": { | |
source: "iana" | |
}, | |
"message/disposition-notification": { | |
source: "iana", | |
extensions: ["disposition-notification"] | |
}, | |
"message/external-body": { | |
source: "iana" | |
}, | |
"message/feedback-report": { | |
source: "iana" | |
}, | |
"message/global": { | |
source: "iana", | |
extensions: ["u8msg"] | |
}, | |
"message/global-delivery-status": { | |
source: "iana", | |
extensions: ["u8dsn"] | |
}, | |
"message/global-disposition-notification": { | |
source: "iana", | |
extensions: ["u8mdn"] | |
}, | |
"message/global-headers": { | |
source: "iana", | |
extensions: ["u8hdr"] | |
}, | |
"message/http": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"message/imdn+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"message/news": { | |
source: "iana" | |
}, | |
"message/partial": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"message/rfc822": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["eml", "mime"] | |
}, | |
"message/s-http": { | |
source: "iana" | |
}, | |
"message/sip": { | |
source: "iana" | |
}, | |
"message/sipfrag": { | |
source: "iana" | |
}, | |
"message/tracking-status": { | |
source: "iana" | |
}, | |
"message/vnd.si.simp": { | |
source: "iana" | |
}, | |
"message/vnd.wfa.wsc": { | |
source: "iana", | |
extensions: ["wsc"] | |
}, | |
"model/3mf": { | |
source: "iana", | |
extensions: ["3mf"] | |
}, | |
"model/e57": { | |
source: "iana" | |
}, | |
"model/gltf+json": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["gltf"] | |
}, | |
"model/gltf-binary": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["glb"] | |
}, | |
"model/iges": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["igs", "iges"] | |
}, | |
"model/mesh": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["msh", "mesh", "silo"] | |
}, | |
"model/mtl": { | |
source: "iana", | |
extensions: ["mtl"] | |
}, | |
"model/obj": { | |
source: "iana", | |
extensions: ["obj"] | |
}, | |
"model/step": { | |
source: "iana" | |
}, | |
"model/step+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["stpx"] | |
}, | |
"model/step+zip": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["stpz"] | |
}, | |
"model/step-xml+zip": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["stpxz"] | |
}, | |
"model/stl": { | |
source: "iana", | |
extensions: ["stl"] | |
}, | |
"model/vnd.collada+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["dae"] | |
}, | |
"model/vnd.dwf": { | |
source: "iana", | |
extensions: ["dwf"] | |
}, | |
"model/vnd.flatland.3dml": { | |
source: "iana" | |
}, | |
"model/vnd.gdl": { | |
source: "iana", | |
extensions: ["gdl"] | |
}, | |
"model/vnd.gs-gdl": { | |
source: "apache" | |
}, | |
"model/vnd.gs.gdl": { | |
source: "iana" | |
}, | |
"model/vnd.gtw": { | |
source: "iana", | |
extensions: ["gtw"] | |
}, | |
"model/vnd.moml+xml": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"model/vnd.mts": { | |
source: "iana", | |
extensions: ["mts"] | |
}, | |
"model/vnd.opengex": { | |
source: "iana", | |
extensions: ["ogex"] | |
}, | |
"model/vnd.parasolid.transmit.binary": { | |
source: "iana", | |
extensions: ["x_b"] | |
}, | |
"model/vnd.parasolid.transmit.text": { | |
source: "iana", | |
extensions: ["x_t"] | |
}, | |
"model/vnd.pytha.pyox": { | |
source: "iana" | |
}, | |
"model/vnd.rosette.annotated-data-model": { | |
source: "iana" | |
}, | |
"model/vnd.sap.vds": { | |
source: "iana", | |
extensions: ["vds"] | |
}, | |
"model/vnd.usdz+zip": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["usdz"] | |
}, | |
"model/vnd.valve.source.compiled-map": { | |
source: "iana", | |
extensions: ["bsp"] | |
}, | |
"model/vnd.vtu": { | |
source: "iana", | |
extensions: ["vtu"] | |
}, | |
"model/vrml": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["wrl", "vrml"] | |
}, | |
"model/x3d+binary": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["x3db", "x3dbz"] | |
}, | |
"model/x3d+fastinfoset": { | |
source: "iana", | |
extensions: ["x3db"] | |
}, | |
"model/x3d+vrml": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["x3dv", "x3dvz"] | |
}, | |
"model/x3d+xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["x3d", "x3dz"] | |
}, | |
"model/x3d-vrml": { | |
source: "iana", | |
extensions: ["x3dv"] | |
}, | |
"multipart/alternative": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"multipart/appledouble": { | |
source: "iana" | |
}, | |
"multipart/byteranges": { | |
source: "iana" | |
}, | |
"multipart/digest": { | |
source: "iana" | |
}, | |
"multipart/encrypted": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"multipart/form-data": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"multipart/header-set": { | |
source: "iana" | |
}, | |
"multipart/mixed": { | |
source: "iana" | |
}, | |
"multipart/multilingual": { | |
source: "iana" | |
}, | |
"multipart/parallel": { | |
source: "iana" | |
}, | |
"multipart/related": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"multipart/report": { | |
source: "iana" | |
}, | |
"multipart/signed": { | |
source: "iana", | |
compressible: !1 | |
}, | |
"multipart/vnd.bint.med-plus": { | |
source: "iana" | |
}, | |
"multipart/voice-message": { | |
source: "iana" | |
}, | |
"multipart/x-mixed-replace": { | |
source: "iana" | |
}, | |
"text/1d-interleaved-parityfec": { | |
source: "iana" | |
}, | |
"text/cache-manifest": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["appcache", "manifest"] | |
}, | |
"text/calendar": { | |
source: "iana", | |
extensions: ["ics", "ifb"] | |
}, | |
"text/calender": { | |
compressible: !0 | |
}, | |
"text/cmd": { | |
compressible: !0 | |
}, | |
"text/coffeescript": { | |
extensions: ["coffee", "litcoffee"] | |
}, | |
"text/cql": { | |
source: "iana" | |
}, | |
"text/cql-expression": { | |
source: "iana" | |
}, | |
"text/cql-identifier": { | |
source: "iana" | |
}, | |
"text/css": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0, | |
extensions: ["css"] | |
}, | |
"text/csv": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["csv"] | |
}, | |
"text/csv-schema": { | |
source: "iana" | |
}, | |
"text/directory": { | |
source: "iana" | |
}, | |
"text/dns": { | |
source: "iana" | |
}, | |
"text/ecmascript": { | |
source: "iana" | |
}, | |
"text/encaprtp": { | |
source: "iana" | |
}, | |
"text/enriched": { | |
source: "iana" | |
}, | |
"text/fhirpath": { | |
source: "iana" | |
}, | |
"text/flexfec": { | |
source: "iana" | |
}, | |
"text/fwdred": { | |
source: "iana" | |
}, | |
"text/gff3": { | |
source: "iana" | |
}, | |
"text/grammar-ref-list": { | |
source: "iana" | |
}, | |
"text/html": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["html", "htm", "shtml"] | |
}, | |
"text/jade": { | |
extensions: ["jade"] | |
}, | |
"text/javascript": { | |
source: "iana", | |
compressible: !0 | |
}, | |
"text/jcr-cnd": { | |
source: "iana" | |
}, | |
"text/jsx": { | |
compressible: !0, | |
extensions: ["jsx"] | |
}, | |
"text/less": { | |
compressible: !0, | |
extensions: ["less"] | |
}, | |
"text/markdown": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["markdown", "md"] | |
}, | |
"text/mathml": { | |
source: "nginx", | |
extensions: ["mml"] | |
}, | |
"text/mdx": { | |
compressible: !0, | |
extensions: ["mdx"] | |
}, | |
"text/mizar": { | |
source: "iana" | |
}, | |
"text/n3": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0, | |
extensions: ["n3"] | |
}, | |
"text/parameters": { | |
source: "iana", | |
charset: "UTF-8" | |
}, | |
"text/parityfec": { | |
source: "iana" | |
}, | |
"text/plain": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"] | |
}, | |
"text/provenance-notation": { | |
source: "iana", | |
charset: "UTF-8" | |
}, | |
"text/prs.fallenstein.rst": { | |
source: "iana" | |
}, | |
"text/prs.lines.tag": { | |
source: "iana", | |
extensions: ["dsc"] | |
}, | |
"text/prs.prop.logic": { | |
source: "iana" | |
}, | |
"text/raptorfec": { | |
source: "iana" | |
}, | |
"text/red": { | |
source: "iana" | |
}, | |
"text/rfc822-headers": { | |
source: "iana" | |
}, | |
"text/richtext": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["rtx"] | |
}, | |
"text/rtf": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["rtf"] | |
}, | |
"text/rtp-enc-aescm128": { | |
source: "iana" | |
}, | |
"text/rtploopback": { | |
source: "iana" | |
}, | |
"text/rtx": { | |
source: "iana" | |
}, | |
"text/sgml": { | |
source: "iana", | |
extensions: ["sgml", "sgm"] | |
}, | |
"text/shaclc": { | |
source: "iana" | |
}, | |
"text/shex": { | |
source: "iana", | |
extensions: ["shex"] | |
}, | |
"text/slim": { | |
extensions: ["slim", "slm"] | |
}, | |
"text/spdx": { | |
source: "iana", | |
extensions: ["spdx"] | |
}, | |
"text/strings": { | |
source: "iana" | |
}, | |
"text/stylus": { | |
extensions: ["stylus", "styl"] | |
}, | |
"text/t140": { | |
source: "iana" | |
}, | |
"text/tab-separated-values": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["tsv"] | |
}, | |
"text/troff": { | |
source: "iana", | |
extensions: ["t", "tr", "roff", "man", "me", "ms"] | |
}, | |
"text/turtle": { | |
source: "iana", | |
charset: "UTF-8", | |
extensions: ["ttl"] | |
}, | |
"text/ulpfec": { | |
source: "iana" | |
}, | |
"text/uri-list": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["uri", "uris", "urls"] | |
}, | |
"text/vcard": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["vcard"] | |
}, | |
"text/vnd.a": { | |
source: "iana" | |
}, | |
"text/vnd.abc": { | |
source: "iana" | |
}, | |
"text/vnd.ascii-art": { | |
source: "iana" | |
}, | |
"text/vnd.curl": { | |
source: "iana", | |
extensions: ["curl"] | |
}, | |
"text/vnd.curl.dcurl": { | |
source: "apache", | |
extensions: ["dcurl"] | |
}, | |
"text/vnd.curl.mcurl": { | |
source: "apache", | |
extensions: ["mcurl"] | |
}, | |
"text/vnd.curl.scurl": { | |
source: "apache", | |
extensions: ["scurl"] | |
}, | |
"text/vnd.debian.copyright": { | |
source: "iana", | |
charset: "UTF-8" | |
}, | |
"text/vnd.dmclientscript": { | |
source: "iana" | |
}, | |
"text/vnd.dvb.subtitle": { | |
source: "iana", | |
extensions: ["sub"] | |
}, | |
"text/vnd.esmertec.theme-descriptor": { | |
source: "iana", | |
charset: "UTF-8" | |
}, | |
"text/vnd.familysearch.gedcom": { | |
source: "iana", | |
extensions: ["ged"] | |
}, | |
"text/vnd.ficlab.flt": { | |
source: "iana" | |
}, | |
"text/vnd.fly": { | |
source: "iana", | |
extensions: ["fly"] | |
}, | |
"text/vnd.fmi.flexstor": { | |
source: "iana", | |
extensions: ["flx"] | |
}, | |
"text/vnd.gml": { | |
source: "iana" | |
}, | |
"text/vnd.graphviz": { | |
source: "iana", | |
extensions: ["gv"] | |
}, | |
"text/vnd.hans": { | |
source: "iana" | |
}, | |
"text/vnd.hgl": { | |
source: "iana" | |
}, | |
"text/vnd.in3d.3dml": { | |
source: "iana", | |
extensions: ["3dml"] | |
}, | |
"text/vnd.in3d.spot": { | |
source: "iana", | |
extensions: ["spot"] | |
}, | |
"text/vnd.iptc.newsml": { | |
source: "iana" | |
}, | |
"text/vnd.iptc.nitf": { | |
source: "iana" | |
}, | |
"text/vnd.latex-z": { | |
source: "iana" | |
}, | |
"text/vnd.motorola.reflex": { | |
source: "iana" | |
}, | |
"text/vnd.ms-mediapackage": { | |
source: "iana" | |
}, | |
"text/vnd.net2phone.commcenter.command": { | |
source: "iana" | |
}, | |
"text/vnd.radisys.msml-basic-layout": { | |
source: "iana" | |
}, | |
"text/vnd.senx.warpscript": { | |
source: "iana" | |
}, | |
"text/vnd.si.uricatalogue": { | |
source: "iana" | |
}, | |
"text/vnd.sosi": { | |
source: "iana" | |
}, | |
"text/vnd.sun.j2me.app-descriptor": { | |
source: "iana", | |
charset: "UTF-8", | |
extensions: ["jad"] | |
}, | |
"text/vnd.trolltech.linguist": { | |
source: "iana", | |
charset: "UTF-8" | |
}, | |
"text/vnd.wap.si": { | |
source: "iana" | |
}, | |
"text/vnd.wap.sl": { | |
source: "iana" | |
}, | |
"text/vnd.wap.wml": { | |
source: "iana", | |
extensions: ["wml"] | |
}, | |
"text/vnd.wap.wmlscript": { | |
source: "iana", | |
extensions: ["wmls"] | |
}, | |
"text/vtt": { | |
source: "iana", | |
charset: "UTF-8", | |
compressible: !0, | |
extensions: ["vtt"] | |
}, | |
"text/x-asm": { | |
source: "apache", | |
extensions: ["s", "asm"] | |
}, | |
"text/x-c": { | |
source: "apache", | |
extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"] | |
}, | |
"text/x-component": { | |
source: "nginx", | |
extensions: ["htc"] | |
}, | |
"text/x-fortran": { | |
source: "apache", | |
extensions: ["f", "for", "f77", "f90"] | |
}, | |
"text/x-gwt-rpc": { | |
compressible: !0 | |
}, | |
"text/x-handlebars-template": { | |
extensions: ["hbs"] | |
}, | |
"text/x-java-source": { | |
source: "apache", | |
extensions: ["java"] | |
}, | |
"text/x-jquery-tmpl": { | |
compressible: !0 | |
}, | |
"text/x-lua": { | |
extensions: ["lua"] | |
}, | |
"text/x-markdown": { | |
compressible: !0, | |
extensions: ["mkd"] | |
}, | |
"text/x-nfo": { | |
source: "apache", | |
extensions: ["nfo"] | |
}, | |
"text/x-opml": { | |
source: "apache", | |
extensions: ["opml"] | |
}, | |
"text/x-org": { | |
compressible: !0, | |
extensions: ["org"] | |
}, | |
"text/x-pascal": { | |
source: "apache", | |
extensions: ["p", "pas"] | |
}, | |
"text/x-processing": { | |
compressible: !0, | |
extensions: ["pde"] | |
}, | |
"text/x-sass": { | |
extensions: ["sass"] | |
}, | |
"text/x-scss": { | |
extensions: ["scss"] | |
}, | |
"text/x-setext": { | |
source: "apache", | |
extensions: ["etx"] | |
}, | |
"text/x-sfv": { | |
source: "apache", | |
extensions: ["sfv"] | |
}, | |
"text/x-suse-ymp": { | |
compressible: !0, | |
extensions: ["ymp"] | |
}, | |
"text/x-uuencode": { | |
source: "apache", | |
extensions: ["uu"] | |
}, | |
"text/x-vcalendar": { | |
source: "apache", | |
extensions: ["vcs"] | |
}, | |
"text/x-vcard": { | |
source: "apache", | |
extensions: ["vcf"] | |
}, | |
"text/xml": { | |
source: "iana", | |
compressible: !0, | |
extensions: ["xml"] | |
}, | |
"text/xml-external-parsed-entity": { | |
source: "iana" | |
}, | |
"text/yaml": { | |
compressible: !0, | |
extensions: ["yaml", "yml"] | |
}, | |
"video/1d-interleaved-parityfec": { | |
source: "iana" | |
}, | |
"video/3gpp": { | |
source: "iana", | |
extensions: ["3gp", "3gpp"] | |
}, | |
"video/3gpp-tt": { | |
source: "iana" | |
}, | |
"video/3gpp2": { | |
source: "iana", | |
extensions: ["3g2"] | |
}, | |
"video/av1": { | |
source: "iana" | |
}, | |
"video/bmpeg": { | |
source: "iana" | |
}, | |
"video/bt656": { | |
source: "iana" | |
}, | |
"video/celb": { | |
source: "iana" | |
}, | |
"video/dv": { | |
source: "iana" | |
}, | |
"video/encaprtp": { | |
source: "iana" | |
}, | |
"video/ffv1": { | |
source: "iana" | |
}, | |
"video/flexfec": { | |
source: "iana" | |
}, | |
"video/h261": { | |
source: "iana", | |
extensions: ["h261"] | |
}, | |
"video/h263": { | |
source: "iana", | |
extensions: ["h263"] | |
}, | |
"video/h263-1998": { | |
source: "iana" | |
}, | |
"video/h263-2000": { | |
source: "iana" | |
}, | |
"video/h264": { | |
source: "iana", | |
extensions: ["h264"] | |
}, | |
"video/h264-rcdo": { | |
source: "iana" | |
}, | |
"video/h264-svc": { | |
source: "iana" | |
}, | |
"video/h265": { | |
source: "iana" | |
}, | |
"video/iso.segment": { | |
source: "iana", | |
extensions: ["m4s"] | |
}, | |
"video/jpeg": { | |
source: "iana", | |
extensions: ["jpgv"] | |
}, | |
"video/jpeg2000": { | |
source: "iana" | |
}, | |
"video/jpm": { | |
source: "apache", | |
extensions: ["jpm", "jpgm"] | |
}, | |
"video/jxsv": { | |
source: "iana" | |
}, | |
"video/mj2": { | |
source: "iana", | |
extensions: ["mj2", "mjp2"] | |
}, | |
"video/mp1s": { | |
source: "iana" | |
}, | |
"video/mp2p": { | |
source: "iana" | |
}, | |
"video/mp2t": { | |
source: "iana", | |
extensions: ["ts"] | |
}, | |
"video/mp4": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["mp4", "mp4v", "mpg4"] | |
}, | |
"video/mp4v-es": { | |
source: "iana" | |
}, | |
"video/mpeg": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"] | |
}, | |
"video/mpeg4-generic": { | |
source: "iana" | |
}, | |
"video/mpv": { | |
source: "iana" | |
}, | |
"video/nv": { | |
source: "iana" | |
}, | |
"video/ogg": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["ogv"] | |
}, | |
"video/parityfec": { | |
source: "iana" | |
}, | |
"video/pointer": { | |
source: "iana" | |
}, | |
"video/quicktime": { | |
source: "iana", | |
compressible: !1, | |
extensions: ["qt", "mov"] | |
}, | |
"video/raptorfec": { | |
source: "iana" | |
}, | |
"video/raw": { | |
source: "iana" | |
}, | |
"video/rtp-enc-aescm128": { | |
source: "iana" | |
}, | |
"video/rtploopback": { | |
source: "iana" | |
}, | |
"video/rtx": { | |
source: "iana" | |
}, | |
"video/scip": { | |
source: "iana" | |
}, | |
"video/smpte291": { | |
source: "iana" | |
}, | |
"video/smpte292m": { | |
source: "iana" | |
}, | |
"video/ulpfec": { | |
source: "iana" | |
}, | |
"video/vc1": { | |
source: "iana" | |
}, | |
"video/vc2": { | |
source: "iana" | |
}, | |
"video/vnd.cctv": { | |
source: "iana" | |
}, | |
"video/vnd.dece.hd": { | |
source: "iana", | |
extensions: ["uvh", "uvvh"] | |
}, | |
"video/vnd.dece.mobile": { | |
source: "iana", | |
extensions: ["uvm", "uvvm"] | |
}, | |
"video/vnd.dece.mp4": { | |
source: "iana" | |
}, | |
"video/vnd.dece.pd": { | |
source: "iana", | |
extensions: ["uvp", "uvvp"] | |
}, | |
"video/vnd.dece.sd": { | |
source: "iana", | |
extensions: ["uvs", "uvvs"] | |
}, | |
"video/vnd.dece.video": { | |
source: "iana", | |
extensions: ["uvv", "uvvv"] | |
}, | |
"video/vnd.directv.mpeg": { | |
source: "iana" | |
}, | |
"video/vnd.directv.mpeg-tts": { | |
source: "iana" | |
}, | |
"video/vnd.dlna.mpeg-tts": { | |
source: "iana" | |
}, | |
"video/vnd.dvb.file": { | |
source: "iana", | |
extensions: ["dvb"] | |
}, | |
"video/vnd.fvt": { | |
source: "iana", | |
extensions: ["fvt"] | |
}, | |
"video/vnd.hns.video": { | |
source: "iana" | |
}, | |
"video/vnd.iptvforum.1dparityfec-1010": { | |
source: "iana" | |
}, | |
"video/vnd.iptvforum.1dparityfec-2005": { | |
source: "iana" | |
}, | |
"video/vnd.iptvforum.2dparityfec-1010": { | |
source: "iana" | |
}, | |
"video/vnd.iptvforum.2dparityfec-2005": { | |
source: "iana" | |
}, | |
"video/vnd.iptvforum.ttsavc": { | |
source: "iana" | |
}, | |
"video/vnd.iptvforum.ttsmpeg2": { | |
source: "iana" | |
}, | |
"video/vnd.motorola.video": { | |
source: "iana" | |
}, | |
"video/vnd.motorola.videop": { | |
source: "iana" | |
}, | |
"video/vnd.mpegurl": { | |
source: "iana", | |
extensions: ["mxu", "m4u"] | |
}, | |
"video/vnd.ms-playready.media.pyv": { | |
source: "iana", | |
extensions: ["pyv"] | |
}, | |
"video/vnd.nokia.interleaved-multimedia": { | |
source: "iana" | |
}, | |
"video/vnd.nokia.mp4vr": { | |
source: "iana" | |
}, | |
"video/vnd.nokia.videovoip": { | |
source: "iana" | |
}, | |
"video/vnd.objectvideo": { | |
source: "iana" | |
}, | |
"video/vnd.radgamettools.bink": { | |
source: "iana" | |
}, | |
"video/vnd.radgamettools.smacker": { | |
source: "iana" | |
}, | |
"video/vnd.sealed.mpeg1": { | |
source: "iana" | |
}, | |
"video/vnd.sealed.mpeg4": { | |
source: "iana" | |
}, | |
"video/vnd.sealed.swf": { | |
source: "iana" | |
}, | |
"video/vnd.sealedmedia.softseal.mov": { | |
source: "iana" | |
}, | |
"video/vnd.uvvu.mp4": { | |
source: "iana", | |
extensions: ["uvu", "uvvu"] | |
}, | |
"video/vnd.vivo": { | |
source: "iana", | |
extensions: ["viv"] | |
}, | |
"video/vnd.youtube.yt": { | |
source: "iana" | |
}, | |
"video/vp8": { | |
source: "iana" | |
}, | |
"video/vp9": { | |
source: "iana" | |
}, | |
"video/webm": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["webm"] | |
}, | |
"video/x-f4v": { | |
source: "apache", | |
extensions: ["f4v"] | |
}, | |
"video/x-fli": { | |
source: "apache", | |
extensions: ["fli"] | |
}, | |
"video/x-flv": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["flv"] | |
}, | |
"video/x-m4v": { | |
source: "apache", | |
extensions: ["m4v"] | |
}, | |
"video/x-matroska": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["mkv", "mk3d", "mks"] | |
}, | |
"video/x-mng": { | |
source: "apache", | |
extensions: ["mng"] | |
}, | |
"video/x-ms-asf": { | |
source: "apache", | |
extensions: ["asf", "asx"] | |
}, | |
"video/x-ms-vob": { | |
source: "apache", | |
extensions: ["vob"] | |
}, | |
"video/x-ms-wm": { | |
source: "apache", | |
extensions: ["wm"] | |
}, | |
"video/x-ms-wmv": { | |
source: "apache", | |
compressible: !1, | |
extensions: ["wmv"] | |
}, | |
"video/x-ms-wmx": { | |
source: "apache", | |
extensions: ["wmx"] | |
}, | |
"video/x-ms-wvx": { | |
source: "apache", | |
extensions: ["wvx"] | |
}, | |
"video/x-msvideo": { | |
source: "apache", | |
extensions: ["avi"] | |
}, | |
"video/x-sgi-movie": { | |
source: "apache", | |
extensions: ["movie"] | |
}, | |
"video/x-smv": { | |
source: "apache", | |
extensions: ["smv"] | |
}, | |
"x-conference/x-cooltalk": { | |
source: "apache", | |
extensions: ["ice"] | |
}, | |
"x-shader/x-fragment": { | |
compressible: !0 | |
}, | |
"x-shader/x-vertex": { | |
compressible: !0 | |
} | |
}; | |
/*! | |
* mime-db | |
* Copyright(c) 2014 Jonathan Ong | |
* Copyright(c) 2015-2022 Douglas Christopher Wilson | |
* MIT Licensed | |
*/ | |
var mee = dee; | |
/*! | |
* mime-types | |
* Copyright(c) 2014 Jonathan Ong | |
* Copyright(c) 2015 Douglas Christopher Wilson | |
* MIT Licensed | |
*/ | |
(function(t) { | |
var e = mee, | |
n = Uh.extname, | |
s = /^\s*([^;\s]*)(?:;|\s|$)/, | |
a = /^text\//i; | |
t.charset = o, t.charsets = { | |
lookup: o | |
}, t.contentType = r, t.extension = i, t.extensions = Object.create(null), t.lookup = c, t.types = Object.create(null), l(t.extensions, t.types); | |
function o(u) { | |
if (!u || typeof u != "string") return !1; | |
var d = s.exec(u), | |
m = d && e[d[1].toLowerCase()]; | |
return m && m.charset ? m.charset : d && a.test(d[1]) ? "UTF-8" : !1 | |
} | |
function r(u) { | |
if (!u || typeof u != "string") return !1; | |
var d = u.indexOf("/") === -1 ? t.lookup(u) : u; | |
if (!d) return !1; | |
if (d.indexOf("charset") === -1) { | |
var m = t.charset(d); | |
m && (d += "; charset=" + m.toLowerCase()) | |
} | |
return d | |
} | |
function i(u) { | |
if (!u || typeof u != "string") return !1; | |
var d = s.exec(u), | |
m = d && t.extensions[d[1].toLowerCase()]; | |
return !m || !m.length ? !1 : m[0] | |
} | |
function c(u) { | |
if (!u || typeof u != "string") return !1; | |
var d = n("x." + u).toLowerCase().substr(1); | |
return d && t.types[d] || !1 | |
} | |
function l(u, d) { | |
var m = ["nginx", "apache", void 0, "iana"]; | |
Object.keys(e).forEach(function(h) { | |
var g = e[h], | |
b = g.extensions; | |
if (!(!b || !b.length)) { | |
u[h] = b; | |
for (var x = 0; x < b.length; x++) { | |
var v = b[x]; | |
if (d[v]) { | |
var w = m.indexOf(e[d[v]].source), | |
E = m.indexOf(g.source); | |
if (d[v] !== "application/octet-stream" && (w > E || w === E && d[v].substr(0, 12) === "application/")) continue | |
} | |
d[v] = h | |
} | |
} | |
}) | |
} | |
})(Rd); | |
const Pd = lr(Rd), | |
Qr = { | |
"application/x-cbr": [ | |
[82, 97, 114, 33, 26, 7, 0], | |
[82, 97, 114, 33, 26, 7, 1, 0], | |
[127, 69, 76, 70] | |
], | |
"application/x-cbz": [ | |
[80, 75, 3, 4], | |
[80, 75, 5, 6], | |
[80, 75, 7, 8] | |
] | |
}, | |
ei = { | |
"application/vnd.amazon.kfx": [ | |
[75, 70, 88, 32] | |
], | |
"application/vnd.amazon.kpf": [ | |
[80, 75, 3, 4] | |
], | |
"application/epub+zip": [ | |
[80, 75, 3, 4] | |
], | |
"application/x-mobipocket-ebook": [ | |
[77, 79, 66, 73] | |
] | |
}, | |
ti = { | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": [ | |
[80, 75, 3, 4], | |
[80, 75, 5, 6], | |
[80, 75, 7, 8] | |
] | |
}, | |
ni = { | |
"application/pdf": [ | |
[37, 80, 68, 70] | |
] | |
}; | |
function fee() { | |
return [...Object.keys(Qr), ...Object.keys(ei), ...Object.keys(ti), ...Object.keys(ni)] | |
} | |
function hee({ | |
mimeTypesToSignature: t, | |
substackType: e, | |
actionButtonAttr: n | |
}) { | |
return [{ | |
tag: "div.file-embed-wrapper", | |
getAttrs: s => { | |
const a = {}; | |
try { | |
const [o, r, i] = s.children[0].children, [c, l] = o.children, [u, d] = l.children; | |
a.title = u.textContent; | |
const [m, f] = d.textContent.split("∙"); | |
a.filesize = Rf(m); | |
const h = f.split("File")[0].trim().toLowerCase(); | |
if (!!t[h] || e === h) a.filetype = h; | |
else if (e === "file") a.filetype = h; | |
else return !1; | |
return c.classList.contains("file-embed-thumbnail-default") || (a.thumbnail = c.getAttribute("src")), a.description = r.innerText, a[n] = i.getAttribute("href"), a | |
} catch (o) { | |
return !1 | |
} | |
} | |
}] | |
} | |
function So(e) { | |
return N(this, arguments, function*({ | |
file: t | |
}) { | |
const n = yield vee({ | |
file: t | |
}); | |
return gee({ | |
file: t, | |
bytes: n | |
}) ? "comic" : bee({ | |
file: t, | |
bytes: n | |
}) ? "ebook" : ha({ | |
bytes: n, | |
file: t, | |
mimeTypeToSignature: ti | |
}) ? "xlsx" : ha({ | |
bytes: n, | |
file: t, | |
mimeTypeToSignature: ni | |
}) ? "pdf" : null | |
}) | |
} | |
function gee({ | |
file: t, | |
bytes: e | |
}) { | |
const n = t.name.split(".").pop(); | |
return n && ["cbr", "cbz"].indexOf(n.toLowerCase()) >= 0 && (t.assignedType = `application/x-${n}`), ha({ | |
bytes: e, | |
file: t, | |
mimeTypeToSignature: Qr | |
}) | |
} | |
function bee({ | |
file: t, | |
bytes: e | |
}) { | |
const n = t.name.split(".").pop(); | |
return n && ["kpf", "kfx"].indexOf(n.toLowerCase()) >= 0 && (t.assignedType = `application/vnd.amazon.${n}`), ha({ | |
bytes: e, | |
file: t, | |
mimeTypeToSignature: ei | |
}) | |
} | |
function ha({ | |
bytes: t, | |
mimeTypeToSignature: e, | |
file: n | |
}) { | |
const s = n.assignedType || n.type, | |
a = e[s]; | |
return a ? a.some(o => o.every((r, i) => r === t[i])) : !1 | |
} | |
function vee(e) { | |
return N(this, arguments, function*({ | |
file: t | |
}) { | |
return new Uint8Array(yield t.arrayBuffer()) | |
}) | |
} | |
function xee({ | |
filetype: t | |
}) { | |
var e, n, s, a; | |
return t ? ["application/vnd.amazon.kfx", "application/vnd.amazon.kpf", "application/vnd.amazon.ebook"].includes(t) ? "Kindle" : (a = (s = (n = Pd.extension(t) || ((e = t.split("/").pop()) == null ? void 0 : e.split("-").pop())) == null ? void 0 : n.toUpperCase) == null ? void 0 : s.call(n)) != null ? a : "" : "" | |
} | |
function To({ | |
attrs: t | |
}) { | |
var e; | |
return `${mr((e=Number(t.filesize))!=null?e:void 0)} ∙ ${xee({filetype:t.filetype})} file` | |
} | |
const yee = t => new Promise((e, n) => { | |
if (!window.FileReader) { | |
n(new TypeError("File reader API not found")); | |
return | |
} | |
const s = new FileReader; | |
s.onerror = n, s.onload = () => { | |
e(s.result) | |
}, s.readAsDataURL(t) | |
}); | |
class wee { | |
constructor({ | |
fileEmbed: e, | |
node: n, | |
view: s, | |
getPos: a | |
}) { | |
this.fileEmbed = e, this.dom = e.buildNodeView(n, s, a) | |
} | |
update(e) { | |
return e.type.name === this.fileEmbed.substackType | |
} | |
stopEvent(e) { | |
return e.target.className === "file-embed-menu-button" | |
} | |
} | |
class ws { | |
constructor({ | |
substackType: e, | |
actionButtonText: n, | |
actionButtonAttr: s, | |
mimeTypesToSignature: a | |
}) { | |
this.substackType = "file", this.actionButtonText = "Download", this.actionButtonAttr = "raw_href", e && (this.substackType = e), n && (this.actionButtonText = n), s && (this.actionButtonAttr = s), this.mimeTypesToSignature = a | |
} | |
getNodeView({ | |
editor: e, | |
node: n, | |
getPos: s | |
}) { | |
return new wee({ | |
fileEmbed: this, | |
node: n, | |
view: e.view, | |
getPos: s | |
}) | |
} | |
get nodeSpec() { | |
return { | |
definition: this, | |
attrs: { | |
filename: { | |
default: null | |
}, | |
filetype: { | |
default: null | |
}, | |
filesize: { | |
default: null | |
}, | |
href: { | |
default: null | |
}, | |
title: { | |
default: null | |
}, | |
description: { | |
default: null | |
}, | |
thumbnail: { | |
default: null | |
}, | |
fileKey: { | |
default: null | |
}, | |
dirty: { | |
default: !0 | |
}, | |
raw_href: { | |
default: null | |
}, | |
error: { | |
default: null | |
}, | |
empty: { | |
default: !1 | |
} | |
}, | |
substackType: this.substackType, | |
inline: !1, | |
atom: !0, | |
group: "block", | |
selectable: !1, | |
draggable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: hee({ | |
mimeTypesToSignature: this.mimeTypesToSignature, | |
substackType: this.substackType, | |
actionButtonAttr: this.actionButtonAttr | |
}), | |
toDOM: e => { | |
const n = ["div", { | |
class: "file-embed-wrapper", | |
"data-component-name": "FileToDOM" | |
}, | |
["div", { | |
class: "file-embed-container-reader" | |
}, | |
["div", { | |
class: "file-embed-container-top" | |
}, | |
["image", { | |
class: `file-embed-thumbnail${e.attrs.thumbnail?"":"-default"}`, | |
src: e.attrs.thumbnail || q("/img/attachment_icon.svg") | |
}], | |
["div", { | |
class: "file-embed-details" | |
}, | |
["div", { | |
class: "file-embed-details-h1" | |
}, e.attrs.title || e.attrs.filename || ""], | |
["div", { | |
class: "file-embed-details-h2" | |
}, To({ | |
attrs: e.attrs | |
})] | |
], | |
["a", { | |
class: "file-embed-button wide", | |
href: e.attrs[this.actionButtonAttr] | |
}, | |
["span", { | |
class: "file-embed-button-text" | |
}, this.actionButtonText] | |
] | |
] | |
] | |
]; | |
return e.attrs.description && n[2].push(["div", { | |
class: "file-embed-description" | |
}, e.attrs.description]), n[2].push(["a", { | |
class: "file-embed-button narrow", | |
href: e.attrs[this.actionButtonAttr] | |
}, | |
["span", { | |
class: "file-embed-button-text" | |
}, this.actionButtonText] | |
]), n | |
}, | |
toDOMStatic: e => { | |
var i; | |
let n, s, o = ((i = e.attrs) == null ? void 0 : i.title) || ""; | |
return e.attrs.thumbnail && e.attrs.thumbnail.indexOf("attachment_icon.svg") === -1 ? (s = !1, n = q(e.attrs.thumbnail, 100, { | |
aspect: "1.5", | |
crop: "fill", | |
gravity: "auto", | |
height: 150 | |
})) : (s = !0, n = q("/img/attachment_icon.svg", 32, { | |
aspect: "1", | |
crop: "fill", | |
gravity: "auto", | |
height: 32 | |
})), o && o.length > 40 && (o = `${o.substr(0,40)}...`), ["table", { | |
class: "static-file-embed-table", | |
cellspacing: "16", | |
"data-component-name": "FileToDOMStatic" | |
}, | |
["tr", {}, | |
["td", { | |
class: `static-file-embed-thumbnail-container ${s?"default":""}` | |
}, | |
["img", { | |
class: `static-file-embed-thumbnail ${s?"default":""}`, | |
src: n | |
}] | |
], | |
["td", { | |
class: `static-file-embed-details ${s?"default":""}` | |
}, | |
["div", { | |
class: "static-file-embed-details-h1" | |
}, o], | |
["div", { | |
class: "static-file-embed-details-h2" | |
}, To({ | |
attrs: e.attrs | |
})] | |
] | |
], e.attrs.description ? ["tr", {}, | |
["td", { | |
class: "static-file-embed-description", | |
colspan: "2" | |
}, | |
["p", { | |
style: "margin: 0;" | |
}, e.attrs.description || ""] | |
] | |
] : null, ["tr", {}, | |
["td", { | |
class: "static-file-embed-button-container", | |
colspan: "2" | |
}, | |
["table", { | |
class: "static-file-embed-button", | |
cellspacing: "0" | |
}, | |
["tr", {}, | |
["td", { | |
align: "center" | |
}, | |
["a", { | |
href: `${e.attrs[this.actionButtonAttr]}?token=${ce.FILE_DOWNLOAD_TOKEN}`, | |
class: "static-file-embed-anchor" | |
}, this.actionButtonText] | |
] | |
] | |
] | |
] | |
] | |
].filter(c => c) | |
} | |
} | |
} | |
buildNodeView(e, n, s) { | |
var h, g, b, x; | |
const a = document.createElement("div"); | |
a.className = "file-embed-wrapper-editor"; | |
const o = document.createElement("div"); | |
o.className = "file-embed-container", o.dataset.attrs = JSON.stringify(e.attrs), o.appendChild(this.generateContainerTop(e)), o.appendChild(this.generateDescription(e)), o.appendChild(this.generateButton("narrow")); | |
const r = document.createElement("div"); | |
r.className = "file-embed-aligner"; | |
const { | |
button: i, | |
menu: c | |
} = this.generateDropdown(e, n, s); | |
r.appendChild(o), r.appendChild(c), a.appendChild(r); | |
const l = document.createElement("img"); | |
l.src = q("/img/file_drag_default.png"); | |
const u = document.createElement("img"); | |
u.src = q((h = e == null ? void 0 : e.attrs) == null ? void 0 : h.thumbnail, 100, { | |
aspect: "1.5", | |
crop: "fill", | |
gravity: "auto", | |
height: 150 | |
}), a.addEventListener("dragstart", v => { | |
var w; | |
(w = e == null ? void 0 : e.attrs) != null && w.thumbnail ? v.dataTransfer.setDragImage(u, 0, 0) : v.dataTransfer.setDragImage(l, 0, 0) | |
}), ((b = (g = n.state) == null ? void 0 : g.doc) == null ? void 0 : b.nodeAt(n.state.doc.nodeSize - 3)) === e && setTimeout(() => { | |
n.dispatch(n.state.tr.insertText("\r", n.state.doc.nodeSize - 2)) | |
}, 0); | |
const m = document.createElement("div"); | |
m.appendChild(this.generateSpinner()); | |
const f = this.generateErrorCover(n, e); | |
return (x = e.attrs) != null && x.error && (i.className = "file-embed-menu-button hidden", o.className = "file-embed-container covered error", o.appendChild(f)), e.startReplacing = () => { | |
m.className = "file-embed-container cover", o.className = "file-embed-container covered", i.className = "file-embed-menu-button disabled", o.contains(f) && o.removeChild(f), o.appendChild(m) | |
}, e.stopReplacing = v => { | |
v ? (i.className = "file-embed-menu-button hidden", o.className = "file-embed-container covered error", o.appendChild(f)) : (o.className = "file-embed-container", i.className = "file-embed-menu-button"), o.removeChild(m) | |
}, a | |
} | |
getFileAttrs(e) { | |
return { | |
href: e.getAttribute("href"), | |
filename: e.getAttribute("filename"), | |
filetype: e.getAttribute("filetype"), | |
filesize: e.getAttribute("filesize"), | |
title: e.getAttribute("title"), | |
dirty: e.getAttribute("dirty"), | |
description: e.getAttribute("description"), | |
error: e.getAttribute("error") | |
} | |
} | |
generateThumbnail(e) { | |
const n = document.createElement("img"); | |
return n.className = `file-embed-thumbnail${e.attrs.thumbnail?"":"-default"}`, n.setAttribute("src", e.attrs.thumbnail || q("/img/attachment_icon.svg")), e.updateThumbnail = (r, ...i) => N(this, [r, ...i], function*(s, a = 400, o = { | |
aspect: "1.5", | |
crop: "fill", | |
gravity: "auto", | |
width: 400, | |
height: 600 | |
}) { | |
if (e.attrs.dirty = !0, !s) { | |
e.attrs.thumbnail = null, n.onload = () => { | |
n.className = "file-embed-thumbnail-default" | |
}, n.src = q("/img/attachment_icon.svg"); | |
return | |
} | |
const c = yield yee(s), l = yield he.post("/api/v1/image").send({ | |
image: c | |
}), u = q(l.body.url, a, o); | |
return e.attrs.thumbnail = u, n.onload = () => { | |
n.className = "file-embed-thumbnail" | |
}, n.src = u, u | |
}), n | |
} | |
generateDetails(e) { | |
const n = document.createElement("div"); | |
n.className = "file-embed-details"; | |
const s = document.createElement("div"); | |
s.className = "file-embed-details-h1", s.innerText = e.attrs.title || e.attrs.filename; | |
const a = document.createElement("div"); | |
return a.className = "file-embed-details-h2", a.innerText = To({ | |
attrs: e.attrs | |
}), n.appendChild(s), n.appendChild(a), e.updateTitle = o => { | |
e.attrs.title = o, e.attrs.dirty = !0, s.innerText = o | |
}, n | |
} | |
generateButton(e) { | |
const n = document.createElement("button"); | |
n.className = `file-embed-button primary mock ${e}`; | |
const s = document.createElement("span"); | |
return s.className = "file-embed-button-text", s.innerText = this.actionButtonText, n.appendChild(s), n | |
} | |
generateDescription(e) { | |
const n = document.createElement("div"); | |
return n.className = "file-embed-description ", n.innerText = e.attrs.description, e.updateDescription = s => { | |
e.attrs.dirty = !0, e.attrs.description = s ? s.trim() : null, n.innerText = s ? s.trim() : null | |
}, n | |
} | |
generateErrorCover(e, n) { | |
var l, u; | |
const s = document.createElement("div"); | |
s.className = "file-embed-container cover error"; | |
const a = document.createElement("div"); | |
a.className = "file-embed-error-inner"; | |
const o = document.createElement("img"); | |
o.className = "file-embed-error-icon", o.setAttribute("src", Xl("/img/alert-circle.svg")); | |
const r = document.createElement("div"); | |
r.className = "file-embed-error-message", r.innerText = (l = n.attrs.error) == null ? void 0 : l.message; | |
const i = document.createElement("div"); | |
i.className = "file-embed-error-button", i.onclick = this.makeReplaceButtonClickHandler(e, n); | |
const c = document.createElement("span"); | |
return c.className = "file-embed-error-button-text", c.innerText = ((u = n.attrs.error) == null ? void 0 : u.button) || "Try again", i.appendChild(c), a.appendChild(o), a.appendChild(r), a.appendChild(i), s.appendChild(a), s | |
} | |
generateSpinner() { | |
const e = document.createElement("div"); | |
e.className = "embed-loader-container"; | |
const n = document.createElement("div"); | |
n.className = "embed-loader"; | |
const s = document.createElement("div"); | |
return s.innerText = "Replacing...", s.className = "embed-loader-text", e.appendChild(n), e.appendChild(s), e | |
} | |
makeReplaceButtonClickHandler(e, n) { | |
return s => { | |
const a = document.createElement("input"); | |
a.className = "sidebar-item-hidden-file-input", a.type = "file", a.oninput = o => { | |
var i; | |
const r = (i = o.target) == null ? void 0 : i.files[0]; | |
e.dispatchEvent({ | |
type: "file_replace", | |
node: n, | |
file: r | |
}) | |
}, document.body.appendChild(a), a.click(), document.body.removeChild(a) | |
} | |
} | |
generateDropdown(e, n, s) { | |
const a = document.createElement("div"); | |
a.className = "post-editor-file-embed-dropdown-container dropdown-container"; | |
const o = document.createElement("div"); | |
o.className = "dropdown-content"; | |
const r = document.createElement("div"); | |
r.className = "dropdown-list", [{ | |
label: "Edit", | |
icon: "edit", | |
onclick: l => { | |
n.dispatchEvent(new CustomEvent("file_edit", { | |
detail: { | |
node: e | |
} | |
})) | |
} | |
}, { | |
label: "Replace", | |
icon: "swap", | |
onclick: this.makeReplaceButtonClickHandler(n, e) | |
}, { | |
label: "Download", | |
icon: "download", | |
onclick: l => { | |
const u = document.createElement("a"); | |
u.href = e.attrs.raw_href, u.download = e.attrs.filename, document.body.appendChild(u); | |
const d = window.onbeforeunload; | |
window.onbeforeunload = null, u.click(), window.onbeforeunload = d, document.body.removeChild(u) | |
} | |
}, { | |
label: "Delete", | |
icon: "trash", | |
onclick: l => { | |
if (typeof s != "function") return; | |
const u = s(); | |
n.dispatch(n.state.tr.delete(u, u + 1)) | |
} | |
}].map(l => { | |
const u = document.createElement("div"); | |
u.className = "dropdown-list-item", u.onclick = l.onclick; | |
const d = document.createElement("div"); | |
d.className = `dropdown-list-item-icon icon-${l.icon}`; | |
const m = document.createElement("span"); | |
return m.className = "dropdown-list-item-text", m.innerText = l.label, u.appendChild(d), u.appendChild(m), u | |
}).forEach(l => { | |
r.appendChild(l) | |
}), o.appendChild(r); | |
const i = document.createElement("div"); | |
i.className = "file-embed-menu-button"; | |
const c = document.createElement("div"); | |
return c.className = "dropdown-icon", c.appendChild(document.createElement("span")), c.appendChild(document.createElement("span")), c.appendChild(document.createElement("span")), c.appendChild(document.createElement("span")), i.appendChild(c), a.appendChild(i), a.appendChild(o), i.onclick = l => { | |
if (o.className === "dropdown-content open") return; | |
o.className = "dropdown-content open", c.className = "dropdown-icon open", i.className = "file-embed-menu-button open"; | |
const u = () => { | |
o.className = "dropdown-content", c.className = "dropdown-icon", i.className = "file-embed-menu-button", document.removeEventListener("click", u) | |
}; | |
setTimeout(() => { | |
document.addEventListener("click", u) | |
}, 0) | |
}, { | |
button: i, | |
menu: a | |
} | |
} | |
generateContainerTop(e) { | |
const n = document.createElement("div"); | |
return n.className = "file-embed-container-top", n.appendChild(this.generateThumbnail(e)), n.appendChild(this.generateDetails(e)), n.appendChild(this.generateButton("wide")), n | |
} | |
} | |
const kee = new ws({ | |
actionButtonText: null, | |
substackType: null, | |
actionButtonAttr: null, | |
mimeTypesToSignature: {} | |
}), | |
_ee = F({ | |
name: "file", | |
nodeSpec: kee.nodeSpec | |
}), | |
ga = new ws({ | |
actionButtonAttr: "href", | |
substackType: "comic", | |
mimeTypesToSignature: Qr, | |
actionButtonText: "Read now" | |
}), | |
Cee = F({ | |
name: "comic", | |
nodeSpec: ga.nodeSpec | |
}), | |
Bd = { | |
attrs: { | |
url: { | |
default: "" | |
}, | |
commentId: { | |
default: null | |
}, | |
comment: { | |
default: null | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.comment", | |
getAttrs: t => { | |
var e; | |
if (t instanceof HTMLElement) try { | |
return JSON.parse((e = t.getAttribute("data-attrs")) != null ? e : "") | |
} catch (n) { | |
return !1 | |
} | |
return !1 | |
} | |
}], | |
toDOM: t => { | |
if (typeof window != "undefined") try { | |
const e = document.createElement("div"); | |
return Object.assign(e, { | |
className: "comment", | |
"data-attrs": JSON.stringify(t.attrs) | |
}), Fe(p(Hh, { | |
commentId: t.attrs.commentId | |
}), e), e | |
} catch (e) { | |
return console.error("Error rendering CommentEmbed", e), Oe({ | |
msg: null, | |
node: t, | |
err: e, | |
group: "block" | |
}) | |
} | |
return ml(t) | |
}, | |
toDOMStatic: t => ml(t) | |
}, | |
Eee = F({ | |
name: "comment", | |
nodeSpec: Bd, | |
addCommands() { | |
return { | |
insertComment: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}); | |
function ml(t) { | |
return ["div", { | |
class: "comment", | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "CommentPlaceholder" | |
}] | |
} | |
function Aee(t, { | |
customSchema: e | |
} = {}) { | |
if (e && !e.nodes.comment) return null; | |
const n = lt(t); | |
return n && Zl(n.pathname) ? t : null | |
} | |
function zd(t) { | |
return N(this, null, function*() { | |
const e = (yield Z(() => | |
import ("./sortBy-53166f8e.js").then(r => r.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default, | |
n = lt(t), | |
s = n && Zl(n.pathname); | |
if (!s) return console.warn("pathname did not match"), null; | |
let a; | |
try { | |
const { | |
body: { | |
item: { | |
comment: { | |
id: r, | |
date: i, | |
edited_at: c, | |
body: l, | |
body_json: u, | |
restacks: d, | |
reaction_count: m, | |
attachments: f, | |
name: h, | |
user_id: g, | |
photo_url: b, | |
user_bestseller_tier: x | |
} | |
} | |
} | |
} = yield e.get(`/api/v1/reader/comment/${s.id}`); | |
a = { | |
comment: { | |
id: r, | |
date: i, | |
edited_at: c, | |
body: l, | |
body_json: u, | |
restacks: d, | |
reaction_count: m, | |
attachments: f, | |
name: h, | |
user_id: g, | |
photo_url: b, | |
user_bestseller_tier: x | |
} | |
} | |
} catch (r) { | |
return console.warn(r), null | |
} | |
const o = Pf(s, { | |
urlParams: { | |
utm_source: qe.commentEmbed | |
} | |
}); | |
return S({ | |
url: o, | |
commentId: s.id | |
}, a) | |
}) | |
} | |
function See(n) { | |
return N(this, arguments, function*(t, { | |
customSchema: e | |
} = {}) { | |
const a = (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema, | |
o = yield zd(t); | |
return o ? a.nodes.comment.create(o) : null | |
}) | |
} | |
function Tee(t) { | |
return N(this, null, function*() { | |
const e = (yield Z(() => | |
import ("./sortBy-53166f8e.js").then(s => s.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default; | |
let n; | |
try { | |
n = (yield e.get("/api/v1/reader/feed/last-note")).body; | |
const a = Bf(n); | |
return zd(a) | |
} catch (s) { | |
return null | |
} | |
}) | |
} | |
function Dee(n) { | |
return N(this, arguments, function*(t, { | |
customSchema: e | |
} = {}) { | |
const a = (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema, | |
o = yield Tee(); | |
return o ? a.nodes.comment.create(o) : null | |
}) | |
} | |
const qd = { | |
attrs: { | |
url: { | |
default: "" | |
}, | |
subdomain: { | |
default: null | |
}, | |
pub: { | |
default: null | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.community-chat", | |
getAttrs: t => { | |
var e; | |
if (t instanceof HTMLElement) try { | |
return JSON.parse((e = t.getAttribute("data-attrs")) != null ? e : "") | |
} catch (n) { | |
return !1 | |
} | |
return !1 | |
} | |
}], | |
toDOM: t => { | |
if (typeof window != "undefined") try { | |
const e = document.createElement("div"); | |
if (Object.assign(e, { | |
className: "community-chat", | |
"data-attrs": JSON.stringify(t.attrs) | |
}), !t.attrs.pub || !t.attrs.subdomain) { | |
const n = document.createElement("div"); | |
return n.innerText = "Could not load subscriber chat link", e.appendChild(n), e | |
} | |
return Fe(p(Gh, { | |
pub: t.attrs.pub, | |
subdomain: t.attrs.subdomain | |
}), e), e | |
} catch (e) { | |
return console.error("Error rendering CommunityChatEmbed", e), Oe({ | |
msg: null, | |
node: t, | |
err: e, | |
group: "block" | |
}) | |
} | |
return fl(t) | |
}, | |
toDOMStatic: t => fl(t) | |
}, | |
Iee = F({ | |
name: "communityChat", | |
nodeSpec: qd, | |
addCommands() { | |
return { | |
insertCommunityChat: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}), | |
insertCommunityChatEmbed: t => ({ | |
commands: e | |
}) => { | |
const n = { | |
url: fr({ | |
pubKey: t.subdomain, | |
utm_source: qe.chatEmbed | |
}), | |
subdomain: t.subdomain, | |
pub: { | |
id: t.id, | |
name: t.name, | |
author_name: t.author_name, | |
author_photo_url: t.author_photo_url | |
} | |
}; | |
return e.insertContent({ | |
type: this.name, | |
attrs: n | |
}) | |
}, | |
insertVisitThreadButton: t => ({ | |
commands: e | |
}) => e.insertCommunityChatEmbed(t) | |
} | |
} | |
}); | |
function fl(t) { | |
return ["div", { | |
class: "community-chat", | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "CommunityChatRenderPlaceholder" | |
}] | |
} | |
const Nee = /^https?:\/\/open\.substack\.com(?:\.localhost:5000)?\/pub\/([^\/]+)\/chat(\?.*)?$/, | |
Mee = /^https?:\/\/([^\.]+)\.substack\.com(?:\.localhost:5000)?\/chat(\?.*)?$/, | |
Oee = /^https?:\/\/substack\.com(?:\.localhost:5000)?\/chat\/(\d+)/; | |
function Lee(t, { | |
customSchema: e | |
} = {}) { | |
if (e && !e.nodes.communityChat) return null; | |
const n = lt(t); | |
return n && n.pathname.match(/^(\/pub\/[^\/]+)?\/chat($|\/)/) ? t : null | |
} | |
function Ree(t) { | |
return N(this, null, function*() { | |
const e = (yield Z(() => | |
import ("./sortBy-53166f8e.js").then(o => o.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default; | |
let n = Bee(t), | |
s = null; | |
try { | |
if (n) { | |
const { | |
body: o | |
} = yield e.get("/api/v1/publication/chat-embed").query({ | |
subdomain: n, | |
url: t | |
}); | |
s = o | |
} else { | |
const o = zee(t); | |
if (o) { | |
const r = yield e.get(`/api/v1/publication/public/${o}`); | |
s = r.body.pub, n = r.body.pub.subdomain | |
} | |
} | |
} catch (o) {} | |
return s ? { | |
url: fr({ | |
pubKey: s.subdomain, | |
utm_source: qe.chatEmbed | |
}), | |
subdomain: n, | |
pub: s | |
} : null | |
}) | |
} | |
function Pee(n) { | |
return N(this, arguments, function*(t, { | |
customSchema: e | |
} = {}) { | |
const a = (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema, | |
o = yield Ree(t); | |
return o ? a.nodes.communityChat.create(o) : null | |
}) | |
} | |
function Bee(t) { | |
let e = t.match(Nee); | |
return !e && (e = t.match(Mee), !e) ? null : e[1] | |
} | |
function zee(t) { | |
const e = t.match(Oee); | |
return e ? e[1] : null | |
} | |
const qee = ({ | |
node: t | |
}) => { | |
const { | |
attrs: e | |
} = t; | |
return p(wt, null, p(ku, { | |
postId: e.postId | |
})) | |
}, | |
Fd = { | |
attrs: { | |
url: { | |
default: "" | |
}, | |
postId: { | |
default: null | |
}, | |
communityPost: { | |
default: null | |
}, | |
author: { | |
default: null | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.community-post", | |
getAttrs: t => { | |
var e; | |
if (t instanceof HTMLElement) try { | |
return JSON.parse((e = t.getAttribute("data-attrs")) != null ? e : "") | |
} catch (n) { | |
return !1 | |
} | |
return !1 | |
} | |
}], | |
toDOM: t => { | |
if (typeof window != "undefined") try { | |
const e = document.createElement("div"); | |
return Object.assign(e, { | |
className: "community-post", | |
"data-attrs": JSON.stringify(t.attrs) | |
}), Fe(p(ku, { | |
postId: t.attrs.postId | |
}), e), e | |
} catch (e) { | |
return console.error("Error rendering CommunityPostEmbed", e), Oe({ | |
msg: null, | |
node: t, | |
err: e, | |
group: "block" | |
}) | |
} | |
return hl(t) | |
}, | |
toDOMStatic: t => hl(t) | |
}, | |
Fee = F({ | |
name: "communityPost", | |
nodeSpec: Fd, | |
addCommands() { | |
return { | |
insertCommunityPost: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
}, | |
addNodeView() { | |
return kt(qee) | |
} | |
}); | |
function hl(t) { | |
return ["div", { | |
class: "community-post", | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "CommunityPostPlaceholder" | |
}] | |
} | |
const jd = /^\/chat(?:\/\d+)?\/posts?\/([-A-Fa-f0-9]+)$/; | |
function jee(t, { | |
customSchema: e | |
} = {}) { | |
if (e && !e.nodes.communityPost) return null; | |
const n = lt(t); | |
return n && n.pathname.match(jd) ? t : null | |
} | |
function $ee(t) { | |
return N(this, null, function*() { | |
var w, E; | |
const e = (yield Z(() => | |
import ("./sortBy-53166f8e.js").then(_ => _.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default, | |
n = lt(t), | |
s = n && ((w = n.pathname.match(jd)) == null ? void 0 : w[1]); | |
if (!s) return null; | |
let a; | |
try { | |
a = (yield e.get(`/api/v1/community/posts/${s}`)).body | |
} catch (_) { | |
if (_ instanceof Error) { | |
const k = _.response; | |
if (k.status === 402 && ((E = k.body) != null && E.status)) a = k == null ? void 0 : k.body; | |
else return null | |
} else return null | |
} | |
const { | |
user: o, | |
communityPost: { | |
id: r, | |
publication_id: i, | |
body: c, | |
audience: l, | |
type: u, | |
media_assets: d, | |
link_url: m, | |
threadMediaUploads: f | |
}, | |
status: h | |
} = a; | |
let g = { | |
author: o | |
}; | |
const b = f != null && f.length ? f[0].mediaUpload : null; | |
l === "all_subscribers" && (!h || h === "FREE_SUBSCRIPTION_REQUIRED") && (g = P(S({}, g), { | |
communityPost: { | |
id: r, | |
publication_id: i, | |
body: c, | |
audience: l, | |
type: u, | |
media_assets: d, | |
threadMediaUploads: b ? [{ | |
mediaUpload: b | |
}] : [], | |
link_url: m ? yt(m, { | |
utm_source: qe.postEmbed | |
}) : null | |
} | |
})); | |
const x = zf({ | |
postId: s, | |
utm_source: qe.threadEmbed | |
}); | |
return S({ | |
url: x, | |
postId: s | |
}, g) | |
}) | |
} | |
function Uee(n) { | |
return N(this, arguments, function*(t, { | |
customSchema: e | |
} = {}) { | |
const a = (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema, | |
o = yield $ee(t); | |
return o ? a.nodes.communityPost.create(o) : null | |
}) | |
} | |
const $d = { | |
content: "text*", | |
group: "block", | |
draggable: !1, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
atom: !1, | |
parseDOM: [{ | |
tag: "p.cta-caption" | |
}], | |
toDOM: () => ["p", { | |
class: "cta-caption" | |
}, 0] | |
}, | |
Vee = F({ | |
name: "ctaCaption", | |
nodeSpec: $d | |
}), | |
Ud = { | |
attrs: { | |
url: { | |
default: "" | |
}, | |
thumbnail_url: { | |
default: "" | |
}, | |
height: { | |
default: "" | |
}, | |
title: { | |
default: "" | |
}, | |
description: { | |
default: "" | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDom: [{ | |
tag: "div.datawrapper-wrap", | |
getAttrs: re | |
}], | |
toDOM: t => Vd(t), | |
toDOMStatic: t => Xee(t) | |
}, | |
Hee = F({ | |
name: "datawrapper", | |
nodeSpec: Ud, | |
addCommands() { | |
return { | |
insertDatawrapper: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
Gee = /^.*https?:\/\/datawrapper\.dwcdn\.net\/.*$/, | |
Wee = /^.*https?:\/\/(www\.)?datawrapper.de\/_\/.*$/, | |
Jee = t => { | |
const e = Gee.exec(t); | |
if (e) return e[0]; | |
const n = Wee.exec(t); | |
return n && n[0] | |
}, | |
Yee = t => N(void 0, null, function*() { | |
return (yield(yield Z(() => | |
import ("./sortBy-53166f8e.js").then(a => a.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default.get("/api/v1/datawrapper-embed").query({ | |
url: t.trim() | |
})).body | |
}), | |
Kee = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
return (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.datawrapper.create(yield Yee(t)) | |
}), | |
Xee = (t, {} = {}) => { | |
const e = document.createElement("div"); | |
e.className = "datawrapper-wrap static", e.setAttribute("data-component-name", "DatawrapperToDOMStatic"), t.attrs.thumbnail_url; | |
const n = document.createElement("a"); | |
if (n.href = t.attrs.url.replace(/embed\//, ""), n.setAttribute("target", "_blank"), t.attrs.title) { | |
const o = document.createElement("div"); | |
o.className = "datawrapper-title", o.innerHTML = t.attrs.title, e.appendChild(o) | |
} | |
if (t.attrs.description) { | |
const o = document.createElement("div"); | |
o.className = "datawrapper-description", o.innerHTML = t.attrs.description, e.appendChild(o) | |
} | |
const s = document.createElement("div"), | |
a = document.createElement("img"); | |
return a.className = "datawrapper-wrap thumbnail", a.src = q(t.attrs.thumbnail_url, 640), a.style.backgroundImage = `url(${t.attrs.thumbnail_url})`, t.attrs.belowTheFold && a.setAttribute("loading", "lazy"), n.append(a), s.append(n), e.appendChild(s), e | |
}, | |
Vd = t => { | |
const e = document.createElement("div"); | |
e.id = "datawrapper-iframe", e.className = "datawrapper-wrap outer", e.dataset.attrs = JSON.stringify(t.attrs), e.setAttribute("data-component-name", "DatawrapperToDOM"); | |
const n = document.createElement("iframe"); | |
n.id = "iframe-datawrapper", n.className = "datawrapper-iframe", n.src = t.attrs.url, n.width = "730", n.height = t.attrs.height || "455", n.frameBorder = "0", n.scrolling = "no", t.attrs.belowTheFold && n.setAttribute("loading", "lazy"), e.appendChild(n); | |
const s = document.createElement("script"); | |
return s.type = "text/javascript", s.text = Wh, e.appendChild(s), e | |
}; | |
class Zee { | |
constructor(e) { | |
const n = Vd(e), | |
s = n.querySelector(".datawrapper-iframe"), | |
a = document.createElement("div"); | |
a.className = "datawrapper-screen", a.addEventListener("dblclick", () => { | |
a.classList.add("sunken"), s.focus() | |
}), s.addEventListener("blur", () => { | |
a.classList.remove("sunken") | |
}), n.appendChild(a), this.dom = n | |
} | |
} | |
const si = new ws({ | |
actionButtonAttr: null, | |
substackType: "ebook", | |
mimeTypesToSignature: ei, | |
actionButtonText: null | |
}), | |
Qee = F({ | |
name: "ebook", | |
nodeSpec: si.nodeSpec | |
}), | |
ete = ({ | |
label: t, | |
mediaUploadId: e, | |
duration: n | |
}) => (s, a) => (a && a(ie(s, s.schema.nodes.audio.create({ | |
label: t, | |
mediaUploadId: e, | |
duration: n, | |
isEditorNode: !0 | |
}))), !0), | |
tte = Pe.create({ | |
name: "audioInsert", | |
addCommands() { | |
return { | |
insertAudio: ({ | |
label: t, | |
mediaUploadId: e, | |
duration: n | |
}) => ({ | |
state: s, | |
dispatch: a | |
}) => ete({ | |
label: t, | |
mediaUploadId: e, | |
duration: n | |
})(s, a) | |
} | |
} | |
}), | |
nte = t => (e, n) => { | |
const { | |
iString: s | |
} = I18N.i({ | |
pub: t | |
}); | |
if (!Le(e, e.schema.nodes.button)) return !1; | |
const a = { | |
url: `${ce.CHECKOUT_URL}&donate=true`, | |
text: s("Donate Subscriptions") | |
}; | |
return n && n(ie(e, e.schema.nodes.button.create(a))), !0 | |
}, | |
ste = t => (e, n) => { | |
const { | |
iString: s | |
} = I18N.i({ | |
pub: t | |
}); | |
if (!Le(e, e.schema.nodes.button)) return !1; | |
const a = { | |
url: `${ce.LEADERBOARD_URL}&utm_source=${qe.post}`, | |
text: s("Refer a friend") | |
}; | |
return n && n(ie(e, e.schema.nodes.button.create(a))), !0 | |
}, | |
ate = ({ | |
writerReferralCode: t, | |
publication: e, | |
postId: n | |
}) => (s, a) => { | |
const { | |
iString: o, | |
iTemplate: r | |
} = I18N.i({ | |
pub: e | |
}); | |
if (!Le(s, s.schema.nodes.button)) return !1; | |
const i = r `Start writing today. Use the button below to create your Substack and connect your publication with ${e.name}`, | |
c = { | |
url: `${Yl(t||"")}?utm_source=${qe.substack}&utm_context=${Kl.post}&utm_content=${n}&utm_campaign=${Ut.writerReferralButton}`, | |
text: o("Start a Substack") | |
}, | |
l = s.schema.nodes.captionedWriterReferralButton.create(c, s.schema.nodes.ctaCaption.create(null, [s.schema.text(i)])); | |
return a && a(ie(s, l)), !0 | |
}, | |
ote = t => (e, n) => { | |
const { | |
iString: s | |
} = I18N.i({ | |
pub: t | |
}); | |
if (!Le(e, e.schema.nodes.button)) return !1; | |
const a = { | |
url: ce.HALF_MAGIC_COMMENTS_URL, | |
text: s("Leave a comment") | |
}; | |
return n && n(ie(e, e.schema.nodes.button.create(a))), !0 | |
}, | |
rte = (t, e, n) => (s, a) => { | |
if (se(ae.READER_SURVEY_LINKED_IN_POST, { | |
editorVersion: "1", | |
surveyId: e.id | |
}), !Le(s, s.schema.nodes.button)) return !1; | |
const o = { | |
url: `${Wl(t,e.id)}`, | |
text: n | |
}; | |
return a && a(ie(s, s.schema.nodes.button.create(o))), !0 | |
}, | |
ite = t => (e, n) => { | |
const { | |
iString: s | |
} = I18N.i({ | |
pub: t | |
}); | |
if (!Le(e, e.schema.nodes.button)) return !1; | |
const a = { | |
url: ce.SHARE_URL, | |
text: s("Share") | |
}; | |
return n && n(ie(e, e.schema.nodes.button.create(a))), !0 | |
}, | |
cte = t => (e, n) => { | |
const { | |
iTemplate: s | |
} = I18N.i({ | |
pub: t | |
}); | |
if (!Le(e, e.schema.nodes.button)) return !1; | |
const a = { | |
url: ce.SHARE_PUB_URL, | |
text: s `Share ${t.name}` | |
}; | |
return n && n(ie(e, e.schema.nodes.button.create(a))), !0 | |
}, | |
lte = ({ | |
couponPub: t, | |
scrollParent: e, | |
parentClass: n, | |
get_coupons: s, | |
insert_coupon: a, | |
SelectField: o, | |
openPrompt: r, | |
closePrompt: i, | |
getNetworkErrorMessage: c | |
}) => (l, u, d) => { | |
const { | |
iString: m | |
} = I18N.i({ | |
pub: t | |
}); | |
if (!Le(l, l.schema.nodes.button)) return !1; | |
const f = { | |
parentClass: n, | |
root: e ? document.querySelector(`.${e}`) : d.dom.parentNode, | |
scrollParent: e, | |
offsetTop: 10 | |
}, | |
h = Object.assign({ | |
title: m("Loading..."), | |
no_buttons: !0, | |
language: t.language | |
}, f); | |
return r(h), s().then(g => { | |
i(h); | |
const x = g.map(E => { | |
var _; | |
return { | |
label: (_ = E.name) != null ? _ : "", | |
value: E | |
} | |
}).concat([{ | |
label: m("Create new offer"), | |
value: { | |
create_new: !0 | |
} | |
}]), | |
v = { | |
coupon: new o({ | |
label: m("Select offer..."), | |
required: !0, | |
options: x, | |
onChange: E => { | |
if (E && "create_new" in E && E.create_new) { | |
i(w); | |
const _ = window.open(`${rt(t)}/publish/offers/new?popup=true`, "_blank"); | |
_ && _.addEventListener && _.addEventListener("message", ({ | |
data: k | |
}) => { | |
k && k.coupon && a({ | |
coupon: k.coupon, | |
state: l, | |
dispatch: u, | |
schema: l.schema | |
}) | |
}, !1) | |
} | |
} | |
}) | |
}, | |
w = Object.assign({ | |
title: m("Special Offer"), | |
fields: v, | |
language: t == null ? void 0 : t.language, | |
onSubmit: ({ | |
coupon: E | |
}) => { | |
a({ | |
coupon: E, | |
state: l, | |
dispatch: d.dispatch, | |
schema: l.schema | |
}) | |
}, | |
onClose: () => { | |
d.focus() | |
} | |
}, f); | |
r(w) | |
}).catch(g => { | |
i(h), alert(c(g)) | |
}), !1 | |
}, | |
ute = ({ | |
scrollParent: t, | |
parentClass: e, | |
TextField: n, | |
openPrompt: s, | |
publication: a | |
}) => (o, r, i) => { | |
const { | |
iString: c | |
} = I18N.i({ | |
pub: a | |
}); | |
if (!Le(o, o.schema.nodes.button)) return !1; | |
const l = { | |
parentClass: e, | |
title: c("Create a button"), | |
root: t ? document.querySelector(`.${t}`) : i.dom.parentNode, | |
scrollParent: t, | |
offsetTop: 10, | |
language: a == null ? void 0 : a.language, | |
fields: { | |
text: new n({ | |
label: c("Enter text..."), | |
required: !0, | |
clean: u => (u || "").trim(), | |
validate: u => { | |
if (u.length > 40) return c("Too long") | |
} | |
}), | |
href: new n({ | |
label: c("Enter URL..."), | |
required: !0, | |
clean: u => (u || "").trim(), | |
validate: u => { | |
if (!/^%%.*%%$/.test(u)) { | |
try { | |
const d = new URL(u); | |
if (["http:", "https:", "mailto:"].includes(d.protocol)) return | |
} catch (d) { | |
console.error("Failed to parse URL:", d) | |
} | |
return c("Invalid URL") | |
} | |
} | |
}) | |
} | |
}; | |
return l.onSubmit = u => { | |
const d = { | |
url: u.href, | |
text: u.text | |
}; | |
r && i.dispatch(ie(o, o.schema.nodes.button.create(d))) | |
}, l.onClose = () => { | |
i.focus() | |
}, s(l), !0 | |
}, | |
pte = ({ | |
publication: t | |
}) => (e, n) => { | |
const { | |
iTemplate: s | |
} = I18N.i({ | |
pub: t | |
}); | |
if (!Le(e, e.schema.nodes.button)) return !1; | |
const a = t.default_group_coupon, | |
o = { | |
url: `${ce.CHECKOUT_URL}group=true${a?`&coupon=${a}`:""}`, | |
text: Cn(t, () => a && t.default_group_coupon_percent_off ? s `Get ${t.default_group_coupon_percent_off.split(".")[0]}% off a group subscription` : s `Get a group subscription`, r => a && t.default_group_coupon_percent_off ? `Get ${t.default_group_coupon_percent_off.split(".")[0]}% off a group ${r.subscription}` : `Get a group ${r.subscription}`) | |
}; | |
return n && n(ie(e, e.schema.nodes.button.create(o))), !0 | |
}, | |
dte = t => (e, n) => { | |
const { | |
iTemplate: s | |
} = I18N.i({ | |
pub: t | |
}); | |
if (!Le(e, e.schema.nodes.button)) return !1; | |
const a = { | |
url: `${ce.CHECKOUT_URL}&gift=true`, | |
text: Cn(t, () => s `Give a gift subscription`, o => `Give a gift ${o.subscription}`) | |
}; | |
return n && n(ie(e, e.schema.nodes.button.create(a))), !0 | |
}, | |
mte = t => (e, n) => { | |
if (!Le(e, e.schema.nodes.button)) return !1; | |
const s = { | |
url: ce.CHECKOUT_URL, | |
text: _n(t, { | |
now: !0 | |
}), | |
language: t.language | |
}; | |
return n && n(ie(e, e.schema.nodes.button.create(s))), !0 | |
}, | |
fte = t => (e, n) => { | |
const { | |
iTemplate: s | |
} = I18N.i({ | |
pub: t | |
}); | |
if (!Le(e, e.schema.nodes.button)) return !1; | |
const a = t.payments_state !== "enabled" ? s `Thanks for reading ${t.name}! Subscribe for free to receive new posts and support my work.` : s `${t.name} is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.`, | |
o = { | |
url: ce.CHECKOUT_URL, | |
text: _n(t), | |
language: t.language | |
}, | |
r = e.schema.nodes.subscribeWidget.create(o, [e.schema.nodes.ctaCaption.create(null, [e.schema.text(a)])]); | |
return n && n(ie(e, r)), !0 | |
}, | |
hte = t => (e, n) => { | |
const { | |
iString: s, | |
iTemplate: a | |
} = I18N.i({ | |
pub: t | |
}); | |
if (!Le(e, e.schema.nodes.button)) return !1; | |
const o = a `Thank you for reading ${t.name}. This post is public so feel free to share it.`, | |
r = { | |
url: ce.SHARE_URL, | |
text: s("Share") | |
}, | |
i = e.schema.nodes.captionedShareButton.create(r, e.schema.nodes.ctaCaption.create(null, [e.schema.text(o)])); | |
return n && n(ie(e, i)), !0 | |
}, | |
ole = t => (e, n) => { | |
const { | |
tr: s | |
} = e, { | |
iTemplate: a | |
} = I18N.i({ | |
pub: t | |
}); | |
if (!Le(e, e.schema.nodes.button)) return !1; | |
const o = t.payments_state !== "enabled" ? a `Thanks for reading ${t.name}! Subscribe for free to receive new posts and support my work.` : a `${t.name} is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.`, | |
r = { | |
url: ce.CHECKOUT_URL, | |
text: _n(t), | |
language: t.language | |
}; | |
let i = 0, | |
c = null; | |
return e.doc.descendants((l, u) => { | |
var d; | |
return ((d = l.type) == null ? void 0 : d.name) === "paragraph" && (i++, i === 2 && (c = u + l.nodeSize)), !1 | |
}), i >= 5 && c !== null && s.insert(c, e.schema.nodes.subscribeWidget.create(r, [e.schema.nodes.ctaCaption.create(null, [e.schema.text(o)])])), s.insert(s.doc.content.size, e.schema.nodes.subscribeWidget.create(r, [e.schema.nodes.ctaCaption.create(null, [e.schema.text(o)])])), n && n(s), !0 | |
}; | |
function gte(t) { | |
return (e, n) => Le(e, e.schema.nodes.communityChat) ? (n && n(ie(e, e.schema.nodes.communityChat.create({ | |
url: fr({ | |
pubKey: t.subdomain, | |
utm_source: qe.chatEmbed | |
}), | |
subdomain: t.subdomain, | |
pub: { | |
id: t.id, | |
name: t.name, | |
author_name: t.author_name, | |
author_photo_url: t.author_photo_url | |
} | |
}))), !0) : !1 | |
} | |
const bte = Pe.create({ | |
name: "buttonCustom", | |
addCommands() { | |
return { | |
insertSubscribeButton: t => ({ | |
state: e, | |
dispatch: n | |
}) => mte(t)(e, n), | |
insertSubscribeButtonWithPreamble: t => ({ | |
state: e, | |
dispatch: n | |
}) => fte(t)(e, n), | |
insertCaptionedShareButton: t => ({ | |
state: e, | |
dispatch: n | |
}) => hte(t)(e, n), | |
insertSpecialOfferButton: ({ | |
couponPub: t, | |
scrollParent: e, | |
parentClass: n, | |
get_coupons: s, | |
insert_coupon: a, | |
SelectField: o, | |
openPrompt: r, | |
closePrompt: i, | |
getNetworkErrorMessage: c | |
}) => ({ | |
state: l, | |
dispatch: u, | |
view: d | |
}) => lte({ | |
couponPub: t, | |
scrollParent: e, | |
parentClass: n, | |
get_coupons: s, | |
insert_coupon: a, | |
SelectField: o, | |
openPrompt: r, | |
closePrompt: i, | |
getNetworkErrorMessage: c | |
})(l, u, d), | |
insertGroupSubscriptionButton: ({ | |
publication: t | |
}) => ({ | |
state: e, | |
dispatch: n | |
}) => pte({ | |
publication: t | |
})(e, n), | |
insertDonateButton: t => ({ | |
state: e, | |
dispatch: n | |
}) => nte(t)(e, n), | |
insertReferralButton: t => ({ | |
state: e, | |
dispatch: n | |
}) => ste(t)(e, n), | |
insertCaptionedWriterReferralButton: t => ({ | |
state: e, | |
dispatch: n | |
}) => ate({ | |
writerReferralCode: t.writerReferralCode, | |
publication: t.publication, | |
postId: t.postId | |
})(e, n), | |
insertGiftButton: t => ({ | |
state: e, | |
dispatch: n | |
}) => dte(t)(e, n), | |
insertCommentsButton: t => ({ | |
state: e, | |
dispatch: n | |
}) => ote(t)(e, n), | |
insertSurveyButton: (t, e, n) => ({ | |
state: s, | |
dispatch: a | |
}) => rte(t, e, n)(s, a), | |
insertSharePubButton: t => ({ | |
state: e, | |
dispatch: n | |
}) => cte(t)(e, n), | |
insertSharePostButton: t => ({ | |
state: e, | |
dispatch: n | |
}) => ite(t)(e, n), | |
insertCustomButton: ({ | |
scrollParent: t, | |
parentClass: e, | |
TextField: n, | |
openPrompt: s, | |
publication: a | |
}) => ({ | |
state: o, | |
dispatch: r, | |
view: i | |
}) => ute({ | |
scrollParent: t, | |
parentClass: e, | |
TextField: n, | |
openPrompt: s, | |
publication: a | |
})(o, r, i), | |
insertVisitThreadButton: t => ({ | |
state: e, | |
dispatch: n | |
}) => gte(t)(e, n) | |
} | |
} | |
}), | |
vte = t => (e, n) => { | |
const s = rt(t); | |
return n && n(ie(e, e.schema.nodes.install_substack_app.create({ | |
logo_url: t.logo_url || `${s}/img/substack.png`, | |
author_name: t.author_name, | |
publication_subdomain: t.subdomain, | |
publication_name: t.name, | |
language: t.language | |
}))), !0 | |
}, | |
xte = Pe.create({ | |
name: "embedContentCustom", | |
addCommands() { | |
return { | |
insertInstallSubstackAppEmbed: t => ({ | |
state: e, | |
dispatch: n | |
}) => vte(t)(e, n) | |
} | |
} | |
}), | |
Hd = { | |
attrs: { | |
innerHTML: { | |
default: "" | |
}, | |
stylesheet: { | |
default: "" | |
} | |
}, | |
untrackedAttrs: ["innerHTML", "stylesheet"], | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.github-gist", | |
getAttrs: re | |
}], | |
toDOMStatic: t => gl(t, !0), | |
toDOM: t => gl(t, !1) | |
}, | |
yte = F({ | |
name: "gitgist", | |
nodeSpec: Hd, | |
addCommands() { | |
return { | |
insertGithubGist: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
Gd = /(https?:\/\/gist.github.com\/([^\s]*\/[^\s\.#]*)([\.#][^\s]*)?)/, | |
wte = (t, { | |
customSchema: e | |
} = {}) => { | |
if (e && !e.nodes.gitgist) return null; | |
const n = Gd.exec(t); | |
return n && n[1] | |
}, | |
kte = t => { | |
const e = t.match(Gd); | |
return e && e[2] ? e[2] : null | |
}, | |
_te = t => N(void 0, null, function*() { | |
const e = kte(t); | |
return (yield(yield Z(() => | |
import ("./sortBy-53166f8e.js").then(o => o.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default.get("/api/v1/github/gist").query({ | |
id: e | |
})).body | |
}), | |
Cte = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
return (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.gitgist.create(yield _te(t)) | |
}); | |
function gl(t, e) { | |
const n = document.createElement("div"); | |
n.classList.add("github-gist"), e ? n.setAttribute("data-component-name", "GitgistToDOMStatic") : (n.dataset.attrs = JSON.stringify(t.attrs), n.setAttribute("data-component-name", "GitgistToDOM")), n.innerHTML = bt(t.attrs.innerHTML, { | |
allowedTags: bt.defaults.allowedTags, | |
allowedAttributes: Object.assign({}, bt.defaults.allowedAttributes, { | |
"*": ["href", "style", "id", "data-*", "itemprop", "class"] | |
}) | |
}); | |
const s = document.createElement("link"); | |
if (s.rel = "stylesheet", s.href = t.attrs.stylesheet, n.prepend(s), e) { | |
n.classList.add("static"); | |
const a = n.getElementsByTagName("td"); | |
for (let o = 0; o < a.length; o++) { | |
const r = a[o]; | |
r.dataset.lineNumber ? (r.innerHTML = r.dataset.lineNumber, r.align = "right") : (r.align = "left", r.innerHTML = `<pre>${r.innerHTML}</pre>`), r.classList.add("content"), r.height = "20px" | |
} | |
} | |
return n | |
} | |
const rr = t => t.attrs.fullscreen ? "full" : t.attrs.imageSize || "normal", | |
Wd = { | |
attrs: { | |
src: { | |
default: "" | |
}, | |
srcNoWatermark: { | |
default: null | |
}, | |
fullscreen: { | |
default: null | |
}, | |
imageSize: { | |
default: null | |
}, | |
height: { | |
default: null | |
}, | |
width: { | |
default: null | |
}, | |
resizeWidth: { | |
default: null | |
}, | |
bytes: { | |
default: null | |
}, | |
alt: { | |
default: null | |
}, | |
title: { | |
default: null | |
}, | |
type: { | |
default: null | |
}, | |
href: { | |
default: null | |
}, | |
belowTheFold: { | |
default: !1 | |
}, | |
topImage: { | |
default: !1 | |
}, | |
internalRedirect: { | |
default: null | |
} | |
}, | |
inline: !1, | |
atom: !0, | |
group: "block", | |
draggable: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "p", | |
priority: 100, | |
getAttrs: t => { | |
if (t.textContent.trim()) return !1; | |
const [e] = t.getElementsByTagName("img"); | |
return e ? Dn(e) : !1 | |
} | |
}, { | |
tag: "img[src]", | |
getAttrs: t => t.getAttribute("height") && Number(t.getAttribute("height")) <= 1 || t.getAttribute("width") && Number(t.getAttribute("width")) <= 1 ? !1 : Dn(t) | |
}], | |
toDOM: t => { | |
try { | |
const e = wn(t), | |
n = rr(t), | |
s = Ri.map(v => ({ | |
width: v, | |
imageSrc: wn(t, { | |
maxWidth: v | |
}) | |
})), | |
a = Ri.map(v => ({ | |
width: v, | |
imageSrc: wn(t, { | |
maxWidth: v, | |
imageProps: { | |
format: "webp" | |
} | |
}) | |
})); | |
let o, r; | |
if (t.attrs.height && t.attrs.width) switch (o = t.attrs.height, r = t.attrs.width, t.attrs.resizeWidth ? (o = t.attrs.resizeWidth * o / r, r = t.attrs.resizeWidth) : Js(t.attrs) && r < Ds && (o *= Ds / r, r = Ds), n) { | |
case "full": | |
r = Math.min(r, hr); | |
break | |
} | |
const i = 240, | |
c = 4, | |
l = t.attrs.width / t.attrs.height, | |
u = t.attrs.resizeWidth ? t.attrs.resizeWidth / l : t.attrs.height, | |
d = t.attrs.resizeWidth ? t.attrs.resizeWidth / u : l; | |
let m = !(t.attrs.href && t.attrs.href != t.attrs.src); | |
m = m && t.attrs.height > i && u > i, m = m && l < c && d < c; | |
const f = typeof window == "undefined"; | |
let h; | |
t.attrs.href ? h = Ql(t.attrs.href) ? q(t.attrs.href) : t.attrs.href : h = q(t.attrs.src); | |
const g = document.createElement("div"), | |
b = m ? "image-link is-viewable-img image2" : "image-link image2"; | |
return m && f && (g.className = "image-link-expand", ur(p(Ab, { | |
size: 20 | |
}), g)), ["a", { | |
class: b, | |
target: "_blank", | |
href: h, | |
"data-component-name": "Image2ToDOM" | |
}, | |
["div", { | |
class: `image2-inset${n==="full"?" image2-full-screen":""}` | |
}, | |
["picture", {}, | |
["source", { | |
type: "image/webp", | |
srcset: a.map(v => `${v.imageSrc} ${v.width}w`).join(", "), | |
sizes: "100vw" | |
}], | |
["img", { | |
src: e, | |
width: n === "full" ? void 0 : r, | |
height: n === "full" ? void 0 : o, | |
"data-attrs": JSON.stringify(t.attrs), | |
class: n === "full" ? "sizing-fullscreen" : n === "large" ? "sizing-large" : "sizing-normal", | |
alt: t.attrs.alt || "", | |
title: t.attrs.title || t.attrs.alt, | |
srcset: s.map(v => `${v.imageSrc} ${v.width}w`).join(", "), | |
sizes: "100vw", | |
loading: t.attrs.belowTheFold ? "lazy" : null, | |
fetchpriority: t.attrs.topImage ? "high" : null | |
}] | |
], g | |
] | |
] | |
} catch (e) { | |
return console.error("Error rendering Maximize2", e), Oe({ | |
msg: null, | |
node: t, | |
err: e, | |
group: "block" | |
}) | |
} | |
}, | |
toDOMStatic: t => { | |
const e = rr(t), | |
n = t.attrs.href || t.attrs.internalRedirect || q(t.attrs.src, void 0, { | |
quality: e === "normal" ? "auto:good" : "auto:best" | |
}); | |
if (t.attrs.height && t.attrs.width && e !== "full") { | |
const { | |
width: a, | |
height: o | |
} = t.attrs; | |
let r = a; | |
t.attrs.resizeWidth ? r = t.attrs.resizeWidth : Js(t.attrs) && (r = Math.min(Math.max(a, Ds), Ff)); | |
const i = Math.min(r, Is), | |
c = bl(a, o, i), | |
l = r > Is, | |
u = { | |
"data-attrs": JSON.stringify(t.attrs), | |
alt: t.attrs.alt || "", | |
title: t.attrs.title || t.attrs.alt, | |
width: i, | |
height: c, | |
class: l ? "wide-image" : "", | |
src: q(t.attrs.src, !Js(t.attrs) && l ? r * 2 : r, { | |
lossy: Ws(t.attrs) | |
}) | |
}; | |
return ["table", { | |
class: "image-wrapper", | |
width: "100%", | |
border: "0", | |
cellSpacing: "0", | |
cellPadding: "0", | |
"data-component-name": "Image2ToDOMStatic" | |
}, | |
["tr", {}, | |
["td"], | |
["td", { | |
align: "left", | |
class: "content", | |
width: r | |
}, | |
["a", { | |
class: "image-link", | |
target: "_blank", | |
href: n | |
}, | |
["img", u] | |
] | |
], | |
["td"] | |
] | |
] | |
} else if (e === "full") { | |
const a = q(t.attrs.src, Is * 2, { | |
lossy: Ws(t.attrs), | |
crop: "limit", | |
aspect: e === "full" ? "1" : void 0 | |
}); | |
return ["a", { | |
class: "image-link", | |
target: "_blank", | |
href: n | |
}, | |
["img", { | |
src: a, | |
"data-attrs": JSON.stringify(t.attrs), | |
alt: t.attrs.alt || "", | |
title: t.attrs.title || t.attrs.alt, | |
height: t.attrs.height, | |
width: t.attrs.width | |
}] | |
] | |
} | |
const s = q(t.attrs.src, Is * 2, { | |
lossy: Ws(t.attrs) | |
}); | |
return ["a", { | |
class: "image-link", | |
target: "_blank", | |
href: n | |
}, | |
["img", { | |
src: s, | |
"data-attrs": JSON.stringify(t.attrs), | |
alt: t.attrs.alt || "", | |
title: t.attrs.title || t.attrs.alt, | |
width: t.attrs.resizeWidth || t.attrs.width, | |
height: t.attrs.resizeWidth ? bl(t.attrs.width, t.attrs.height, t.attrs.resizeWidth) : t.attrs.height | |
}] | |
] | |
} | |
}, | |
Ete = F({ | |
name: "image2", | |
nodeSpec: Wd | |
}), | |
Dn = (t, e, { | |
bytes: n, | |
internalRedirect: s | |
} = {}) => { | |
const a = t.getAttribute("data-attrs"); | |
if (a) try { | |
return JSON.parse(a) | |
} catch (l) {} | |
let o; | |
t.getAttribute("imageSize") && (o = t.getAttribute("imageSize")); | |
let r, i; | |
const c = t.getAttribute("style"); | |
if (c) { | |
const l = /max-height:\s*(\d+)px/.exec(c); | |
l && (r = Number(l[1])); | |
const u = /max-width:\s*(\d+)px/.exec(c); | |
u && (i = Number(u[1])) | |
} else t.getAttribute("width") && t.getAttribute("height") && (r = Number(t.getAttribute("height")), i = Number(t.getAttribute("width"))); | |
return t.complete && t.naturalHeight && t.naturalWidth && (r = t.naturalHeight, i = t.naturalWidth), { | |
src: qf(t.getAttribute("data-medium-file") || t.getAttribute("src")), | |
type: e, | |
title: t.getAttribute("title"), | |
alt: t.getAttribute("alt"), | |
height: r, | |
width: i, | |
bytes: n, | |
internalRedirect: s, | |
imageSize: o, | |
href: t.getAttribute("href") | |
} | |
}, | |
wn = (t, { | |
maxWidth: e = null, | |
imageProps: n = {} | |
} = {}) => { | |
const s = rr(t); | |
let a = s === "full" ? Bo * 2 : s === "large" ? zo * 2 : hr * 2; | |
return e && (a = Math.min(e, a)), q(t.attrs.src, a, S({ | |
lossy: Ws(t.attrs) | |
}, n)) | |
}, | |
Ate = (t, { | |
customSchema: e | |
} = {}) => { | |
if (e && !e.nodes.image2) return null; | |
const n = /(https?:\/\/(giphy\.com\/gifs|gph.is\/g|media\d*\.giphy\.com\/media)\/[^\s]+)/.exec(t); | |
return n && n[1] | |
}, | |
Ste = t => N(void 0, null, function*() { | |
const e = (yield Z(() => | |
import ("./sortBy-53166f8e.js").then(o => o.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default, | |
n = "image/gif", | |
s = yield e.get("/api/v1/giphy").query({ | |
url: t | |
}), a = yield new Promise(o => Ks(wn({ | |
attrs: { | |
type: n, | |
src: s.body.url | |
} | |
}), o)); | |
return Dn(a, n, { | |
bytes: s.body.bytes | |
}) | |
}), | |
Tte = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
return (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.image2.create(yield Ste(t)) | |
}); | |
function Ws(t) { | |
return Js(t) && (!t.bytes || t.bytes > 5e6) | |
} | |
function Js(t) { | |
return !!(t.type && t.type === "image/gif" || t.src && t.src.split("?")[0].split("#")[0].endsWith(".gif")) | |
} | |
function bl(t, e, n) { | |
return e * n / t | |
} | |
const Dte = /[@#][\w.]+|\n/g, | |
Jd = { | |
attrs: { | |
instagram_id: { | |
default: "" | |
}, | |
title: { | |
default: "" | |
}, | |
author_name: { | |
default: "" | |
}, | |
thumbnail_url: { | |
default: "" | |
}, | |
timestamp: { | |
default: "" | |
}, | |
belowTheFold: { | |
default: !1 | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.instagram", | |
getAttrs: re | |
}], | |
toDOM: t => { | |
const e = document.createElement("div"); | |
e.className = "instagram", e.setAttribute("data-attrs", JSON.stringify(t.attrs)), e.setAttribute("data-component-name", "InstagramToDOM"); | |
const n = document.createElement("div"); | |
n.className = "instagram-top-bar", e.appendChild(n); | |
const s = document.createElement("a"); | |
s.className = "instagram-author-name", s.href = Yd(t.attrs.author_name), s.target = "_blank", s.textContent = t.attrs.author_name, n.appendChild(s); | |
const a = document.createElement("a"); | |
a.className = "instagram-image", a.href = Ote(t.attrs.instagram_id), a.target = "_blank", e.appendChild(a); | |
const o = document.createElement("img"); | |
o.src = q(t.attrs.thumbnail_url, 640), t.attrs.belowTheFold && o.setAttribute("loading", "lazy"), a.appendChild(o); | |
const r = document.createElement("div"); | |
r.className = "instagram-bottom-bar", e.appendChild(r); | |
const i = document.createElement("div"); | |
if (i.className = "instagram-title", Bte(t.attrs.title, i), r.appendChild(i), t.attrs.timestamp) { | |
const c = document.createElement("div"); | |
c.className = "instagram-timestamp", c.textContent = eu(t.attrs.timestamp).format("MMMM D, YYYY"), r.appendChild(c) | |
} | |
return e | |
} | |
}, | |
Ite = F({ | |
name: "instagram", | |
nodeSpec: Jd, | |
addCommands() { | |
return { | |
insertInstagram: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
Nte = (t, { | |
customSchema: e | |
} = {}) => e && !e.nodes.instagram ? null : Kd(t)[1], | |
Mte = t => Kd(t)[0], | |
Ote = t => `https://instagram.com/p/${t}`, | |
Yd = t => `https://instagram.com/${t}`, | |
Lte = t => `https://instagram.com/explore/tags/${t.substr(1)}/`, | |
Rte = t => N(void 0, null, function*() { | |
return (yield(yield Z(() => | |
import ("./sortBy-53166f8e.js").then(a => a.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default.get(`/api/v1/instagram/post/${Mte(t)}`)).body | |
}), | |
Pte = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
return (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.instagram.create(yield Rte(t)) | |
}); | |
function Bte(t, e) { | |
if (!t) return; | |
let n = 0, | |
s, a; | |
for (; s = Dte.exec(t);) switch (n < s.index && e.appendChild(document.createTextNode(t.substring(n, s.index))), n = s.index + s[0].length, s[0][0]) { | |
case ` | |
`: | |
e.appendChild(document.createElement("br")); | |
break; | |
case "@": | |
a = document.createElement("a"), a.href = Yd(s[0].substr(1)), a.target = "_blank", a.textContent = s[0], e.appendChild(a); | |
break; | |
case "#": | |
a = document.createElement("a"), a.href = Lte(s[0]), a.target = "_blank", a.textContent = s[0], e.appendChild(a); | |
break; | |
default: | |
e.appendChild(document.createTextNode(s[0])) | |
} | |
n < t.length && e.appendChild(document.createTextNode(t.substr(n))) | |
} | |
const Kd = t => { | |
const e = /(https?:\/\/(?:www\.)?(?:instagram\.com|instagr\.am)\/(?:p|reel|reels)\/([^\/\b\s\?\#]+)[^\s]*)/.exec(t); | |
return e ? [e[2], e[1]] : [null, null] | |
}, | |
Xd = /https?:\/\/read\.amazon(?:\.co)?\.[a-z]+\/kp\/(?:embed|card)\?asin=([^&#\s\b'"]+)[^\b\s'"]*/i, | |
zte = new RegExp(`<iframe[^>]+src="${Xd.source}"[^>]*><\\/iframe>`, "i"), | |
qte = [zte, Xd], | |
Do = 200, | |
Zd = { | |
attrs: { | |
kindleId: { | |
default: "" | |
}, | |
imageUrl: { | |
default: "" | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDom: [{ | |
tag: "div.kindle-wrap", | |
getAttrs: re | |
}], | |
toDOM: t => { | |
const e = Vte(t.attrs.kindleId); | |
return ["div", { | |
class: "kindle-wrap", | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "KindleToDOM" | |
}, | |
["iframe", { | |
src: e, | |
frameborder: "0", | |
gesture: "media", | |
allow: "autoplay; fullscreen", | |
allowautoplay: "true", | |
allowfullscreen: "true" | |
}] | |
] | |
}, | |
toDOMStatic: t => ["table", { | |
class: "kindle-wrapper", | |
width: "100%", | |
border: "0", | |
cellSpacing: "0", | |
cellPadding: "0", | |
"data-component-name": "KindleToDOMStatic" | |
}, | |
["tr", {}, | |
["td"], | |
["td", { | |
align: "left", | |
class: "content", | |
width: Do | |
}, | |
["a", { | |
class: "image-link", | |
target: "_blank", | |
href: Hte(t.attrs.kindleId) | |
}, | |
["img", { | |
"data-attrs": JSON.stringify(t.attrs), | |
alt: "", | |
width: `${Do}`, | |
class: "wide-image", | |
src: q(t.attrs.imageUrl, Do * 2) | |
}] | |
] | |
], | |
["td"] | |
] | |
] | |
}, | |
Fte = F({ | |
name: "kindle", | |
nodeSpec: Zd, | |
addCommands() { | |
return { | |
insertKindle: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
jte = t => { | |
for (const e of qte) { | |
const n = e.exec(t); | |
if (n) return n[0] | |
} | |
return null | |
}, | |
$te = t => N(void 0, null, function*() { | |
return (yield(yield Z(() => | |
import ("./sortBy-53166f8e.js").then(a => a.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default.get("/api/v1/kindle").query({ | |
embedText: t | |
})).body | |
}), | |
Ute = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
return (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.kindle.create(yield $te(t)) | |
}), | |
Vte = t => yt("https://read.amazon.com/kp/card", { | |
asin: t, | |
preview: "inline", | |
linkCode: "kpe", | |
hideShare: "true" | |
}), | |
Hte = t => `https://www.amazon.com/gp/product/${t}/`, | |
Qd = { | |
attrs: { | |
url: { | |
default: "" | |
}, | |
thumbnail_url: { | |
default: "" | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDom: [{ | |
tag: "div.lichess-wrap", | |
getAttrs: re | |
}], | |
toDOM: t => em(t), | |
toDOMStatic: t => Xte(t) | |
}, | |
Gte = F({ | |
name: "lichess", | |
nodeSpec: Qd, | |
addCommands() { | |
return { | |
insertLichess: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
Wte = /^.*(https?\:\/\/(\S+)?(?:(.?lichess.org\/.*).*)).*$/, | |
Jte = t => { | |
const e = Wte.exec(t); | |
return e && e[0] | |
}, | |
Yte = t => N(void 0, null, function*() { | |
return (yield(yield Z(() => | |
import ("./sortBy-53166f8e.js").then(a => a.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default.get("/api/v1/lichess-embed").query({ | |
url: t.trim() | |
})).body | |
}), | |
Kte = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
return (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.lichess.create(yield Yte(t)) | |
}), | |
Xte = (t, {} = {}) => { | |
const e = document.createElement("div"); | |
e.className = "lichess-wrap static", e.setAttribute("data-component-name", "LichessToDOMStatic"), t.attrs.thumbnail_url; | |
const n = document.createElement("a"); | |
n.href = t.attrs.url.replace(/embed\//, ""), n.setAttribute("target", "_blank"); | |
const s = document.createElement("img"); | |
return s.className = "lichess-wrap thumbnail", s.src = q(t.attrs.thumbnail_url, 640), s.style.backgroundImage = `url(${t.attrs.thumbnail_url})`, t.attrs.belowTheFold && s.setAttribute("loading", "lazy"), n.append(s), e.appendChild(n), e | |
}, | |
em = t => { | |
const e = document.createElement("div"); | |
e.id = "lichess-iframe", e.className = "lichess-wrap outer", e.dataset.attrs = JSON.stringify(t.attrs), e.setAttribute("data-component-name", "LichessToDOM"); | |
const n = document.createElement("iframe"); | |
return n.id = "iframe-lichess", n.className = "lichess-iframe", n.src = t.attrs.url, n.width = "560", n.height = "405px", n.frameBorder = "0", t.attrs.belowTheFold && n.setAttribute("loading", "lazy"), e.appendChild(n), e | |
}; | |
class Zte { | |
constructor(e) { | |
const n = em(e), | |
s = n.querySelector(".lichess-iframe"), | |
a = document.createElement("div"); | |
a.className = "lichess-screen", a.addEventListener("dblclick", () => { | |
a.classList.add("sunken"), s.focus() | |
}), s.addEventListener("blur", () => { | |
a.classList.remove("sunken") | |
}), n.appendChild(a), this.dom = n | |
} | |
} | |
const ba = { | |
attrs: { | |
url: { | |
default: "" | |
}, | |
thumbnail_url: { | |
default: "" | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDom: [{ | |
tag: "div.prediction-market-wrap", | |
getAttrs: re | |
}], | |
toDOM: t => tm(t), | |
toDOMStatic: t => one(t) | |
}, | |
Qte = F({ | |
name: "prediction_market", | |
nodeSpec: ba, | |
addCommands() { | |
return { | |
insertPredictionMarket: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
ene = F({ | |
name: "manifold", | |
nodeSpec: ba | |
}), | |
tne = /^.*(https?\:\/\/(\S+)?(?:(.?manifold.markets|metaculus.com\/questions\/.*\/).*)).*$/, | |
nne = t => { | |
const e = tne.exec(t); | |
return e && e[0] | |
}, | |
sne = t => N(void 0, null, function*() { | |
return (yield(yield Z(() => | |
import ("./sortBy-53166f8e.js").then(a => a.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default.get("/api/v1/prediction-embed").query({ | |
url: t.trim() | |
})).body | |
}), | |
ane = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
return (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.prediction_market.create(yield sne(t)) | |
}), | |
one = (t, {} = {}) => { | |
const e = document.createElement("div"); | |
e.className = "prediction-market-wrap static", e.setAttribute("data-component-name", "PredictionMarketToDOMStatic"), t.attrs.thumbnail_url; | |
const n = document.createElement("a"); | |
n.href = t.attrs.url.replace(/embed\//, ""), n.setAttribute("target", "_blank"); | |
const s = document.createElement("img"); | |
return s.className = "prediction-market thumbnail", s.src = q(t.attrs.thumbnail_url, 640), s.style.backgroundImage = `url(${t.attrs.thumbnail_url})`, t.attrs.belowTheFold && s.setAttribute("loading", "lazy"), n.append(s), e.appendChild(n), e | |
}, | |
tm = t => { | |
t.attrs.embed_url; | |
const e = document.createElement("div"); | |
e.id = "prediction-market-iframe", e.className = "prediction-market-wrap outer", e.dataset.attrs = JSON.stringify(t.attrs), e.setAttribute("data-component-name", "PredictionMarketToDOM"); | |
const n = document.createElement("iframe"); | |
return n.id = "iframe-prediction-market", n.className = "prediction-market-iframe", n.src = t.attrs.url, n.width = "560", n.height = "405px", n.frameBorder = "0", t.attrs.belowTheFold && n.setAttribute("loading", "lazy"), e.appendChild(n), e | |
}; | |
class rne { | |
constructor(e) { | |
const n = tm(e), | |
s = n.querySelector(".prediction-market-iframe"), | |
a = document.createElement("div"); | |
a.className = "prediction-market-screen", a.addEventListener("dblclick", () => { | |
a.classList.add("sunken"), s.focus() | |
}), s.addEventListener("blur", () => { | |
a.classList.remove("sunken") | |
}), n.appendChild(a), this.dom = n | |
} | |
} | |
const ine = "https://w.soundcloud.com/player/?auto_play=false&buying=false&liking=false&download=false&sharing=false&show_artwork=true&show_comments=false&show_playcount=false&show_user=true&hide_related=true&visual=false&start_track=0", | |
nm = { | |
attrs: { | |
url: { | |
default: "" | |
}, | |
title: { | |
default: "" | |
}, | |
description: { | |
default: "" | |
}, | |
thumbnail_url: { | |
default: "" | |
}, | |
author_name: { | |
default: "" | |
}, | |
author_url: { | |
default: "" | |
}, | |
targetUrl: { | |
default: "" | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.soundcloud-wrap", | |
getAttrs: re | |
}], | |
toDOM: t => ["div", { | |
class: "soundcloud-wrap", | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "SoundcloudToDOM" | |
}, | |
["iframe", { | |
src: En(ine, { | |
url: t.attrs.url | |
}), | |
frameborder: "0", | |
gesture: "media", | |
scrolling: "no", | |
allowfullscreen: "true" | |
}] | |
], | |
toDOMStatic: t => { | |
const { | |
thumbnail_url: e, | |
author_name: n, | |
title: s, | |
targetUrl: a | |
} = t.attrs; | |
return Ha(e, s, n, null, { | |
targetUrl: a | |
}) | |
} | |
}, | |
cne = F({ | |
name: "soundcloud", | |
nodeSpec: nm, | |
addCommands() { | |
return { | |
insertSoundcloud: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
lne = (t, { | |
customSchema: e | |
} = {}) => { | |
if (e && !e.nodes.soundcloud) return null; | |
const n = /^.*(https?\:\/\/(www\.)?soundcloud.com\/[^\/]+\/[^\/]+(\/[^\/]+)?(\?[\#]*)?(\#.*)?).*$/.exec(t); | |
return n && n[1] | |
}, | |
une = t => N(void 0, null, function*() { | |
const s = (yield(yield Z(() => | |
import ("./sortBy-53166f8e.js").then(a => a.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default.get("/api/v1/soundcloud").query({ | |
url: t.trim() | |
})).body; | |
return S({ | |
targetUrl: t.trim() | |
}, s) | |
}), | |
pne = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
return (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.soundcloud.create(yield une(t)) | |
}), | |
sm = { | |
attrs: { | |
image: { | |
default: "" | |
}, | |
title: { | |
default: "" | |
}, | |
subtitle: { | |
default: "" | |
}, | |
description: { | |
default: "" | |
}, | |
url: { | |
default: "" | |
}, | |
belowTheFold: { | |
default: !1 | |
}, | |
noScroll: { | |
default: !1 | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "iframe.spotify-wrap", | |
getAttrs: re | |
}], | |
toDOM: t => { | |
let e = "spotify-wrap"; | |
const n = ai(t.attrs.url).params; | |
return n != null && n.show || n != null && n.episode ? e += " podcast" : n != null && n.playlist ? e += " playlist" : n != null && n.album ? e += " album" : n != null && n.artist && (e += " artist"), ["iframe", { | |
class: e, | |
"data-attrs": JSON.stringify(t.attrs), | |
src: gne(t.attrs.url), | |
frameborder: "0", | |
gesture: "media", | |
allowfullscreen: "true", | |
allow: "encrypted-media", | |
loading: t.attrs.belowTheFold ? "lazy" : null, | |
"data-component-name": "Spotify2ToDOM", | |
scrolling: t.attrs.noScroll ? "no" : null | |
}] | |
}, | |
toDOMStatic: t => { | |
const { | |
image: e, | |
title: n, | |
subtitle: s, | |
description: a, | |
url: o | |
} = t.attrs; | |
return Ha(e, n, s, a, { | |
targetUrl: o | |
}) | |
} | |
}, | |
dne = F({ | |
name: "spotify2", | |
nodeSpec: sm, | |
addCommands() { | |
return { | |
insertSpotify: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
mne = (t, { | |
customSchema: e | |
} = {}) => e && !e.nodes.spotify2 ? null : ai(t).url, | |
fne = t => N(void 0, null, function*() { | |
return (yield(yield Z(() => | |
import ("./sortBy-53166f8e.js").then(a => a.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default.get("/api/v1/spotify").query({ | |
url: t | |
})).body | |
}), | |
hne = (n, s) => N(void 0, [n, s], function*(t, { | |
customSchema: e | |
}) { | |
return e.nodes.spotify2.create(yield fne(t)) | |
}), | |
ai = t => { | |
if (t != null && t.includes("anchor.fm")) { | |
const a = /((?:https?:\/\/(?:www\.)?anchor\.fm\/(?:embed\/)?|anchor:)([^"'\s\b?#()]*))/.exec(t); | |
if (a) return { | |
params: { | |
show: "podcast" | |
}, | |
url: a[1], | |
base: a[2], | |
platform: "anchor" | |
} | |
} | |
const e = /((?:https?:\/\/(open|podcasters)\.spotify\.com\/(?:embed\/)?|spotify:)([^"'\s\b?#()]*)(?:[?#][\S]*)?)/.exec(t); | |
if (!e) return { | |
params: null, | |
url: null, | |
base: null, | |
platform: null | |
}; | |
const n = e[3].split(/[/:]/), | |
s = {}; | |
for (let a = 1; a < n.length; a += 2) s[n[a - 1]] = n[a]; | |
return { | |
params: s, | |
url: e[1], | |
base: e[2], | |
platform: "spotify" | |
} | |
}, | |
gne = t => { | |
const { | |
params: e, | |
base: n, | |
platform: s | |
} = ai(t), a = []; | |
if (e) { | |
if (s === "anchor") return `https://anchor.fm/${n}`; | |
if (n === "open") e.user && e.playlist ? a.push("user", e.user, "playlist", e.playlist) : e.playlist ? a.push("playlist", e.playlist) : e.album ? a.push("album", e.album) : e.track ? a.push("track", e.track) : e.artist ? a.push("artist", e.artist) : e.show ? a.push("show", e.show) : e.pod ? a.push("pod", e.pod) : (e.episode || e.episodes) && a.push("episode", e.episode || e.episodes); | |
else | |
for (const [o, r] of Object.entries(e)) r && (a.push(o), a.push(r)); | |
return `https://${n}.spotify.com/${n==="open"?"embed":""}/${a.join("/")}` | |
} | |
}, | |
am = { | |
attrs: { | |
url: { | |
default: "" | |
}, | |
title: { | |
default: "" | |
}, | |
thumbnail_url: { | |
default: "" | |
}, | |
author: { | |
default: "" | |
}, | |
embed_url: { | |
default: "" | |
}, | |
author_url: { | |
default: "" | |
}, | |
belowTheFold: { | |
default: !1 | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDom: [{ | |
tag: "div.tiktok-wrap", | |
getAttrs: re | |
}], | |
toDOM: t => rm(t), | |
toDOMStatic: t => om(t) | |
}, | |
bne = F({ | |
name: "tiktok", | |
nodeSpec: am, | |
addCommands() { | |
return { | |
insertTiktok: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
vne = /^.*(https?\:\/\/(\S+)?(?:vt.tiktok.com\/|(.?tiktok.com\/.*\/video\/).*)).*$/, | |
xne = t => { | |
const e = vne.exec(t); | |
return e && e[0] | |
}, | |
yne = t => N(void 0, null, function*() { | |
return (yield(yield Z(() => | |
import ("./sortBy-53166f8e.js").then(a => a.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default.get("/api/v1/tiktok").query({ | |
url: t.trim() | |
})).body | |
}), | |
wne = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
return (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.tiktok.create(yield yne(t)) | |
}), | |
qs = t => `tiktok-${t==null?void 0:t.split("/").slice(-1)[0]}`, | |
om = (t, { | |
useTikTokUrl: e = !1 | |
} = {}) => { | |
var l, u, d, m; | |
const n = document.createElement("div"); | |
n.className = "tiktok-wrap static", n.setAttribute("data-component-name", "TikTokCreateStaticTikTokEmbed"); | |
const s = `${e?t.attrs.url:`${ce.POST_URL}/#tiktok-${(l=t.attrs.embed_url)==null?void 0:l.split("/").slice(-1)[0]}`}`, | |
a = document.createElement("a"); | |
a.href = s, a.setAttribute("target", "_blank"); | |
const o = document.createElement("img"); | |
o.className = "tiktok thumbnail", o.src = q(t.attrs.thumbnail_url, 640), o.style.backgroundImage = `url(${q(t.attrs.thumbnail_url)})`, t.attrs.belowTheFold && o.setAttribute("loading", "lazy"), a.append(o); | |
const r = document.createElement("div"); | |
r.classList.add("content"); | |
const i = document.createElement("a"); | |
i.classList.add("author"), i.href = t.attrs.author_url, i.setAttribute("target", "_blank"), i.appendChild(document.createTextNode(((m = (d = (u = t.attrs.author_url) == null ? void 0 : u.split) == null ? void 0 : d.call(u, "/").slice(-1)) == null ? void 0 : m[0]) || t.attrs.author)); | |
const c = document.createElement("a"); | |
return c.classList.add("title"), c.href = s, c.setAttribute("target", "_blank"), c.appendChild(document.createTextNode(t.attrs.title)), r.appendChild(i), r.appendChild(c), n.appendChild(a), n.appendChild(r), n | |
}, | |
rm = t => { | |
var l; | |
const e = t.attrs.embed_url, | |
n = document.createElement("div"); | |
n.id = qs(e), n.className = "tiktok-wrap outer", n.dataset.attrs = JSON.stringify(t.attrs), n.setAttribute("data-component-name", "TikTokCreateTikTokEmbed"); | |
const s = document.createElement("iframe"); | |
s.id = `iframe-${qs(e)}`, s.className = "tiktok-iframe", s.src = e, s.frameBorder = "0", (l = s.setAttribute) == null || l.call(s, "allow", "autoplay; fullscreen; encrypted-media"), s.allowFullscreen = "true", s.allowautoplay = "true", s.allowfullscreen = "true", s.scrolling = "no", t.attrs.belowTheFold && s.setAttribute("loading", "lazy"), n.appendChild(s); | |
const a = document.createElement("iframe"); | |
a.src = "https://team-hosted-public.s3.amazonaws.com/set-then-check-cookie.html", a.id = `third-party-iframe-${qs(e)}`, a.className = "third-party-cookie-check-iframe", a.style.display = "none", t.attrs.belowTheFold && a.setAttribute("loading", "lazy"), n.append(a); | |
const o = om(t, { | |
useTikTokUrl: !0 | |
}); | |
n.appendChild(o); | |
const r = document.createElement("div"); | |
r.classList.add("fallback-failure"), r.id = `fallback-failure-${qs(e)}`; | |
const i = document.createElement("div"); | |
i.classList.add("error-content"); | |
const c = document.createElement("img"); | |
return c.classList.add("error-icon"), c.src = Xl("/img/alert-circle.svg"), t.attrs.belowTheFold && c.setAttribute("loading", "lazy"), i.appendChild(c), i.appendChild(document.createTextNode("Tiktok failed to load.")), i.appendChild(document.createElement("br")), i.appendChild(document.createElement("br")), i.appendChild(document.createTextNode("Enable 3rd party cookies or use another browser")), r.appendChild(i), n.appendChild(r), n | |
}; | |
class kne { | |
constructor(e) { | |
const n = rm(e), | |
s = n.querySelector(".tiktok-iframe"), | |
a = document.createElement("div"); | |
a.className = "tiktok-screen"; | |
const o = document.createElement("h1"); | |
o.className = "instructions", o.innerText = "Double click to interact", a.appendChild(o), a.addEventListener("dblclick", () => { | |
a.classList.add("sunken"), s.focus() | |
}), s.addEventListener("blur", () => { | |
a.classList.remove("sunken") | |
}), n.appendChild(a), this.dom = n | |
} | |
} | |
const im = { | |
attrs: { | |
url: { | |
default: "" | |
}, | |
full_text: { | |
default: "" | |
}, | |
username: { | |
default: "" | |
}, | |
name: { | |
default: "" | |
}, | |
date: { | |
default: "" | |
}, | |
photos: { | |
default: [] | |
}, | |
quoted_tweet: { | |
default: {} | |
}, | |
retweet_count: { | |
default: 0 | |
}, | |
like_count: { | |
default: 0 | |
}, | |
expanded_url: { | |
default: null | |
}, | |
video_url: { | |
default: null | |
}, | |
belowTheFold: { | |
default: !1 | |
} | |
}, | |
untrackedAttrs: ["full_text", "photos", "quoted_tweet", "expanded_url"], | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.tweet", | |
getAttrs: re | |
}], | |
toDOMStatic: t => vl(t, !0), | |
toDOM: t => vl(t, !1) | |
}, | |
_ne = F({ | |
name: "twitter2", | |
nodeSpec: im, | |
addCommands() { | |
return { | |
insertTwitter: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
cm = (t, { | |
customSchema: e | |
} = {}) => { | |
if (e && !e.nodes.twitter2) return null; | |
const n = /(https?:\/\/(mobile\.twitter\.com|twitter\.com|t\.co)\/.*\/status\/[^\/\s]*)/.exec(t); | |
return n && n[1] | |
}, | |
Cne = t => N(void 0, null, function*() { | |
return (yield(yield Z(() => | |
import ("./sortBy-53166f8e.js").then(s => s.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default.get("/api/v1/tweet").query({ | |
url: t | |
})).body | |
}), | |
Ene = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
return (e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.twitter2.create(yield Cne(t)) | |
}); | |
function Hn(t, e, { | |
additionalClasses: n = [], | |
belowTheFold: s = !1 | |
} = {}) { | |
const a = document.createElement("div"); | |
a.className = `tweet-photo-wrapper ${n.join(" ")}`; | |
const o = document.createElement("img"); | |
if (o.className = "tweet-photo", o.setAttribute("src", q(t.img_url, 600)), o.setAttribute("alt", t.alt_text || "Image"), s && o.setAttribute("loading", "lazy"), e) a.appendChild(o); | |
else { | |
const r = document.createElement("picture"), | |
i = document.createElement("source"); | |
i.setAttribute("type", "image/webp"), i.setAttribute("srcset", q(t.img_url, 600, { | |
format: "webp" | |
})), r.appendChild(i), r.appendChild(o), a.appendChild(r) | |
} | |
return a | |
} | |
function Ane(t, e, { | |
belowTheFold: n = !1 | |
} = {}) { | |
const s = document.createElement("div"); | |
if (s.className = "tweet-photos-container", t.length === 1) s.appendChild(Hn(t[0], e, { | |
belowTheFold: n | |
})), s.className += " one"; | |
else if (t.length === 2) { | |
s.className += " two"; | |
for (const a of t) { | |
const o = document.createElement("div"); | |
o.className = "tweet-photos-column", o.appendChild(Hn(a, e, { | |
belowTheFold: n | |
})), s.appendChild(o) | |
} | |
} else { | |
const a = [document.createElement("div"), document.createElement("div")]; | |
if (a.forEach(o => { | |
s.appendChild(o), o.className = "tweet-photos-column" | |
}), t.length === 3) { | |
s.className += " three", a[0].appendChild(Hn(t[0], e, { | |
belowTheFold: n | |
})); | |
for (const o of t.slice(1)) a[1].appendChild(Hn(o, e, { | |
additionalClasses: ["half-height-container"], | |
belowTheFold: n | |
})) | |
} else s.className += " four", t.slice(0, 4).forEach((r, i) => { | |
a[i % 2].appendChild(Hn(r, e, { | |
additionalClasses: ["half-height-container"], | |
belowTheFold: n | |
})) | |
}) | |
} | |
return s | |
} | |
const Sne = Ane; | |
function vl(t, e) { | |
var g; | |
const n = document.createElement("div"), | |
s = e ? "Twitter2ToDOMStatic" : "Twitter2ToDOM"; | |
n.setAttribute("data-component-name", s), n.className = `${e?"tweet static":"tweet"}`, e || n.setAttribute("data-attrs", JSON.stringify(t.attrs)); | |
const a = document.createElement("a"), | |
o = document.createElement("a"); | |
a.className = "tweet-link-top", o.className = "tweet-link-bottom", a.setAttribute("href", t.attrs.url), o.setAttribute("href", t.attrs.url); | |
const r = document.createElement("div"); | |
if (r.className = "tweet-text", a.setAttribute("target", "_blank"), o.setAttribute("target", "_blank"), r.innerHTML = bt(t.attrs.full_text, { | |
allowedTags: bt.defaults.allowedTags.concat(["img"]), | |
allowedAttributes: Object.assign({}, bt.defaults.allowedAttributes, { | |
"*": ["href", "style", "id", "data-*", "itemprop", "class", "align", "alt", "center", "bgcolor"] | |
}) | |
}), n.appendChild(a), a.appendChild(r), t.attrs.video_url && !e) { | |
const b = document.createElement("div"); | |
b.className = "tweet-video-wrapper", n.appendChild(b); | |
const x = document.createElement("video"); | |
x.className = "tweet-video", x.setAttribute("controls", "true"), x.setAttribute("src", q(t.attrs.video_url, 600)), x.setAttribute("alt", "Video"), t.attrs.belowTheFold && x.setAttribute("loading", "lazy"), b.appendChild(x) | |
} else if ((g = t == null ? void 0 : t.attrs) != null && g.photos && t.attrs.photos.length > 0) { | |
const b = Sne(t.attrs.photos, e, { | |
belowTheFold: t.attrs.belowTheFold | |
}); | |
a.appendChild(b) | |
} | |
if (t.attrs.quoted_tweet && t.attrs.quoted_tweet.full_text) { | |
const b = document.createElement("div"); | |
b.className = "quote-tweet", b.innerHTML = bt(t.attrs.quoted_tweet.full_text, { | |
allowedTags: [] | |
}); | |
const x = document.createElement("div"); | |
x.className = "quote-tweet-header"; | |
const v = document.createElement("img"); | |
v.className = "quote-tweet-header-avatar", v.src = `${os}/image/twitter_name/w_40/${t.attrs.quoted_tweet.username}.jpg`, v.setAttribute("alt", `Twitter avatar${t.attrs.quoted_tweet.username?` for @${t.attrs.quoted_tweet.username}`:""}`), t.attrs.belowTheFold && v.setAttribute("loading", "lazy"), x.appendChild(v); | |
const w = document.createElement("div"); | |
w.className = "quote-tweet-header-text"; | |
const E = document.createElement("span"); | |
E.className = "quote-tweet-name", E.textContent = `${t.attrs.quoted_tweet.name||""} `, w.appendChild(E); | |
const _ = document.createElement("span"); | |
_.className = "quote-tweet-username", _.textContent = `@${t.attrs.quoted_tweet.username}`, w.appendChild(_), x.appendChild(w), b.insertBefore(x, b.childNodes[0]), a.appendChild(b) | |
} | |
if (t.attrs.expanded_url && t.attrs.expanded_url.title) { | |
const b = document.createElement("a"); | |
if (b.className = "expanded-link", b.setAttribute("href", t.attrs.expanded_url.url), t.attrs.expanded_url.image) { | |
const _ = t.attrs.expanded_url.image.url || t.attrs.expanded_url.image, | |
k = document.createElement("img"); | |
k.setAttribute("src", q(_, 600, { | |
height: 314, | |
crop: "fill" | |
})), k.className = "expanded-link-img", t.attrs.belowTheFold && k.setAttribute("loading", "lazy"), b.appendChild(k) | |
} | |
const x = document.createElement("div"); | |
x.className = "expanded-link-bottom"; | |
const v = document.createElement("span"); | |
v.className = "expanded-link-domain", v.textContent = t.attrs.expanded_url.domain, x.appendChild(v); | |
const w = document.createElement("span"); | |
w.className = "expanded-link-title", w.textContent = it(t.attrs.expanded_url.title, 140), x.appendChild(w); | |
const E = document.createElement("span"); | |
E.className = "expanded-link-description", E.textContent = t.attrs.expanded_url.description ? e ? t.attrs.expanded_url.description.slice(0, 135).concat("...") : t.attrs.expanded_url.description : "", x.appendChild(E), b.appendChild(x), a.appendChild(b) | |
} | |
const i = document.createElement("div"); | |
i.className = "tweet-header", a.insertBefore(i, a.childNodes[0]); | |
const c = document.createElement("img"); | |
c.className = "tweet-header-avatar", c.src = `${os}/image/twitter_name/w_${Cu*2}/${t.attrs.username}.jpg`, c.setAttribute("alt", `Twitter avatar${t.attrs.username?` for @${t.attrs.username}`:""}`), t.attrs.belowTheFold && c.setAttribute("loading", "lazy"), i.appendChild(c); | |
const l = document.createElement("div"); | |
l.className = "tweet-header-text", i.appendChild(l); | |
const u = document.createElement("span"); | |
u.className = "tweet-author-name", u.textContent = `${t.attrs.name||""} `, l.appendChild(u); | |
const d = document.createElement("span"); | |
d.className = "tweet-author-handle", d.textContent = `@${t.attrs.username}`, l.appendChild(d); | |
const m = document.createElement("div"); | |
m.className = "tweet-footer"; | |
const f = "tweet-date", | |
h = document.createElement("span"); | |
if (h.className = f, h.textContent = eu(t.attrs.date).format("h:mm A ∙ MMM D, YYYY"), m.appendChild(h), t.attrs.retweet_count !== 0 && t.attrs.like_count !== 0) { | |
const b = document.createElement("hr"); | |
m.appendChild(b) | |
} | |
if (t.attrs.retweet_count !== 0 && t.attrs.like_count !== 0) { | |
const b = document.createElement("div"); | |
if (b.className = "tweet-ufi", t.attrs.like_count > 0) { | |
const x = document.createElement("span"), | |
v = document.createElement("span"); | |
x.setAttribute("href", `${t.attrs.url}/likes`), x.className = "likes", v.className = "like-count", v.textContent = t.attrs.like_count.toLocaleString(), x.appendChild(v), x.append(t.attrs.like_count > 1 ? "Likes" : "Like"), b.appendChild(x) | |
} | |
if (t.attrs.retweet_count > 0) { | |
const x = document.createElement("span"), | |
v = document.createElement("span"); | |
x.setAttribute("href", `${t.attrs.url}/retweets`), x.className = "retweets", v.className = "rt-count", v.textContent = t.attrs.retweet_count.toLocaleString(), x.appendChild(v), x.append(t.attrs.retweet_count > 1 ? "Retweets" : "Retweet"), b.appendChild(x) | |
} | |
m.appendChild(b) | |
} | |
return o.appendChild(m), n.appendChild(o), a.querySelectorAll && Array.prototype.forEach.call(a.querySelectorAll("a"), b => { | |
b.target = "_blank" | |
}), o.querySelectorAll && Array.prototype.forEach.call(o.querySelectorAll("a"), b => { | |
b.target = "_blank" | |
}), n | |
} | |
const lm = { | |
attrs: { | |
videoId: { | |
default: "" | |
}, | |
videoKey: { | |
default: "" | |
}, | |
belowTheFold: { | |
default: !1 | |
} | |
}, | |
untrackedAttrs: ["videoKey"], | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.vimeo-wrap", | |
getAttrs: re | |
}], | |
toDOM: t => { | |
const e = Dne(t.attrs.videoId, t.attrs.videoKey); | |
return ["div", { | |
id: Lne(t.attrs.videoId), | |
class: "vimeo-wrap", | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "VimeoToDOM" | |
}, | |
["div", { | |
class: "vimeo-inner" | |
}, | |
["iframe", { | |
src: e, | |
frameborder: "0", | |
gesture: "media", | |
allow: "autoplay; fullscreen", | |
allowautoplay: "true", | |
allowfullscreen: "true", | |
loading: t.attrs.belowTheFold ? "lazy" : null | |
}] | |
] | |
] | |
}, | |
toDOMStatic: t => ["a", { | |
href: One(t.attrs.videoId, t.attrs.videoKey), | |
target: "_blank", | |
class: "vimeo-wrap", | |
"data-component-name": "VimeoToDOMStatic" | |
}, | |
["img", { | |
src: um(t.attrs.videoId, { | |
maxWidth: 550 | |
}) | |
}] | |
] | |
}, | |
Tne = F({ | |
name: "vimeo", | |
nodeSpec: lm, | |
addCommands() { | |
return { | |
insertVimeo: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
Dne = (t, e = null) => `https://player.vimeo.com/video/${t}?autoplay=0${e?`&h=${e}`:""}`, | |
Ine = (t, { | |
customSchema: e | |
} = {}) => e && !e.nodes.vimeo ? null : pm(t)[2], | |
Nne = t => { | |
const [e, n] = pm(t); | |
return e ? { | |
videoId: e, | |
videoKey: n | |
} : null | |
}, | |
Mne = (n, s) => N(void 0, [n, s], function*(t, { | |
customSchema: e | |
}) { | |
const a = Nne(t); | |
return a ? e.nodes.vimeo.create(a) : null | |
}), | |
um = (t, { | |
maxWidth: e = 728, | |
playButton: n = !0 | |
} = {}) => `${os}/image/vimeo/w_${e},c_limit,d_video_placeholder.png${n?"/l_youtube_play_qyqt8q,w_170":""}/${t}`, | |
One = (t, e) => `https://vimeo.com/${t}${e?`/${e}`:""}`; | |
function pm(t) { | |
const e = /(https?:\/\/[^\s]*vimeo.com\/(?:channels\/[^/]+\/|video\/)?(\d+)(\/([0-9a-f]+))?[^\s\"\'"]*)/.exec(t); | |
return e ? [e[2], e[4], e[1]] : [null, null, null] | |
} | |
function Lne(t) { | |
return `vimeo-${t}` | |
} | |
const dm = { | |
attrs: { | |
videoId: { | |
default: "" | |
}, | |
startTime: { | |
default: null | |
}, | |
endTime: { | |
default: null | |
} | |
}, | |
inline: !1, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: "div.youtube-wrap", | |
getAttrs: re | |
}, { | |
tag: "iframe", | |
getAttrs: t => { | |
try { | |
const e = t.src && bn(t.src)[0]; | |
return e ? { | |
videoId: e | |
} : !1 | |
} catch (e) { | |
return !1 | |
} | |
} | |
}, { | |
tag: "object", | |
getAttrs: t => { | |
try { | |
const e = t.data && bn(t.data)[0]; | |
if (e) return { | |
videoId: e | |
}; | |
const n = t.querySelectorAll("param"); | |
for (const a of n) { | |
const o = a.value && bn(a.value)[0]; | |
if (o) return { | |
videoId: o | |
} | |
} | |
const s = t.querySelectorAll("embed"); | |
for (const a of s) { | |
const o = a.src && bn(a.src)[0]; | |
if (o) return { | |
videoId: o | |
} | |
} | |
return !1 | |
} catch (e) { | |
return !1 | |
} | |
} | |
}], | |
toDOM: t => { | |
const e = mm(t.attrs.videoId, { | |
start: t.attrs.startTime, | |
end: t.attrs.endTime | |
}); | |
return ["div", { | |
id: fm(t.attrs.videoId), | |
class: "youtube-wrap", | |
"data-attrs": JSON.stringify(t.attrs), | |
"data-component-name": "Youtube2ToDOM" | |
}, | |
["div", { | |
class: "youtube-inner" | |
}, | |
["iframe", { | |
src: e, | |
frameborder: "0", | |
loading: "lazy", | |
gesture: "media", | |
allow: "autoplay; fullscreen", | |
allowautoplay: "true", | |
allowfullscreen: "true", | |
width: "728", | |
height: "409" | |
}] | |
] | |
] | |
}, | |
toDOMStatic: t => ["a", { | |
href: qne(t.attrs), | |
target: "_blank", | |
class: "youtube-wrap", | |
"data-component-name": "Youtube2ToDOMStatic" | |
}, | |
["img", { | |
src: va(t.attrs.videoId, { | |
maxWidth: 550 | |
}) | |
}] | |
] | |
}, | |
Rne = F({ | |
name: "youtube2", | |
nodeSpec: dm, | |
addCommands() { | |
return { | |
insertYoutube: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
} | |
}), | |
Pne = (t, { | |
customSchema: e | |
} = {}) => e && !e.nodes.youtube2 ? null : bn(t)[1], | |
Bne = (n, ...s) => N(void 0, [n, ...s], function*(t, { | |
customSchema: e | |
} = {}) { | |
const a = e ? { | |
schema: e | |
} : yield Z(() => Promise.resolve().then(() => Te), void 0); | |
console.log({ | |
schemaModule: a | |
}); | |
const o = a.schema, | |
r = zne(t); | |
return r ? o.nodes.youtube2.create(r) : null | |
}), | |
zne = t => { | |
const e = bn(t)[0]; | |
if (!e) return null; | |
const n = Fne(t); | |
return { | |
videoId: e, | |
startTime: n.start, | |
endTime: n.end | |
} | |
}, | |
va = (t, { | |
maxWidth: e = 728, | |
playButton: n = !0 | |
} = {}) => `${os}/image/youtube/w_${e},c_limit${n?"/l_youtube_play_qyqt8q,w_120":""}/${t}`, | |
qne = t => `https://www.youtube.com/watch?${tu({v:t.videoId,start:t.startTime,end:t.endTime})}`, | |
mm = (t, { | |
start: e, | |
end: n, | |
enableJsApi: s | |
} = {}) => `https://www.youtube-nocookie.com/embed/${t}?${tu({start:e,end:n,rel:0,autoplay:0,showinfo:0,enablejsapi:s?1:0})}`, | |
bn = t => { | |
const e = /(https?\:\/\/(www\.|m\.)?youtube\.com\/(v\/)?watch\?[^\s]+)/.exec(t); | |
if (e) { | |
const s = dr(e[1]).v || null; | |
if (s) return [s, e[1]] | |
} | |
const n = /(https?\:\/\/(?:youtu\.be|www\.youtube\.com\/embed|www\.youtube-nocookie\.com\/embed|www\.youtube\.com\/v|www\.youtube\.com\/shorts)\/([A-z0-9\-_]+)[^\s]*)/.exec(t); | |
return n ? [n[2], n[1]] : [null, null] | |
}; | |
function fm(t) { | |
return `youtube2-${t}` | |
} | |
function Fne(t) { | |
const e = dr(t); | |
return { | |
start: e.start || e.t, | |
end: e.end | |
} | |
} | |
class jne { | |
constructor(e) { | |
const n = mm(e.attrs.videoId, { | |
start: e.attrs.startTime, | |
end: e.attrs.endTime, | |
enableJsApi: !0 | |
}), | |
s = document.createElement("div"); | |
s.id = fm(e.attrs.videoId), s.className = "youtube-wrap", s.dataset.attrs = JSON.stringify(e.attrs); | |
const a = document.createElement("div"); | |
a.className = "youtube-inner", s.appendChild(a); | |
const o = document.createElement("iframe"); | |
o.src = n, o.frameborder = "0", o.gesture = "media", o.allow = "autoplay; fullscreen", o.allowautoplay = "true", o.allowfullscreen = "true", a.appendChild(o); | |
const r = document.createElement("div"); | |
r.className = "youtube-screen"; | |
const i = document.createElement("h1"); | |
i.className = "instructions", i.innerText = "Double click to interact", r.appendChild(i), r.addEventListener("dblclick", () => { | |
r.classList.add("sunken"), o.focus() | |
}), o.addEventListener("blur", () => { | |
r.classList.remove("sunken"), o.contentWindow.postMessage(JSON.stringify({ | |
event: "command", | |
func: "pauseVideo", | |
args: "" | |
}), "*") | |
}), a.appendChild(r), this.dom = s | |
} | |
} | |
const $ne = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjAAAAEyCAYAAADk0er5AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAooSURBVHgB7d1rbhvXGcfhw6slUYyFBHZiAwnsFcTdQZENpDtpV9A02UCbnTQraHeQ7EAGAsQ2bBiyJVIX3spDwIVhIICRD+L8Z54HoCiL+kKLHP34Ho5Or3zg119//fP26i/9fv/b7fWjAgCwH7/Uy7ZJvn/w4MHT92/ovfvk9PT05M6dO99tP/3b8fFxOTw8LMPhsAAA7MNisdhdzs/Py3q9/uf19fUPjx8/Pqu37QKmxst4PP7P0dHRk7t375Zer1cAAJpgGy+7iJnNZj/f3Nx8UyOmX2+ok5fJZPLk5OREvAAAjbJdQip1wLJdHfrTtln+Xr/We/bs2aNttJzev39fvAAAjVUnMS9evNisVqtv+tsP/5hOp+IFAGi0Ook5Pj6uwfJtfxsuX4/H4wIA0HRHR0c1ZL6t74F54mwjACDBYDCoV4/6BQAgjIABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIIGAAgjoABAOIMC9Ap6/W6XFxclOVyWTabTUk3Ho/LZDIp/b7XY9AlnvHQITVezs7OymKxaEW8VDc3N7v7VO8b0B0CBjpkNpu1JlzeV+9TnSoB3SFgoEPqtKKt6pIY0B0CBmiFNk6WgN8nYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGAIgjYACAOAIGOqTX6xWANhAw0CGDwaC01Xg8LkB3CBjokOl02sopTL1Pk8mkAN0hYKBD+v1+OTk5ac20oobLcDjc3ad634DuGBagU+ov+jqJAUjmJQsAEEfAAABxBAwAEEfAAABxBAwAEEfAAABxBAwAEEfAAABxBAwAEEfAAABxBAwAEEfAAABxBAwAEEfAAABxBAwAEEfAAABxBAwAEEfAAABxBAwAEGdYoKGurq7KmzdvymKxKOv1ugC3o9/vl9FoVI6Pj8tkMinQRAKGxqmx8vLly3J9fV2A21efg/X5Vy8XFxfls88+K8OhXxc0iyUkGqUeOJ8/fy5eoCHqc/HVq1emoDSOgKFR6pLRcrksQHPc3NyU8/PzAk0iYGiMGi4OktBM9blpCkOTCBgao75ZF2imGi+Xl5cFmkLA0Bh1TA00l+VdmkTAAABxBAyN4TRNaLb6t2GgKQQMjXF4eFh6vV4Bmmk8HhdoCgFDY9S//vnJJ58UoHmm06kpKY0iYGiUepA0poZmqeFy9+7dAk0iYGiUOoW5d+9eOTg4KMD+3blzp3zxxRe75yY0iXkgjVNf7d2/f3+3B8t8Pt+dXu0PaMHtebeZY526eDFBUwkYGqvuhFsvAPAhM0EAII6AAQDiCBgAII6AAQDiCBgAII6AAQDiCBgAII6AAQDiCBgAII6AAQDiCBgAII69kOicq6urcnl5aYNIWqFuvHh4eGjTRTpHwNApdXfrGi/QFjXEZ7NZWa1WZTKZFOgKS0h0Rj3Aixfaqk4WF4tFga4QMHTG9fV1gTZbLpcFukLA0Bn1vQLQZpvNpkBXOKLTGYPBoECbjcfjAl0hYOiM0WjkTA1aqz62h0PnZdAdHu10Sj1Lo05inEZNW9Sl0Rov9VRq6BIBQ+fUg71JDEA2S0gAQBwBAwDEETAAQBwBAwDEETAAQBwBAwDEETAAQBwBAwDEETAAQBwBAwDEETAAQBx7IdE5V1dXNnOkNepmjnUjR/t70TUChk6Zz+e7eIG2qCE+m83KarXa7bYOXWEJic6oB3jxQlvVyeJisSjQFQKGzri+vi7QZsvlskBXCBg6o75XANpss9kU6ApHdDpjMBgUaLPxeFygKwQMnTEajZypQWvVx/Zw6LwMusOjnU6pZ2nUSYzTqGmLujRa46WeSg1dImDonHqwN4kByGYJCQCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCII2AAgDgCBgCIMyzsxdXVVTk/Py8AH2s+n+8uNMPR0VF5+PBhGY1GhdsnYPZgsVjsDkL37t0rAB/r5cuXAqZB6s/i9PS0fPXVV+Xg4KBwuywh7UE9CH366acFgGyr1aq8ePGicPsEzB4YNwK0h6nYfggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4ggYACCOgAEA4giYPViv1wUA+OMEzB70+/7bAdri6OiocPv8Jt2D6XRaXr9+XQDIVl+QPnz4sHD7hoVbd3BwUAaDQfntt9921yYywMeYz+eFZqjH7Xos//zzz8toNCrcPgGzJ/UBr9oB4I/x0h8AiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4AgYAiCNgAIA4NWCerlarAgDQdIvFol790l+v1z/N5/MCANB0/w+Y7Yd/z2azstlsCgBAU9VWOT8/3/T7/R/6X3755X+Xy+W/zs7OCgBAU719+3azncD8+ODBg6e7N/FuA+b7y8vLn9+8eWMSAwA0Sm2T7aBls10x+rk2S/1a792Np6enJ8Ph8LvRaPTX6XTa216XegEA2IdtrJTtgKVcXFxsVqvVjzVeHj9+vFsy6n34zc+ePXu0/abver3e19t/PikAAPvxtJ5stL3+qb7l5f0b/gfSCexetgOUpQAAAABJRU5ErkJggg==", | |
hm = [ | |
[Ate, Tte, De], | |
[vd, bd, De], | |
[cm, Ene, Ns], | |
[Nte, Pte, Ns], | |
[Pne, Bne, De], | |
[Ine, Mne, De], | |
[mne, hne, De], | |
[jee, Uee, De], | |
[Lee, Pee, De], | |
[Aee, See, Ns], | |
[lne, pne, De], | |
[tee, aee, De], | |
[jte, Ute, De], | |
[wte, Cte, De], | |
[pd, dd, De], | |
[md, hd, $ne], | |
[FQ, $Q, De], | |
[Jte, Kte, De], | |
[Jee, Kee, De], | |
[(...t) => { | |
const e = t[0]; | |
return e ? nne(e) : null | |
}, ane, De], | |
[(...t) => { | |
const e = t[0]; | |
return e ? xne(e) : null | |
}, wne, De], | |
[t => t === ce.FIRST_NOTE_EMBED, Dee, Ns] | |
], | |
gm = (t, e, n) => { | |
if (e.nodes.augmentation_placeholder) | |
for (const [s, , a] of hm) { | |
const o = s(t, S({ | |
customSchema: e | |
}, n)); | |
if (o) { | |
const r = e.nodes.augmentation_placeholder.create({ | |
request_id: jf(), | |
url: o, | |
src: a | |
}); | |
return [o, r] | |
} | |
} | |
return [null, null] | |
}, | |
bm = (t, e, n, s) => N(void 0, null, function*() { | |
const { | |
request_id: a, | |
url: o | |
} = t.attrs; | |
let r, i; | |
try { | |
for (const [c, l] of hm) | |
if (c(t.attrs.url, S({ | |
customSchema: n | |
}, s)) && (se(ae.EMBED_URL_ATTEMPTED, { | |
url: o, | |
source: "paste" | |
}), r = yield l(o, { | |
customSchema: n | |
}), se(ae.EMBED_URL_SUCCEEDED, { | |
url: o, | |
source: "paste" | |
}), r)) break | |
} catch (c) { | |
se(ae.EMBED_URL_FAILED, { | |
url: o, | |
source: "paste" | |
}), console.error("Failed to process augmentation placeholder:", t.attrs, c), 400 <= c.status && c.status < 600 && (i = c) | |
} | |
if (i) { | |
const c = cm(t.attrs.url); | |
if (setTimeout(() => { | |
Io(a, e, n, (l, u, d) => { | |
c && l.replaceRangeWith(u, u + d.nodeSize, n.text(d.attrs.url, [n.marks.link.create({ | |
title: d.attrs.url, | |
href: d.attrs.url | |
})])), l.delete(u, u + d.nodeSize) | |
}) | |
}, 0), !c) throw i | |
} else setTimeout(r ? () => { | |
Io(a, e, n, (c, l, u) => { | |
r && c.setNodeMarkup(l, r.type, r.attrs, u.marks) | |
}) | |
} : () => { | |
Io(a, e, n, (c, l, u) => { | |
c.replaceRangeWith(l, l + u.nodeSize, n.text(u.attrs.url)) | |
}) | |
}, 0) | |
}), | |
Io = (t, e, n, s) => { | |
let a = !1; | |
const o = e.state.tr; | |
return e.state.doc.descendants((r, i) => { | |
r.type === n.nodes.augmentation_placeholder && r.attrs.request_id === t && s(o, i, r) !== !1 && (a = !0) | |
}), a && e.dispatch(o), a | |
}, | |
xl = t => { | |
t.preventDefault() | |
}, | |
Une = (t, e, n) => { | |
const s = t.dom; | |
if (s) { | |
const a = s.querySelector(`[data-attrs*='{"nodeId":"${e}"']`); | |
a && (n ? a.addEventListener("dragstart", xl) : a.removeEventListener("dragstart", xl)) | |
} | |
}, | |
Vne = (t, e) => (n, s, a) => { | |
if (s) { | |
let o, r; | |
if (n.doc.descendants((i, c) => { | |
if (i.attrs.nodeId === t.nodeId) return o = i, r = c, !1 | |
}), o) { | |
const i = n.tr; | |
return i.setNodeMarkup(r, o.type, Object.assign({}, o.attrs, t)), Une(a, t.nodeId, e), s(i), !0 | |
} | |
} | |
return !0 | |
}, | |
Hne = ({ | |
url: t | |
}) => (e, n) => { | |
if (n) { | |
const s = e.tr, | |
a = e.selection.from, | |
o = a + t.length; | |
s.deleteSelection(), s.insertText(t, a), s.addMark(a, o + 1, e.schema.marks.link.create({ | |
text: t, | |
href: t | |
})), s.setSelection(Ee.create(s.doc, a, o + 1)), n(s) | |
} | |
return !0 | |
}, | |
Gne = ({ | |
url: t | |
}) => (e, n, s) => { | |
if (n) { | |
const [, a] = gm(t, e.schema, { | |
forceAllowOwnPub: !0 | |
}); | |
if (!a) return !0; | |
bm(a, s, e.schema, { | |
forceAllowOwnPub: !0 | |
}).catch(r => alert(Ft(r))); | |
const o = e.tr; | |
n(o.replaceSelectionWith(a)) | |
} | |
return !0 | |
}, | |
Wne = () => (t, e) => (e && e(t.tr.deleteSelection()), !0), | |
Jne = Pe.create({ | |
name: "digestPostEmbedExtension", | |
addCommands() { | |
return { | |
updateDigestPostEmbed: (t, e) => ({ | |
state: n, | |
dispatch: s, | |
view: a | |
}) => Vne(t, e)(n, s, a), | |
convertDigestPostEmbedToLink: t => ({ | |
state: e, | |
dispatch: n | |
}) => Hne(t)(e, n), | |
convertDigestPostEmbedToEmbeddedPost: t => ({ | |
state: e, | |
dispatch: n, | |
view: s | |
}) => Gne(t)(e, n, s), | |
deleteDigestPostEmbed: () => ({ | |
state: t, | |
dispatch: e | |
}) => Wne()(t, e) | |
} | |
} | |
}); | |
function Yne(t, e) { | |
const n = {}, | |
s = {}; | |
t.doc.descendants((c, l) => { | |
c.type === e.nodes.footnote ? n[c.attrs.number] = [l, c.nodeSize] : c.type === e.nodes.footnoteAnchor && (s[c.attrs.number] = l) | |
}); | |
const a = new Set(Object.keys(n).map(Number)), | |
o = new Set(Object.keys(s).map(Number)), | |
r = Array.from(a).filter(c => !o.has(c)).sort((c, l) => l - c), | |
i = Array.from(o).filter(c => !a.has(c)).sort((c, l) => l - c); | |
for (const c of r) { | |
const [l, u] = n[c]; | |
t.delete(l, l + u) | |
} | |
for (const c of i) { | |
const l = s[c]; | |
t.delete(l, l + 1) | |
} | |
} | |
function oi(t, e) { | |
let n = 1, | |
s = 1; | |
t.doc.descendants((a, o) => { | |
if (a.type === e.nodes.footnote) { | |
if (a.attrs.number !== n) { | |
const r = e.nodes.footnote.create({ | |
number: n | |
}, a.content); | |
t.replaceWith(o, o + a.nodeSize, r) | |
} | |
n += 1 | |
} else if (a.type === e.nodes.footnoteAnchor) { | |
if (a.attrs.number !== s) { | |
const r = e.nodes.footnoteAnchor.create({ | |
number: s | |
}); | |
t.replaceWith(o, o + a.nodeSize, r) | |
} | |
s += 1 | |
} | |
}) | |
} | |
function Kne(t, e) { | |
const n = []; | |
let s = !1; | |
t.doc.forEach((a, o) => { | |
a.type === e.nodes.footnote && (s = !0), s && a.type !== e.nodes.footnote && n.push([o, a.nodeSize]) | |
}), n.reverse().forEach(([a, o]) => { | |
t.delete(a, a + o) | |
}) | |
} | |
function vm(t, e) { | |
let n = 0; | |
t.doc.nodesBetween(0, t.selection.from, a => { | |
a.type === e.nodes.footnoteAnchor && (n += 1) | |
}); | |
const s = []; | |
return t.doc.forEach((a, o) => { | |
a.type === e.nodes.footnote && s.push(o) | |
}), n < s.length ? s[n] : t.doc.resolve(0).end() | |
} | |
function xm(t) { | |
const { | |
paragraph: e, | |
ordered_list: n, | |
bullet_list: s, | |
blockquote: a, | |
orderedList: o, | |
bulletList: r | |
} = t.schema.nodes; | |
return AZ(t, [e, n, s, a, o, r]) | |
} | |
function Xne(t, e) { | |
if (!xm(t)) return !1; | |
const { | |
schema: n | |
} = t, s = n.nodes.footnote.create({ | |
number: 1 | |
}, n.nodes.paragraph.create()), a = n.nodes.footnoteAnchor.create({ | |
number: 1 | |
}), o = t.tr, r = vm(o, n); | |
o.replaceWith(r, r, s), o.replaceSelectionWith(a), oi(o, n); | |
try { | |
o.setSelection(Ee.create(o.doc, r + 2, r + 2)).scrollIntoView() | |
} catch (i) { | |
return console.error("could not set footnote text selection"), !1 | |
} | |
return e && e(o), !0 | |
} | |
const Zne = Pe.create({ | |
name: "footnoteCustom", | |
addCommands() { | |
return { | |
insertFootnote: () => ({ | |
state: t, | |
dispatch: e | |
}) => Xne(t, e) | |
} | |
} | |
}); | |
function Qne(t, { | |
insertImageFile: e | |
}) { | |
const n = document.createElement("input"); | |
return n.type = "file", n.accept = "image/*,.heic,.heif", n.style.cssText = "display:none;", n.onchange = () => { | |
n.files && n.files.length > 0 && e(n.files[0]), n.value = "" | |
}, n.className = "insert-image-menu-item-input", document.body.appendChild(n), new ad({ | |
title: "Insert image", | |
icon: YZ, | |
active() { | |
return !1 | |
}, | |
enable(s) { | |
return pQ(s, t) | |
}, | |
run() { | |
setTimeout(() => { | |
n.click() | |
}, 0) | |
} | |
}, "image") | |
} | |
const ese = ({ | |
gallery: t | |
}) => (e, n) => (n && n(ie(e, e.schema.nodes.imageGallery.create({ | |
gallery: t, | |
isEditorNode: !0 | |
}))), !0), | |
tse = ({ | |
gallery: t | |
}) => (e, n) => (n && n(SZ(e, e.schema.nodes.imageGallery.create({ | |
gallery: t, | |
isEditorNode: !0 | |
}))), !0), | |
nse = ({ | |
url: t, | |
caption: e, | |
width: n, | |
height: s | |
}) => (a, o) => { | |
if (!o) return !1; | |
const r = a.schema, | |
i = { | |
src: t, | |
imageSize: "normal", | |
height: s != null ? s : 512, | |
width: n != null ? n : 512 | |
}, | |
c = r.nodes.image2.create(i); | |
if (e) { | |
const l = r.nodes.caption.create(null, r.text(e)), | |
u = r.nodes.captionedImage.create({}, [c, l]); | |
o(ie(a, u)) | |
} else o(ie(a, c)); | |
return !0 | |
}, | |
sse = ({ | |
url: t, | |
width: e, | |
height: n | |
}) => (s, a) => { | |
const o = s.schema, | |
r = { | |
alt: "TradingView chart", | |
src: t, | |
height: n, | |
width: e, | |
type: "image/jpg" | |
}, | |
i = o.text("Created with "), | |
c = o.text("TradingView", [o.marks.link.create({ | |
title: "TradingView", | |
href: "https://tradingview.com" | |
})]), | |
l = o.nodes.captionedImage.create(r, [o.nodes.image2.create(r), o.nodes.caption.create(null, [i, c])]); | |
return a && a(ie(s, l)), !0 | |
}, | |
ase = ({ | |
url: t, | |
width: e, | |
height: n, | |
description: s, | |
userName: a, | |
userHref: o | |
}) => (r, i) => { | |
const c = r.schema, | |
l = { | |
alt: s, | |
src: t, | |
height: n, | |
width: e, | |
type: "image/jpg" | |
}, | |
u = c.text("Photo by "), | |
d = c.text(a, [c.marks.link.create({ | |
title: a, | |
href: o | |
})]), | |
m = c.text(" on "), | |
f = c.text("Unsplash", [c.marks.link.create({ | |
title: "Unsplash", | |
href: "https://unsplash.com" | |
})]), | |
h = c.nodes.captionedImage.create(l, [c.nodes.image2.create(l), c.nodes.caption.create(null, [u, d, m, f])]); | |
return i && i(ie(r, h)), !0 | |
}, | |
ose = Pe.create({ | |
name: "imageInsert", | |
addCommands() { | |
return { | |
insertImage: t => ({ | |
state: e, | |
dispatch: n, | |
view: s | |
}) => Qne(e.schema.nodes.image2, { | |
insertImageFile: t | |
}).spec.run(e, n, s), | |
insertUnsplashImage: t => ({ | |
state: e, | |
dispatch: n | |
}) => ase(t)(e, n), | |
insertImageGallery: t => ({ | |
state: e, | |
dispatch: n | |
}) => ese(t)(e, n), | |
updateImageGallery: t => ({ | |
state: e, | |
dispatch: n | |
}) => tse(t)(e, n), | |
insertImageFromUrl: ({ | |
url: t, | |
caption: e, | |
width: n, | |
height: s | |
}) => ({ | |
state: a, | |
dispatch: o | |
}) => nse({ | |
url: t, | |
caption: e, | |
width: n, | |
height: s | |
})(a, o), | |
insertTradingViewImageFromUrl: ({ | |
url: t, | |
width: e, | |
height: n | |
}) => ({ | |
state: s, | |
dispatch: a | |
}) => sse({ | |
url: t, | |
width: e, | |
height: n | |
})(s, a) | |
} | |
} | |
}), | |
rse = n => { | |
var s = n, | |
{ | |
stroke: t = "#666666" | |
} = s, | |
e = st(s, ["stroke"]); | |
return p(vr, P(S({ | |
stroke: t | |
}, e), { | |
name: "UploadIcon", | |
svgParams: { | |
width: 20, | |
height: 20, | |
viewBox: "0 0 20 20" | |
} | |
}), p("path", { | |
d: "M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5", | |
strokeWidth: "1.5", | |
fill: "none", | |
strokeLinecap: "round", | |
strokeLinejoin: "round" | |
}), p("path", { | |
d: "M14.1667 6.66667L10 2.5L5.83337 6.66667", | |
strokeWidth: "1.5", | |
strokeLinecap: "round", | |
fill: "none", | |
strokeLinejoin: "round" | |
}), p("path", { | |
d: "M10 2.5V12.5", | |
strokeWidth: "1.5", | |
strokeLinecap: "round", | |
strokeLinejoin: "round", | |
fill: "none" | |
})) | |
}, | |
ise = "_animation_f1mog_1", | |
cse = "_offscreen_f1mog_6", | |
lse = "_onscreen_f1mog_10", | |
use = "_container_f1mog_14", | |
pse = "_drawer_f1mog_19", | |
qt = { | |
animation: ise, | |
offscreen: cse, | |
onscreen: lse, | |
container: use, | |
drawer: pse | |
}; | |
function dse({ | |
children: t, | |
wrapperId: e | |
}) { | |
let n = document.getElementById(e); | |
return n === null && (n = document.createElement("div"), n.setAttribute("id", e), document.body.appendChild(n)), n ? ya(t, n) : null | |
} | |
const mse = ({ | |
isOpen: t, | |
wrapperId: e = "drawer-portal", | |
children: n, | |
includeTransition: s = !0, | |
className: a, | |
width: o = 400 | |
}) => { | |
const r = J(null); | |
return U(() => { | |
t && r.current && r.current.focus() | |
}, [r, t]), p(dse, { | |
wrapperId: e | |
}, p(s ? fse : be, { | |
isOpen: t | |
}, p(Aa, { | |
width: o, | |
ref: r, | |
borderLeft: "detail", | |
shadow: "xl", | |
className: fe(qt.drawer, a) | |
}, p(Y, { | |
className: fe("drawer-scroll", qt.container), | |
bg: "primary", | |
overflowY: "auto", | |
shadow: "xl" | |
}, n)))) | |
}, | |
fse = ({ | |
children: t, | |
isOpen: e | |
}) => p(Ki.Root, { | |
show: e | |
}, p(Ki.Child, { | |
as: be, | |
enter: qt.animation, | |
enterFrom: qt.offscreen, | |
enterTo: qt.onscreen, | |
leave: qt.animation, | |
leaveFrom: qt.onscreen, | |
leaveTo: qt.offscreen | |
}, t)), | |
hse = "_container_10z2l_1", | |
gse = { | |
container: hse | |
}, | |
bse = ({ | |
title: t, | |
onClose: e | |
}) => t || e ? p(Aa, { | |
paddingX: { | |
mobile: 16, | |
desktop: 24 | |
}, | |
paddingTop: 24 | |
}, p(ne, { | |
alignItems: "center", | |
justifyContent: "space-between" | |
}, t && p(X.H3, { | |
weight: "bold" | |
}, t), e && p(ne, { | |
paddingLeft: 12, | |
alignItems: "center" | |
}, p(ft, { | |
size: 32, | |
"aria-label": "Close", | |
fill: "empty", | |
onClick: e | |
}, p(yr, { | |
"aria-hidden": "true" | |
}))))) : null, | |
ym = ({ | |
width: t = 400, | |
isOpen: e, | |
children: n, | |
title: s, | |
onClose: a, | |
primaryButton: o, | |
secondaryButton: r, | |
wrapperId: i, | |
variant: c = "overlay", | |
className: l, | |
drawerClassName: u | |
}) => p(mse, { | |
className: u, | |
includeTransition: c === "overlay", | |
width: t, | |
isOpen: e, | |
wrapperId: i | |
}, p(Jg, null, p(Y, { | |
className: l, | |
flex: "fill", | |
overflowY: "auto" | |
}, p(bse, { | |
title: s, | |
onClose: a | |
}), p(Aa, { | |
className: gse.container, | |
paddingX: { | |
desktop: 24, | |
mobile: 16 | |
}, | |
paddingTop: s || a ? 24 : 0 | |
}, n)), o && p(ne, { | |
gap: 8, | |
padding: 16, | |
justifyContent: "end", | |
borderY: "detail" | |
}, o, r))), | |
vse = Er((t, e) => { | |
t({ | |
mediaUploadId: e == null ? void 0 : e.id, | |
duration: e == null ? void 0 : e.duration, | |
mediaUpload: e | |
}) | |
}, 1e3, { | |
trailing: !1 | |
}), | |
wm = () => { | |
const { | |
isDrawerOpen: t, | |
setIsDrawerOpen: e, | |
setPreventChange: n | |
} = ug(); | |
return { | |
isVideoEmbedDrawerOpen: t("videoEmbed"), | |
setIsVideoEmbedDrawerOpen: s => e(P(S({}, s), { | |
drawerId: "videoEmbed", | |
variant: "overlay" | |
})), | |
setPreventChange: s => n({ | |
preventChange: s, | |
preventChangeMessage: "Please wait until the video is uploaded before closing the drawer." | |
}) | |
} | |
}, | |
xse = ({ | |
id: t, | |
editorDroppedFile: e, | |
mediaUploadId: n, | |
open: s, | |
pub: a, | |
postId: o, | |
onSave: r, | |
onClose: i, | |
setPostId: c | |
}) => { | |
const [l, u] = z(e != null ? e : null), [d, m] = z(null), [f, h] = z(!1), { | |
iString: g, | |
language: b | |
} = ue(), { | |
setPreventChange: x | |
} = wm(), { | |
mediaUpload: v, | |
loading: w, | |
error: E | |
} = Pg({ | |
mediaUploadId: n | |
}); | |
n && !d && v && m(v), U(() => { | |
u(e) | |
}, [e]); | |
const _ = () => { | |
(f || (d == null ? void 0 : d.state) === "uploaded" || (d == null ? void 0 : d.state) === "transcoded") && !confirm(g("Your video will be discarded, are you sure?")) || (se(ae.VIDEO_MODAL_CANCEL_CLICKED, { | |
has_media_upload: !!d | |
}), k()) | |
}, | |
k = () => { | |
m(null), u(null), i() | |
}, | |
M = (d == null ? void 0 : d.state) !== "transcoded"; | |
return p(ym, { | |
wrapperId: t, | |
title: g("Embed video"), | |
isOpen: s, | |
onClose: _, | |
primaryButton: p(Pt, { | |
disabled: !M, | |
text: g("Video needed") | |
}, p(Ae, { | |
priority: "primary-theme", | |
fill: "filled", | |
onClick: () => { | |
se(ae.VIDEO_MODAL_INSERT_CLICKED), vse(r, d), k() | |
}, | |
disabled: M | |
}, g("Insert"))), | |
secondaryButton: p(Ae, { | |
priority: "secondary", | |
fill: "outline", | |
onClick: _ | |
}, g("Cancel")) | |
}, E && p(X, { | |
color: "error" | |
}, E), w ? p("div", null, g("Loading...")) : p(be, null, p(X.B4, { | |
paddingBottom: 24, | |
translated: !0 | |
}, "Upload or record a video file embedded into the text."), p(Y, { | |
padding: 16, | |
radius: "md", | |
border: "detail" | |
}, p(X.B2, { | |
weight: "semibold", | |
translated: !0, | |
paddingBottom: 16 | |
}, "Create video"), p(Ta, { | |
language: b, | |
initialFile: l, | |
mediaType: "video", | |
pub: a, | |
videoFeature: "embed", | |
postId: o, | |
setPostId: c, | |
onChange: ({ | |
mediaUpload: y | |
}) => { | |
h(!1), m(y), u(null), x(!1) | |
}, | |
onUploadStarted: () => { | |
x(!0), h(!0) | |
}, | |
onUploadCanceled: () => { | |
h(!1), x(!1) | |
}, | |
mediaUpload: d, | |
mediaUploadId: d == null ? void 0 : d.id | |
})))) | |
}, | |
yse = ({ | |
editor: t, | |
pub: e, | |
postId: n, | |
setPostId: s | |
}) => { | |
const { | |
isVideoEmbedDrawerOpen: a, | |
setIsVideoEmbedDrawerOpen: o | |
} = wm(), [r, i] = z(null), [c, l] = z(!1), u = d => { | |
d.preventDefault(), l(!0) | |
}; | |
return U(() => { | |
if (c) { | |
const d = t.view.state.selection.node, | |
{ | |
mediaUploadId: m | |
} = d.attrs; | |
i(m), o({ | |
isOpen: !0 | |
}) | |
} | |
}, [c, t.view.state.selection.node]), U(() => (document.addEventListener("editSelectedVideoEmbed", u), () => { | |
document.removeEventListener("editSelectedVideoEmbed", u) | |
}), []), p(be, null, p(vu, { | |
priority: "tertiary", | |
size: "sm", | |
onClick: () => o({ | |
isOpen: !a | |
}) | |
}, p(Tu, { | |
size: 20 | |
})), p(xse, { | |
id: "videoEmbed", | |
editorDroppedFile: null, | |
mediaUploadId: r, | |
open: a, | |
pub: e, | |
postId: n, | |
onClose: () => { | |
o({ | |
isOpen: !1, | |
clearPreventChange: !0 | |
}), l(!1), i(null) | |
}, | |
onSave: ({ | |
mediaUploadId: d, | |
duration: m | |
}) => { | |
t.chain().focus().insertVideo({ | |
mediaUploadId: d, | |
duration: m | |
}).run() | |
}, | |
setPostId: s | |
})) | |
}; | |
let No, km; | |
function wse() { | |
document.getElementById("technical-analysis-chart-demo") && "TradingView" in window && (km = new window.TradingView.widget({ | |
container_id: "technical-analysis-chart-demo", | |
width: "100%", | |
height: "600", | |
symbol: "AAPL", | |
interval: "D", | |
timezone: "exchange", | |
theme: "light", | |
style: "1", | |
toolbar_bg: "#f1f3f6", | |
withdateranges: !0, | |
hide_side_toolbar: !1, | |
allow_symbol_change: !0, | |
save_image: !1, | |
show_popup_button: !0, | |
popup_width: "1000", | |
popup_height: "650", | |
locale: "en" | |
})) | |
} | |
function kse(t) { | |
return new Promise((e, n) => { | |
const s = new Image; | |
s.onload = () => e(s), s.onerror = a => n(a), s.src = t | |
}) | |
} | |
function _se(t) { | |
return N(this, null, function*() { | |
try { | |
const e = yield kse(t); | |
return { | |
height: e.height, | |
width: e.width | |
} | |
} catch (e) { | |
return console.error("Error loading image:", e), { | |
height: null, | |
width: null | |
} | |
} | |
}) | |
} | |
const Cse = () => { | |
const t = J(null); | |
return U(() => (t.current = wse, No || (No = new Promise(e => { | |
const n = document.createElement("script"); | |
n.id = "tradingview-widget-loading-script", n.src = "https://s3.tradingview.com/tv.js", n.type = "text/javascript", n.onload = e, document.head.appendChild(n) | |
})), No.then(() => t.current && t.current()), () => t.current = null), []), p("div", { | |
className: "tradingview-widget-container" | |
}, p("div", { | |
id: "technical-analysis-chart-demo" | |
})) | |
}, | |
Ese = ({ | |
isOpen: t, | |
onClose: e, | |
onInsert: n | |
}) => { | |
const [s, a] = z(!1); | |
return p(ms, { | |
isOpen: t, | |
onClose: e, | |
width: 900 | |
}, p(Sa, { | |
includeClose: !1, | |
title: "Financial Chart" | |
}), p(fs, null, p(Cse, null)), p(ds, { | |
primaryButton: p(Ae, { | |
priority: "primary-theme", | |
disabled: s, | |
onClick: () => { | |
a(!0), km.image(o => N(void 0, null, function*() { | |
const r = Ase(o), | |
i = yield he.post("/api/v1/image").send({ | |
image: r | |
}), { | |
height: c, | |
width: l | |
} = yield _se(i.body.url); | |
n({ | |
url: i.body.url, | |
height: c, | |
width: l | |
}), a(!1), e() | |
})) | |
} | |
}, "Insert"), | |
secondaryButton: p(Ae, { | |
priority: "secondary", | |
onClick: e | |
}, "Cancel") | |
})) | |
}, | |
Ase = t => { | |
const e = t.match(/^https:\/\/\w*\.tradingview\.com\/x\/([^\/]+)/); | |
if (!e || !e[1]) throw new Error("Invalid URL format"); | |
return `https://s3.tradingview.com/snapshots/${e[1].substring(0,1).toLowerCase()}/${e[1]}.png` | |
}; | |
function Sse({ | |
children: t | |
}) { | |
const e = "post-it-portal"; | |
let n = document.getElementById(e); | |
return n === null && (n = document.createElement("div"), n.setAttribute("id", e), n.setAttribute("style", "position: fixed; right: 0px; bottom: 0px; z-index: 1"), document.body.appendChild(n)), n ? ya(t, n) : null | |
} | |
const Tse = ({ | |
isOpen: t, | |
children: e, | |
className: n | |
}) => { | |
const s = J(null); | |
return U(() => { | |
t && s.current.focus() | |
}, [s, t]), t && p(Sse, null, p("div", { | |
className: fe("tw-absolute tw-bottom-0 tw-right-0 tw-mx-4 tw-mb-4 tw-w-[calc(100vw_-_2rem)] tw-rounded-lg tw-border tw-border-solid tw-border-substack-detail tw-bg-substack-bg tw-shadow-lg sm:tw-right-4 sm:tw-mx-0 sm:tw-w-[400px]", n), | |
ref: s | |
}, e)) | |
}, | |
Dse = Sa, | |
Ise = ds, | |
Nse = fs, | |
Mse = "_uploadIcon_1l1f8_1", | |
Ose = "_bodyContainer_1l1f8_6", | |
Lse = "_inputSection_1l1f8_16", | |
Rse = "_fileUpload_1l1f8_20", | |
Pse = "_compact_1l1f8_26", | |
Bse = "_images_1l1f8_54", | |
zse = "_image_1l1f8_54", | |
qse = "_removeImage_1l1f8_67", | |
Fse = "_heicConversion_1l1f8_80", | |
jse = "_removeIcon_1l1f8_89", | |
$se = "_size1_1l1f8_105", | |
Use = "_size2_1l1f8_106", | |
Vse = "_size4_1l1f8_107", | |
ot = { | |
uploadIcon: Mse, | |
bodyContainer: Ose, | |
inputSection: Lse, | |
fileUpload: Rse, | |
compact: Pse, | |
images: Bse, | |
image: zse, | |
removeImage: qse, | |
heicConversion: Fse, | |
removeIcon: jse, | |
size1: $se, | |
size2: Use, | |
size4: Vse | |
}, | |
ss = 9, | |
yl = "image/heic", | |
Hse = ({ | |
image: t, | |
onRemove: e | |
}) => { | |
const { | |
attributes: n, | |
listeners: s, | |
setNodeRef: a, | |
transform: o, | |
transition: r | |
} = Ex({ | |
id: t.id | |
}); | |
return p(xe, S(S({ | |
className: ot.image, | |
alignItems: "center", | |
justifyContent: "center", | |
ref: a, | |
style: { | |
transform: Ht.Transform.toString(o), | |
transition: r | |
} | |
}, n), s), p(xe, { | |
padding: 12, | |
justifyContent: "center", | |
alignItems: "center", | |
className: ot.removeImage, | |
onClick: e | |
}, p(Au, { | |
size: 16, | |
className: ot.removeIcon | |
})), p("img", { | |
src: t.src | |
})) | |
}, | |
Gse = (t, e) => { | |
const { | |
iString: n, | |
iPlural: s | |
} = I18N.i(e), a = ss - t; | |
switch (t) { | |
case 0: | |
return n("Add up to 9 images"); | |
case ss: | |
return ""; | |
default: | |
return s("Add up to 1 more image", "Add up to %1 more images", a) | |
} | |
}, | |
Wse = ({ | |
isOpen: t, | |
onClose: e, | |
onInsertGallery: n, | |
onUpdateGallery: s, | |
editor: a, | |
editingCurrentSelection: o, | |
postId: r | |
}) => { | |
const [i, c] = z([]), [l, u] = z({}), [d, m] = z(new Set), [f, h] = z([]), [g, b] = z([]), [x, v] = z(""), [w, E] = z(""), [_, k] = z(!1), [M, y] = z(!1), [T, D] = z({}), [C, L] = z(new Set), { | |
iString: R, | |
language: A | |
} = ue(), I = Vg(), O = Xb(tc(Mr, { | |
activationConstraint: { | |
delay: 100, | |
tolerance: 10 | |
} | |
}), tc(Ir, { | |
coordinateGetter: Tx | |
})); | |
U(() => { | |
if (o) { | |
const W = a.view.state.selection.node, | |
{ | |
gallery: le | |
} = W.attrs, | |
K = le.images.map(H => P(S({}, H), { | |
id: Za() | |
})); | |
c(K.map(H => H.type === yl ? P(S({}, H), { | |
src: q(H.src, 200) | |
}) : H)), m(new Set(K.map(H => H.id))), u(Xi(K, "id")), v(le.caption), E(le.alt) | |
} | |
}, [o]); | |
const B = () => { | |
g.forEach(W => W.abort()), f.forEach(W => W.abort()), h([]), b([]), k(!1), y(!1), j() | |
}, | |
j = () => { | |
ve(), e() | |
}, | |
G = W => { | |
const { | |
active: le, | |
over: K | |
} = W; | |
le.id !== K.id && c(H => { | |
const me = H.findIndex($ => $.id === le.id), | |
V = H.findIndex($ => $.id === K.id); | |
return Lr(H, me, V) | |
}) | |
}, | |
ke = W => N(void 0, null, function*() { | |
if (W.length + i.length > ss) { | |
I.popToast(H => p(Yi, P(S({}, H), { | |
text: R("Image gallery is limited to 9 images") | |
}))); | |
return | |
} | |
const le = [], | |
K = []; | |
for (const H of Array.from(W)) { | |
if (H.type === yl) { | |
K.push(H); | |
continue | |
} | |
const me = yield Xs(H); | |
le.push({ | |
file: H, | |
src: me, | |
id: Za() | |
}) | |
} | |
if (K.length) { | |
y(!0); | |
const H = []; | |
for (const $ of K) { | |
const He = yield Xs($); | |
H.push(he.post("/api/v1/image").send({ | |
image: He, | |
postId: r | |
})) | |
} | |
h(H); | |
const V = (yield Promise.all(H)).map(($, He) => ({ | |
type: $.body.contentType, | |
src: $.body.url, | |
id: Za(), | |
file: K[He] | |
})); | |
L(new Set(V.map($ => $.id))), D(Xi(V, "id")), le.push(...V.map($ => P(S({}, $), { | |
src: q($.src, 200) | |
}))), y(!1) | |
} | |
c(H => [...H, ...le]) | |
}), | |
Re = W => { | |
if (i.length <= 1) c([]); | |
else { | |
const le = i[W]; | |
d.has(le.id) && u(K => Kg(K, [le.id])), c(K => [...K.slice(0, W), ...K.slice(W + 1)]) | |
} | |
}, | |
ve = () => { | |
b([]), c([]), m(new Set), u({}), L(new Set), D({}), v(""), E("") | |
}, | |
_e = we(() => N(void 0, null, function*() { | |
k(!0); | |
try { | |
const W = []; | |
for (const H of i) | |
if (d.has(H.id)) { | |
const me = l[H.id], | |
{ | |
type: V, | |
src: $ | |
} = me; | |
W.push(Promise.resolve({ | |
body: { | |
contentType: V, | |
url: $ | |
} | |
})) | |
} else if (C.has(H.id)) { | |
const me = T[H.id], | |
{ | |
type: V, | |
src: $ | |
} = me; | |
W.push(Promise.resolve({ | |
body: { | |
contentType: V, | |
url: $ | |
} | |
})) | |
} else { | |
const me = he.post("/api/v1/image").send({ | |
image: H.src, | |
postId: r | |
}); | |
b(V => [...V, me]), W.push(me) | |
} | |
const K = { | |
images: (yield Promise.all(W)).map(H => ({ | |
type: H.body.contentType, | |
src: H.body.url | |
})), | |
caption: x, | |
alt: w | |
}; | |
if (i.length === 1) K.staticGalleryImage = K.images[0]; | |
else { | |
b([]); | |
const H = he.post("/api/v1/image-gallery").send({ | |
gallery: K | |
}); | |
b([H]); | |
const { | |
body: me | |
} = yield H; | |
K.staticGalleryImage = { | |
type: me.contentType, | |
src: me.url | |
} | |
} | |
o ? s(K) : n(K), k(!1), j() | |
} catch (W) { | |
W.code !== "ABORTED" && (k(!1), I.popToast(le => p(Yi, P(S({}, le), { | |
text: R("Failed to upload gallery images") | |
}))), console.error(W)) | |
} | |
}), [i, x, w]); | |
return p(Tse, { | |
isOpen: t | |
}, p(Dse, { | |
isModal: !1, | |
as: "h3", | |
title: R("Image gallery"), | |
description: Gse(i.length, A), | |
includeClose: !0, | |
onClose: j | |
}), p(Nse, null, p(Y, { | |
alignItems: "center", | |
gap: 16, | |
className: ot.bodyContainer | |
}, i.length > 0 && !M && p(xe, { | |
className: fe(ot.images, ot[`size${i.length}`]), | |
wrap: "wrap", | |
gap: 4, | |
alignItems: "start", | |
justifyContent: "start" | |
}, p(Yv, { | |
sensors: O, | |
collisionDetection: ev, | |
onDragEnd: G | |
}, p(vx, { | |
items: i.map(W => W.id), | |
strategy: Rr | |
}, i.map((W, le) => p(Hse, { | |
image: W, | |
key: W.id, | |
onRemove: () => Re(le) | |
}))))), i.length !== ss && p(ne, { | |
justifyContent: "center", | |
style: { | |
width: "100%" | |
}, | |
alignItems: "center" | |
}, M ? p(ne, { | |
alignItems: "center", | |
justifyContent: "center", | |
gap: 12, | |
className: ot.heicConversion | |
}, p(X, { | |
color: "secondary", | |
translated: !0 | |
}, "Converting HEIC images"), p(Sn, null)) : p(Nu, { | |
multiple: !0, | |
onFileSelected: ke, | |
dropCTA: R("Drop image files here"), | |
className: fe(ot.fileUpload, !!i.length && ot.compact), | |
addMode: !!i.length | |
})), !!i.length && p(be, null, p(Y, { | |
justifyContent: "start", | |
className: ot.inputSection, | |
gap: 8 | |
}, p(X.H4, { | |
weight: "bold", | |
translated: !0 | |
}, "Caption"), p(rs, { | |
placeholder: R("Add gallery caption"), | |
value: x, | |
onChange: W => v(W.target.value) | |
})), p(Y, { | |
justifyContent: "start", | |
className: ot.inputSection, | |
gap: 8 | |
}, p(X.H4, { | |
weight: "bold", | |
translated: !0 | |
}, "Alt text"), p(rs, { | |
placeholder: R("Describe images"), | |
value: w, | |
onChange: W => E(W.target.value) | |
}))))), p(Hg, { | |
paddingX: 16, | |
paddingY: 0 | |
}), p(Ise, { | |
primaryButton: p(ne, { | |
alignItems: "center", | |
gap: 8 | |
}, p(Ae, { | |
priority: "primary-theme", | |
onClick: _e, | |
disabled: !i.length || i.length > ss || _ | |
}, R(o ? "Update" : "Insert"))), | |
secondaryButton: p(ne, { | |
justifyContent: _ ? "space-between" : "end", | |
alignItems: "center", | |
flex: "grow" | |
}, _ && p(ne, { | |
gap: 8, | |
alignItems: "center", | |
flex: "grow" | |
}, p(Sn, null), _ && p(X.Meta, { | |
translated: !0 | |
}, "Loading...")), p(Ae, { | |
priority: "secondary", | |
onClick: B | |
}, R("Cancel"))) | |
})) | |
}, | |
Jse = t => p(vr, P(S({}, t), { | |
className: "filled-icon", | |
name: "UnsplashIcon", | |
svgParams: { | |
height: 24, | |
width: 24, | |
fill: "#1C110B" | |
} | |
}), p("path", { | |
d: "M15.3364 10.9703H21V21H3V10.9703H8.66362V15.9748H15.3158V10.9703H15.3364ZM15.3364 3H8.66362V8.02517H15.3158V3H15.3364Z", | |
strokeWidth: 0 | |
})), | |
wl = 4, | |
kl = 15, | |
Yse = 540, | |
_m = "random", | |
Kse = 380, | |
_l = t => t && t.toLowerCase().trim() || _m, | |
Xse = ({ | |
open: t, | |
onAfterClose: e, | |
onSelectStockImage: n | |
}) => { | |
const [s, a] = z(""), [o, r] = z(null), [i, c] = z({}), [l, u] = z(!1), [d, m] = z(!1), [f, h] = z(null), g = J(null), b = J(null), x = J(null), v = J(null), w = J(!1), E = f && f.screen <= Yse ? 2 : 3, _ = f ? Math.floor((f.content - wl * (E - 1)) / E) : 0, { | |
result: k | |
} = ag(() => Z(() => | |
import ("./masonry-ccd45004.js").then(O => O.m), ["assets/masonry-ccd45004.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js"]), [], { | |
auto: !0 | |
}), M = k == null ? void 0 : k.default, { | |
iString: y, | |
iTemplate: T | |
} = ue(); | |
U(() => { | |
const O = () => { | |
const B = parseInt(window.getComputedStyle(b.current).getPropertyValue("width"), 10), | |
j = window.innerWidth; | |
h({ | |
content: B, | |
screen: j | |
}) | |
}; | |
return t && (g.current.open(), window.addEventListener("resize", O), setTimeout(() => { | |
O(), b.current.focus() | |
}, 50)), () => { | |
r(null), a(""), window.removeEventListener("resize", O) | |
} | |
}, [t]); | |
const D = we(() => N(void 0, null, function*() { | |
if (!o || !o.hasMore || w.current) return; | |
w.current = !0; | |
const O = _l(s), | |
B = yield he.get("/api/v1/stock-photos").query({ | |
search: O, | |
offset: o.results.length, | |
limit: kl | |
}), j = P(S({}, o), { | |
results: [...o.results, ...B.body.results], | |
hasMore: B.body.hasMore | |
}); | |
r(j), c(G => P(S({}, G), { | |
[O]: j | |
})), w.current = !1 | |
}), [o, s]); | |
U(() => { | |
const O = Er(j => { | |
const { | |
scrollTop: G, | |
clientHeight: ke, | |
scrollHeight: Re | |
} = j.target; | |
G > Re - ke - Kse && D() | |
}, 200, { | |
leading: !1 | |
}), | |
B = x.current; | |
return t && (B == null || B.addEventListener("scroll", O)), () => { | |
B == null || B.removeEventListener("scroll", O) | |
} | |
}, [t, D]), U(() => { | |
var O; | |
!M || !o || !_ || (o.results.length === 0 || l || !t ? ((O = v.current) == null || O.destroy(), v.current = null) : v.current ? (v.current.reloadItems(), v.current.layout()) : setTimeout(() => { | |
v.current = new M(".insert-image-modal-images", { | |
itemSelector: ".insert-image-modal-item", | |
transitionDuration: 0, | |
gutter: wl | |
}) | |
}, 50)) | |
}, [o, l, _, t]); | |
const C = we(O => N(void 0, null, function*() { | |
const B = _l(O); | |
if (i[B]) { | |
u(!1), r(i[B]), x.current.scrollTop = 0; | |
return | |
} | |
try { | |
const j = yield he.get("/api/v1/stock-photos").query({ | |
search: B, | |
offset: 0, | |
limit: kl | |
}), G = { | |
results: j.body.results, | |
hasMore: j.body.hasMore, | |
term: O | |
}; | |
u(!1), r(G), c(ke => P(S({}, ke), { | |
[B]: G | |
})), x.current.scrollTop = 0 | |
} catch (j) { | |
u(!0) | |
} | |
}), [i]), | |
L = we(wr(C, 400), [C]); | |
U(() => { | |
t && !o && C(_m) | |
}, [C, t, o]); | |
const R = O => N(void 0, null, function*() { | |
a(O), yield L(O) | |
}), | |
A = O => N(void 0, null, function*() { | |
m(!0), yield he.post("/api/v1/stock-photos").send({ | |
downloadLocation: O.links.download_location | |
}), n({ | |
url: O.urls.regular, | |
width: O.width, | |
height: O.height, | |
description: O.alt_description, | |
userName: O.user.name, | |
userHref: !!O.user.links.html | |
}), m(!1), g.current.close() | |
}), | |
I = document.querySelector(".editor"); | |
return I ? ya(p("div", { | |
onMouseDown: O => { | |
O.stopPropagation() | |
} | |
}, p(Eu, { | |
ref: g, | |
closePill: !0, | |
className: "insert-media-modal insert-image-modal force-light-theme", | |
onClose: e | |
}, p("h3", { | |
className: "insert-media-modal-header" | |
}, y("Search images")), p("div", { | |
className: "form new-form" | |
}, p("input", { | |
className: "insert-image-modal-search", | |
ref: b, | |
type: "text", | |
"aria-label": y("Search"), | |
placeholder: y("Search..."), | |
value: s, | |
onChange: O => { | |
R(O.target.value) | |
} | |
})), p("div", { | |
className: "insert-image-modal-byline" | |
}, p(Jse, { | |
height: 14 | |
}), " ", y("Powered by Unsplash")), p("div", { | |
className: "insert-image-modal-body", | |
ref: x | |
}, l ? p("div", { | |
className: "insert-image-modal-empty" | |
}, y("There was an error searching photos. Please try again later.")) : o && o.results.length > 0 ? p("div", { | |
className: "insert-image-modal-images" | |
}, o.results.map(O => p("div", { | |
key: O.id, | |
className: "insert-image-modal-item" | |
}, p("img", { | |
src: O.urls.small, | |
alt: O.alt_description, | |
width: _, | |
height: O.height / O.width * _ | |
}), p("div", { | |
className: "insert-image-modal-item-footer" | |
}, p("div", { | |
className: "insert-image-modal-item-text" | |
}, p("div", { | |
className: "insert-image-modal-item-title" | |
}, O.description), p("div", { | |
className: "insert-image-modal-item-name" | |
}, O.user.name)), p(Vs, { | |
className: "btn btn-secondary btn-small btn-translucent-border", | |
disabled: d, | |
onClick: () => { | |
A(O) | |
} | |
}, p("span", null, y("Insert"))))))) : o && o.results.length === 0 ? p("div", { | |
className: "insert-image-modal-empty" | |
}, T `No results for ${`“${o.term}”`}`) : null))), I) : null | |
}, | |
Zse = t => { | |
var s; | |
const { | |
iString: e | |
} = ue(), n = ((s = t.percentComplete) != null ? s : 0) * 100; | |
return p(ne, { | |
gap: 16, | |
flex: "grow" | |
}, p(xe, { | |
radius: "xs", | |
height: 40, | |
width: 40, | |
bg: "secondary", | |
alignItems: "center", | |
justifyContent: "center" | |
}, p(Iu, { | |
size: 24, | |
color: "var(--color-fg-tertiary)" | |
})), p(Y, { | |
flex: "grow", | |
gap: 4 | |
}, p(ne, { | |
justifyContent: "space-between", | |
alignItems: "center" | |
}, p(X.B4, { | |
color: "primary", | |
weight: "semibold" | |
}, e("Upload audio file")), p(ne, { | |
cursor: "pointer", | |
onClick: t.onCancel | |
}, p(yr, { | |
size: 20, | |
color: "var(--color-fg-secondary)" | |
}))), p(ne, { | |
flex: "grow", | |
alignItems: "center", | |
gap: 32 | |
}, p(ne, { | |
flex: "grow", | |
radius: "full", | |
bg: "tertiary", | |
style: { | |
height: "6px" | |
} | |
}, p(ne, { | |
radius: "full", | |
style: { | |
width: `${n}%`, | |
backgroundColor: "var(--color-fg-primary)" | |
} | |
})), p(ne, { | |
width: 32, | |
justifyContent: "end" | |
}, p(X.Digit, { | |
color: "primary" | |
}, n.toFixed(0), "%"))))) | |
}, | |
Qse = ({ | |
accept: t, | |
onUploadClicked: e, | |
onFileSelected: n, | |
onRecord: s, | |
hideRecorder: a = !1, | |
hideReset: o = !0, | |
onResetToDefault: r | |
}) => { | |
const i = J(null), | |
{ | |
iString: c | |
} = ue(); | |
return p(ne, { | |
gap: 16 | |
}, p(xe, { | |
radius: "xs", | |
height: 40, | |
width: 40, | |
bg: "secondary", | |
alignItems: "center", | |
justifyContent: "center" | |
}, p(Iu, { | |
size: 24, | |
color: "var(--color-fg-tertiary)" | |
})), p(Y, { | |
gap: 4 | |
}, p(X.B4, { | |
color: "primary", | |
weight: "semibold" | |
}, c("Upload audio file")), p(ne, { | |
gap: 16 | |
}, p(X.B4, { | |
color: "pub-accent", | |
weight: "semibold", | |
decoration: "underline", | |
cursor: "pointer", | |
onClick: () => { | |
i.current && (i.current.click(), e(i.current)) | |
} | |
}, c("Select file")), !a && p(X.B4, { | |
weight: "semibold", | |
decoration: "underline", | |
cursor: "pointer", | |
color: "secondary", | |
onClick: s | |
}, c("Record audio")), !o && p(X.B4, { | |
color: "secondary", | |
weight: "semibold", | |
decoration: "underline", | |
cursor: "pointer", | |
onClick: r | |
}, c("Reset audio to default"))), p("input", { | |
style: { | |
display: "none" | |
}, | |
ref: i, | |
type: "file", | |
accept: t, | |
onChange: l => { | |
l.target != null && n(l.target.files[0]) | |
} | |
}))) | |
}; | |
class eae { | |
constructor({ | |
channels: e = 1, | |
sampleRate: n = 44100, | |
bitRate: s = 192 | |
} = {}) { | |
const { | |
Mp3Encoder: a | |
} = window.lamejs; | |
this.mp3encoder = new a(e, n, s), this.chunks = [] | |
} | |
append(e) { | |
const n = this.mp3encoder.encodeBuffer(tae(e)); | |
if (n.length > 0) return this.chunks.push(n), n | |
} | |
flush() { | |
if (this.chunks.length > 0) { | |
const e = new Blob(this.chunks, { | |
type: "audio/mp3" | |
}); | |
return this.chunks = [], e | |
} | |
} | |
} | |
function tae(t) { | |
const e = t.length, | |
n = new Int16Array(e); | |
for (let s = 0; s < e; s++) n[s] = Math.max(-32768, Math.min(32768, t[s] * (t[s] < 0 ? 32768 : 32767))); | |
return n | |
} | |
class ee { | |
static get STATE() { | |
return { | |
STOPPED: "stopped", | |
STARTING: "starting", | |
STARTED: "started", | |
STOPPING: "stopping" | |
} | |
} | |
static isSupported() { | |
return !(typeof window == "undefined" || !window.navigator || !window.navigator.mediaDevices || !window.navigator.mediaDevices.getUserMedia || !window.AudioContext && !window.webkitAudioContext || !window.Float32Array || !window.Blob || !window.URL || !window.Worker) | |
} | |
constructor(e = {}) { | |
this.bufferSize = 4096, this.sampleRate = 44100, this.state = ee.STATE.STOPPED, Object.assign(this, e) | |
} | |
get duration() { | |
var e; | |
return (e = this.startedAts) != null && e.length ? this.startedAts.reduce((s, a, o) => { | |
if (this.endedAts[o]) { | |
const r = this.endedAts[o] - a; | |
return s + r | |
} | |
return s + (Date.now() - a) | |
}, 0) / 1e3 : null | |
} | |
get volume() { | |
if (this.state !== ee.STATE.STARTED || !this.analyser) return 0; | |
const e = new Uint8Array(this.analyser.frequencyBinCount); | |
return this.analyser.getByteFrequencyData(e), Math.max(...e) / 255 | |
} | |
startMicrophone() { | |
return N(this, null, function*() { | |
if (!ee.isSupported()) return alert("Recording is not supported on this device."), !1; | |
if (this.microphone) try { | |
return yield this.microphone, !0 | |
} catch (e) { | |
return !1 | |
} | |
try { | |
this.microphone = navigator.mediaDevices.getUserMedia({ | |
audio: !0 | |
}), this.microphone = yield this.microphone, this.microphone.getTracks().forEach(e => { | |
e.addEventListener("ended", () => { | |
this.state === ee.STATE.STARTED && this.stop() | |
}) | |
}) | |
} catch (e) { | |
console.error(e), this.microphone = null | |
} | |
return this.microphone ? !0 : (alert("Unable to access the microphone! Please check your browser settings."), !1) | |
}) | |
} | |
stopMicrophone() { | |
return N(this, null, function*() { | |
if (this.microphone) { | |
if (!this.microphone.getTracks) try { | |
yield this.microphone | |
} catch (e) { | |
return | |
} | |
if (this.state === ee.STATE.STARTED) { | |
yield this.stop(); | |
return | |
} | |
this.microphone.getTracks().forEach(e => e.stop()), this.microphone = null | |
} | |
}) | |
} | |
start() { | |
return N(this, arguments, function*({ | |
startAt: e = null | |
} = {}) { | |
if (!ee.isSupported()) throw new Error("Recording is not supported on this device"); | |
if (this.state === ee.STATE.STOPPING) throw new Error("Currently stopping last recording"); | |
if ([ee.STATE.STARTING, ee.STATE.STARTED].includes(this.state)) return; | |
if (clearTimeout(this.startingTimeout), this.state = ee.STATE.STARTING, this.onStarting && this.onStarting(), !(yield this.startMicrophone())) { | |
this.state = ee.STATE.STOPPED, this.onStopped && this.onStopped(); | |
return | |
} | |
const n = window.AudioContext || window.webkitAudioContext; | |
try { | |
if (this.audioContext = new n({ | |
sampleRate: this.sampleRate | |
}), this.mp3encoder = new eae({ | |
sampleRate: this.audioContext.sampleRate | |
}), this.analyser = this.audioContext.createAnalyser(), this.analyser.smoothingTimeConstant = .2, this.analyser.fftSize = 1024, this.audioContext.createJavaScriptNode) this.audioNode = this.audioContext.createJavaScriptNode(this.bufferSize, 1, 1); | |
else if (this.audioContext.createScriptProcessor) this.audioNode = this.audioContext.createScriptProcessor(this.bufferSize, 1, 1); | |
else throw new Error("Unable to construct audio node"); | |
this.audioInput = this.audioContext.createMediaStreamSource(this.microphone), this.audioInput.connect(this.analyser), this.analyser.connect(this.audioNode), this.audioNode.connect(this.audioContext.destination), this.startingTimeout = setTimeout(() => { | |
this.audioNode.addEventListener("audioprocess", s => this.onAudioProcess(s)), this.state = ee.STATE.STARTED, this.startedAts = [Date.now()], this.endedAts = [], this.onStarted && this.onStarted() | |
}, e ? Math.max(Math.max(Date.now(), +e) - Date.now(), 0) : 2e3) | |
} catch (s) { | |
this.state = ee.STATE.STOPPED, this.onStopped && this.onStopped(), console.error("Unable to access the microphone!", s), alert("Unable to setup microphone!") | |
} | |
}) | |
} | |
stop() { | |
return N(this, arguments, function*({ | |
dropRecording: e = !1, | |
stopMicrophone: n = !0 | |
} = {}) { | |
if (!ee.isSupported()) throw new Error("Recording is not supported on this device"); | |
if ([ee.STATE.STOPPING, ee.STATE.STOPPED].includes(this.state)) return; | |
if (this.state === ee.STATE.STARTING) throw new Error("Currently starting new recording"); | |
clearTimeout(this.startingTimeout), this.state = ee.STATE.STOPPING, this.onStopping && this.onStopping(), this.audioInput.disconnect(), this.analyser.disconnect(), this.audioNode.disconnect(), this.audioContext.close(), this.audioContext = null, this.analyser = null, this.audioNode = null, this.audioInput = null, n && (yield this.stopMicrophone()); | |
const s = this.mp3encoder.flush(); | |
this.mp3encoder = null, this.state = ee.STATE.STOPPED, this.endedAts.push(Date.now()), this.onStopped && this.onStopped(e ? null : s) | |
}) | |
} | |
suspend() { | |
return N(this, null, function*() { | |
this.audioContext && (this.endedAts.push(Date.now()), this.audioContext.suspend()) | |
}) | |
} | |
resume() { | |
return N(this, null, function*() { | |
this.audioContext && (this.startedAts.push(Date.now()), this.audioContext.resume()) | |
}) | |
} | |
onAudioProcess(e) { | |
var s; | |
if (this.state !== ee.STATE.STARTED) return; | |
this.mp3encoder.append(e.inputBuffer.getChannelData(0)) && ((s = this.onChunk) == null || s.call(this)) | |
} | |
} | |
const nae = "_outerRing_ok6e9_1", | |
sae = "_innerRing_ok6e9_5", | |
aae = "_accentRing_ok6e9_9", | |
oae = "_accentBackgroundRing_ok6e9_14", | |
rae = "_secondaryRing_ok6e9_18", | |
iae = "_audioRecorderControls_ok6e9_24", | |
cae = "_audioRecorderDuration_ok6e9_29", | |
lae = "_starting_ok6e9_36", | |
uae = "_started_ok6e9_40", | |
pae = "_stopping_ok6e9_41", | |
dae = "_audioRecorderButton_ok6e9_46", | |
mae = "_audioRecorderButtonVolume_ok6e9_73", | |
fae = "_audioRecorderButtonInner_ok6e9_86", | |
Tt = { | |
outerRing: nae, | |
innerRing: sae, | |
accentRing: aae, | |
accentBackgroundRing: oae, | |
secondaryRing: rae, | |
audioRecorderControls: iae, | |
audioRecorderDuration: cae, | |
starting: lae, | |
started: uae, | |
stopping: pae, | |
audioRecorderButton: dae, | |
audioRecorderButtonVolume: mae, | |
audioRecorderButtonInner: fae | |
}; | |
class Cm extends nu { | |
constructor(e, n) { | |
super(e, n), this.onButtonClick = () => { | |
this.recorder.state === ee.STATE.STOPPED ? (se(ae.AUDIO_PRESS_RECORD_CLICKED, { | |
feature: this.props.feature | |
}), this.setState({ | |
countDown: 3 | |
}), setTimeout(() => this.setState({ | |
countDown: 2 | |
}), 700), setTimeout(() => this.setState({ | |
countDown: 1 | |
}), 1400), this.recorder.start({ | |
startAt: Date.now() + 2100 | |
})) : (this.recorder.state === ee.STATE.STARTING || this.recorder.state === ee.STATE.STARTED) && this.recorder.stop() | |
}, this.onCloseClicked = () => { | |
var s, a; | |
if (this.recorder.state === ee.STATE.STARTED) { | |
if (this.recorder.suspend(), !confirm("Your recording will be discarded, are you sure?")) { | |
this.recorder.resume(); | |
return | |
} | |
this.recorder.stop({ | |
dropRecording: !0 | |
}), (a = (s = this.props).onRecorderStopped) == null || a.call(s) | |
} else this.recorder.state === ee.STATE.STARTING ? this.recorder.onStarted = () => this.recorder.stop({ | |
dropRecording: !0 | |
}) : this.recorder.state === ee.STATE.STOPPED && this.recorder.stopMicrophone(); | |
this.props.onCancel && this.props.onCancel() | |
}, this.recorder = new ee({ | |
onStarting: () => this.onRecorderChanged(), | |
onStarted: () => this.onRecorderStarted(), | |
onChunk: () => this.onRecorderChanged(), | |
onStopping: () => this.onRecorderChanged(), | |
onStopped: s => this.onRecorderChanged(s) | |
}), this.state = { | |
countDown: 3, | |
recorderState: this.recorder.state, | |
recorderDuration: this.recorder.duration, | |
recorderVolume: this.recorder.volume | |
} | |
} | |
componentDidMount() { | |
return N(this, null, function*() { | |
var e, n; | |
(yield this.recorder.startMicrophone()) || (n = (e = this.props).onCancel) == null || n.call(e) | |
}) | |
} | |
componentWillUnmount() { | |
this.onCloseClicked() | |
} | |
onRecorderStarted() { | |
var e, n; | |
(n = (e = this.props).onRecorderStarted) == null || n.call(e), this.onRecorderChanged(null) | |
} | |
onRecorderChanged(e) { | |
var n, s; | |
this.setState({ | |
recorderState: this.recorder.state, | |
recorderDuration: this.recorder.duration, | |
recorderVolume: this.recorder.volume | |
}), e && ((s = (n = this.props).onComplete) == null || s.call(n, e)) | |
} | |
render({ | |
iString: e | |
}, { | |
recorderState: n, | |
recorderDuration: s, | |
recorderVolume: a, | |
countDown: o | |
}) { | |
var r; | |
return p(ne, { | |
flex: "grow", | |
gap: 16, | |
alignItems: "center", | |
justifyContent: "space-between" | |
}, n === ee.STATE.STOPPED && p(xe, { | |
alignItems: "center", | |
justifyContent: "center", | |
gap: 16 | |
}, p(xe, { | |
radius: "full", | |
className: fe(Tt.outerRing), | |
height: 30, | |
width: 30, | |
border: "detail", | |
onClick: this.onButtonClick, | |
cursor: "pointer" | |
}, p(xe, { | |
className: fe(Tt.innerRing, Tt.accentRing, Tt.accentBackgroundRing), | |
bg: "accent-red", | |
radius: "full" | |
})), p(X.B3, { | |
color: "primary", | |
weight: "semibold" | |
}, (r = e == null ? void 0 : e("Start recording")) != null ? r : "Start recording")), [ee.STATE.STARTED, ee.STATE.STARTING].includes(n) && p(xe, { | |
alignItems: "center", | |
justifyContent: "center", | |
gap: 16 | |
}, p(xe, { | |
radius: "full", | |
className: fe(Tt.outerRing, Tt.accentRing), | |
height: 30, | |
width: 30, | |
border: "detail", | |
onClick: this.onButtonClick, | |
cursor: "pointer" | |
}, p(xe, { | |
className: fe(Tt.innerRing, Tt.accentRing, Tt.accentBackgroundRing), | |
bg: "accent-red" | |
})), n === ee.STATE.STARTING && p(X.B3, { | |
color: "primary", | |
weight: "semibold" | |
}, o, "..."), n === ee.STATE.STARTED && p(X.B3, { | |
color: "primary", | |
weight: "semibold" | |
}, Hl(s != null ? s : 0))), p(ft, { | |
priority: "secondary", | |
fill: "empty", | |
rounded: !0, | |
onClick: this.onCloseClicked | |
}, p(yr, null))) | |
} | |
} | |
Cm.contextType = Bh; | |
const hae = zh(Cm); | |
class gae extends xg { | |
constructor(e, n) { | |
var s; | |
super(e, n), this.state = { | |
recording: (s = this.props.skipToRecordStep) != null ? s : !1 | |
} | |
} | |
trackUploadClicked() { | |
se(ae.UPLOAD_EPISODE_AUDIO_CLICKED) | |
} | |
render({ | |
onRecorderStarted: e, | |
onRecorderStopped: n, | |
feature: s, | |
mediaUpload: a, | |
transcodeTimeLeft: o, | |
removeUpload: r, | |
hideRecorder: i, | |
hideReset: c | |
}, { | |
preuploading: l, | |
uploading: u, | |
recording: d, | |
percentComplete: m | |
}) { | |
var E, _, k, M; | |
const f = (a == null ? void 0 : a.state) === "uploaded", | |
h = d, | |
g = !h && (u || l), | |
b = !h && !g && !f, | |
{ | |
iString: x | |
} = this.i18n, | |
v = (_ = (E = this.props.components) == null ? void 0 : E.AudioDecider) != null ? _ : Qse, | |
w = (M = (k = this.props.components) == null ? void 0 : k.AudioRecorder) != null ? M : hae; | |
return p(ne, { | |
flex: "grow", | |
border: "detail", | |
radius: "sm", | |
alignItems: "center", | |
paddingY: 16, | |
paddingX: 12, | |
gap: 8 | |
}, b && p(v, P(S({}, this.props), { | |
accept: this.accepts, | |
onUploadClicked: this.onUploadClicked, | |
onFileSelected: this.onFileSelected, | |
onRecord: () => this.setState({ | |
recording: !0 | |
}), | |
hideRecorder: i, | |
hideReset: c, | |
onResetToDefault: this.props.onResetToDefault | |
})), h && p(w, { | |
feature: s, | |
onComplete: y => { | |
this.setState({ | |
recording: !1 | |
}), y && this.uploadToS3(y), n == null || n() | |
}, | |
onCancel: () => { | |
this.setState({ | |
recording: !1 | |
}) | |
}, | |
onRecorderStarted: e, | |
onRecorderStopped: n | |
}), g && p(Zse, { | |
percentComplete: m, | |
onCancel: () => { | |
var y, T; | |
confirm(x("Are you sure you want to cancel the upload?")) && (this.cancelUpload(), (T = (y = this.props).onUploadCanceled) == null || T.call(y)) | |
} | |
}), f && p(yg, { | |
onCancel: r | |
})) | |
} | |
} | |
class ri extends wg { | |
constructor(e, n) { | |
super(e, n), this.removeAudio = () => { | |
var s, a; | |
this.props.legacyPodcastUrl ? (a = (s = this.props).onRemoveLegacyUrl) == null || a.call(s) : this.removeUpload() | |
}, this.state = { | |
mediaUploadId: e.mediaUploadId, | |
mediaUpload: e.mediaUpload || null, | |
estimatedTimeLeftAt: null, | |
timeLeft: 0, | |
percentComplete: 1, | |
dismissedAudioErrorModal: !1 | |
} | |
} | |
isPodcast() { | |
return [An.Podcast, An.PodcastPreview].includes(this.props.feature) | |
} | |
render({ | |
onDeleteErroredUpload: e, | |
feature: n, | |
pub: s, | |
initialFile: a, | |
postId: o, | |
setPostId: r, | |
onRecorderStopped: i, | |
onError: c, | |
onRecorderStarted: l, | |
onUploadStarted: u, | |
legacyPodcastUrl: d, | |
onUploadCanceled: m, | |
skipToRecordStep: f, | |
hideRecorder: h, | |
hideReset: g, | |
components: b | |
}, { | |
mediaUpload: x, | |
timeLeft: v, | |
dismissedAudioErrorModal: w | |
}) { | |
var M, y; | |
const E = (M = b == null ? void 0 : b.AuditionPlayer) != null ? M : Dg, | |
_ = (y = b == null ? void 0 : b.AudioUploader) != null ? y : gae, | |
k = _a(x); | |
return d ? p(Gi, { | |
feature: n, | |
pub: s, | |
src: d, | |
render: T => p(E, P(S({}, T), { | |
onRemove: this.removeAudio | |
})) | |
}) : p(be, null, (!x || x.state !== "transcoded" || k) && p(_, { | |
feature: n, | |
initialFile: a, | |
mediaType: "audio", | |
postId: o, | |
onUpload: T => this.onMediaUpload({ | |
mediaUpload: T | |
}), | |
setPostId: r, | |
onRecorderStarted: l, | |
onRecorderStopped: i, | |
onError: c, | |
mediaUpload: x, | |
removeUpload: this.removeUpload, | |
onUploadCanceled: m, | |
onUploadStarted: u, | |
transcodeTimeLeft: v, | |
skipToRecordStep: f, | |
language: this.props.language, | |
hideRecorder: h, | |
hideReset: g, | |
onResetToDefault: this.props.onResetToDefault | |
}), (x == null ? void 0 : x.state) === "transcoded" && p(Gi, { | |
feature: n, | |
pub: s, | |
src: x ? En(`/api/v1/audio/upload/${x.id}/src`) : d, | |
render: T => p(E, P(S({}, T), { | |
onRemove: this.removeAudio | |
})), | |
duration: x == null ? void 0 : x.duration, | |
playbackRate: 1 | |
}), k && p(xr, { | |
isOpen: !w, | |
onDeleteAudio: () => { | |
e ? e({ | |
skipConfirm: !0 | |
}) : this.removeAudio() | |
}, | |
onDismiss: () => { | |
this.setState({ | |
dismissedAudioErrorModal: !0 | |
}) | |
} | |
})) | |
} | |
} | |
const bae = Er((t, e) => { | |
t({ | |
mediaUploadId: e == null ? void 0 : e.id, | |
duration: e == null ? void 0 : e.duration, | |
mediaUpload: e | |
}) | |
}, 1e3, { | |
trailing: !1 | |
}), | |
vae = ({ | |
id: t, | |
droppedFile: e, | |
open: n, | |
pub: s, | |
postId: a, | |
onSave: o, | |
onClose: r, | |
setPostId: i | |
}) => { | |
const [c, l] = z(e != null ? e : null), [u, d] = z(null), [m, f] = z(!1), { | |
iString: h, | |
language: g | |
} = ue(); | |
U(() => { | |
l(e) | |
}, [e]); | |
const b = () => { | |
m && !confirm(h("Your audio will be discarded, are you sure?")) || (se(ae.AUDIO_MODAL_CANCEL_CLICKED, { | |
has_media_upload: !!u | |
}), x()) | |
}, | |
x = () => { | |
d(null), l(null), r() | |
}, | |
v = (u == null ? void 0 : u.state) !== "transcoded"; | |
return p(ym, { | |
wrapperId: t, | |
title: h(An.Embed), | |
isOpen: n, | |
onClose: b, | |
primaryButton: p(Pt, { | |
disabled: !v, | |
text: h("Audio needed") | |
}, p(Ae, { | |
priority: "primary-theme", | |
fill: "filled", | |
onClick: () => { | |
se(ae.AUDIO_MODAL_INSERT_CLICKED), bae(o, u), x() | |
}, | |
disabled: v | |
}, h("Insert"))), | |
secondaryButton: p(Ae, { | |
priority: "secondary", | |
fill: "outline", | |
onClick: b | |
}, h("Cancel")) | |
}, p(X.B4, { | |
paddingBottom: 24 | |
}, h(Jh.Embed)), p(Y, { | |
padding: 16, | |
radius: "md", | |
border: "detail" | |
}, p(X.B2, { | |
weight: "semibold", | |
translated: !0, | |
paddingBottom: 16 | |
}, "Create audio"), p(ri, { | |
initialFile: c, | |
feature: An.Embed, | |
mediaType: "audio", | |
pub: s, | |
postId: a, | |
setPostId: i, | |
onChange: ({ | |
mediaUpload: w | |
}) => { | |
f(!1), d(w), l(null) | |
}, | |
onUploadStarted: () => { | |
f(!0) | |
}, | |
onUploadCanceled: () => { | |
f(!1) | |
}, | |
mediaUpload: u, | |
mediaUploadId: u == null ? void 0 : u.id, | |
onRemoveLegacyUrl: null, | |
language: g | |
}))) | |
}, | |
xae = "_surveyModalDropdown_6u9jk_1", | |
yae = { | |
surveyModalDropdown: xae | |
}, | |
wae = ({ | |
isOpen: t, | |
onInsert: e, | |
onClose: n, | |
pub: s | |
}) => { | |
var b, x; | |
const { | |
iString: a, | |
iTemplate: o | |
} = ue(), [r, i] = z(null), [c, l] = z(a("Start Survey")), { | |
isLoading: u, | |
result: d, | |
refetch: m | |
} = $o({ | |
pathname: "/api/v1/survey", | |
auto: !1 | |
}), { | |
isLoading: f, | |
result: h, | |
refetch: g | |
} = $o({ | |
pathname: "/api/v1/survey", | |
auto: !1, | |
method: "POST", | |
json: { | |
title: (b = d == null ? void 0 : d.surveys) != null && b.length ? o `Reader Survey ${((x=d==null?void 0:d.surveys)==null?void 0:x.length)+1}` : o `Reader Survey` | |
} | |
}); | |
return U(() => { | |
const v = w => { | |
w.data === "surveySavedInPopup" && m() | |
}; | |
return t && !f && h && (window.open($f(s, h.id, { | |
popup: !0 | |
}), "_blank"), window.addEventListener("message", v)), () => { | |
window.removeEventListener("message", v) | |
} | |
}, [t, f, h]), U(() => { | |
t && !d && !u && m() | |
}, [t, d, m, u]), p(ms, { | |
isOpen: t | |
}, p(Y, { | |
paddingY: 40, | |
paddingX: 16, | |
gap: 24 | |
}, u && p(Sn, null), !u && d && p(Y, { | |
gap: 32 | |
}, p(X.H3, null, "Insert a Survey"), p(Y, { | |
gap: 4 | |
}, p(X.B4, { | |
weight: "semibold" | |
}, "Survey to insert"), p(Xg, { | |
placeholder: a("Select a reader survey"), | |
value: r, | |
onChange: v => { | |
if (v === "new") { | |
g(); | |
return | |
} | |
i(v) | |
}, | |
options: d.surveys.map(v => ({ | |
value: v.id, | |
label: v.title | |
})).concat({ | |
value: "new", | |
label: "Create new survey" | |
}), | |
buttonClassName: yae.surveyModalDropdown | |
})), p(Y, { | |
gap: 4 | |
}, p(X.B4, { | |
weight: "semibold" | |
}, "Button text"), p(rs, { | |
value: c, | |
onChange: v => { | |
l(v.target.value) | |
} | |
})), p(ne, { | |
alignItems: "center", | |
justifyContent: "end", | |
gap: 8 | |
}, p(Ae, { | |
priority: "primary-theme", | |
disabled: !r || f, | |
onClick: () => { | |
const v = d.surveys.find(w => w.id === r); | |
e(v, c) | |
} | |
}, "Insert"), p(Ae, { | |
disabled: f, | |
priority: "secondary-theme", | |
outline: "none", | |
onClick: n | |
}, "Cancel"))))) | |
}, | |
kae = (t, e, n) => { | |
se(ae.EDITOR_MENU_ICON_CLICKED, { | |
button: n | |
}), e(t) | |
}; | |
function ii(t, e) { | |
return we(n => { | |
t && (e ? kae(n, t, e) : t(n)) | |
}, [t, e]) | |
} | |
const $e = wa((r, o) => { | |
var i = r, | |
{ | |
trackedName: t, | |
testId: e, | |
priority: n = "tertiary", | |
onClick: s | |
} = i, | |
a = st(i, ["trackedName", "testId", "priority", "onClick"]); | |
const c = ii(s, t); | |
return p(vu, P(S({}, a), { | |
size: "sm", | |
"data-testId": e, | |
onClick: c, | |
ref: o, | |
priority: n | |
})) | |
}), | |
ci = wa((r, o) => { | |
var i = r, | |
{ | |
trackedName: t, | |
testId: e, | |
priority: n = "tertiary", | |
onClick: s | |
} = i, | |
a = st(i, ["trackedName", "testId", "priority", "onClick"]); | |
const c = ii(s, t); | |
return p(ta, P(S({}, a), { | |
size: "sm", | |
"data-testId": e, | |
onClick: c, | |
ref: o, | |
priority: n | |
})) | |
}), | |
Q = wa((o, a) => { | |
var r = o, | |
{ | |
trackedName: t, | |
testId: e, | |
onClick: n | |
} = r, | |
s = st(r, ["trackedName", "testId", "onClick"]); | |
const i = ii(n, t); | |
return p(vn, P(S({}, s), { | |
"data-testId": e, | |
onClick: i, | |
ref: a | |
})) | |
}), | |
Jt = () => p(Y, { | |
height: 32, | |
paddingY: 4, | |
sizing: "border-box" | |
}, p(Gg, null)), | |
_ae = ({ | |
level: t | |
}) => { | |
switch (t) { | |
case 1: | |
return p(bb, { | |
size: 20 | |
}); | |
case 2: | |
return p(vb, { | |
size: 20 | |
}); | |
case 3: | |
return p(xb, { | |
size: 20 | |
}); | |
case 4: | |
return p(yb, { | |
size: 20 | |
}); | |
case 5: | |
return p(wb, { | |
size: 20 | |
}); | |
case 6: | |
return p(kb, { | |
size: 20 | |
}); | |
default: | |
return p(_b, { | |
size: 20 | |
}) | |
} | |
}, | |
Cae = ({ | |
editor: t | |
}) => { | |
const { | |
iString: e, | |
iTemplate: n | |
} = ue(); | |
return p(be, null, p(Q, { | |
onClick: () => t == null ? void 0 : t.chain().focus().setParagraph().run(), | |
rightIcon: (t == null ? void 0 : t.isActive("paragraph")) && p(sa, { | |
size: 20 | |
}), | |
icon: p(Db, { | |
size: 20 | |
}), | |
trackedName: "paragraph" | |
}, e("Normal text")), [1, 2, 3, 4, 5, 6].map(s => p(Q, { | |
onClick: () => t == null ? void 0 : t.chain().focus().toggleHeading({ | |
level: s | |
}).run(), | |
rightIcon: (t == null ? void 0 : t.isActive("heading", { | |
level: s | |
})) && p(sa, { | |
size: 20 | |
}), | |
icon: p(_ae, { | |
level: s | |
}) | |
}, n `Heading ${s}`))) | |
}, | |
Eae = ({ | |
editor: t | |
}) => { | |
const { | |
iString: e | |
} = ue(); | |
return p(Mt, { | |
trigger: p(ci, { | |
trailing: p(Ar, { | |
size: 20 | |
}), | |
testId: "style-picker" | |
}, e("Style")), | |
layerOptions: { | |
triggerOffset: 4, | |
placement: "bottom-start" | |
} | |
}, p(Cae, { | |
editor: t | |
})) | |
}, | |
Aae = ({ | |
editor: t, | |
publication: e, | |
postId: n, | |
get_coupons: s, | |
insert_coupon: a, | |
hideSharePostAndComment: o = !1, | |
writerReferralCode: r, | |
customSpecialOfferCommand: i = null, | |
customCustomButtonCommand: c = null, | |
user: l, | |
setIsSurveyModalOpen: u | |
}) => { | |
var E; | |
const { | |
userSettings: d | |
} = Yg(), { | |
result: m | |
} = $o({ | |
pathname: "/api/v1/meetings/config", | |
initialResult: { | |
meetings: { | |
enabled: !1 | |
} | |
}, | |
auto: Xn("meetings_v1") && (e == null ? void 0 : e.payments_state) === "enabled", | |
deps: [] | |
}), h = (d.messageRequestLevel || "nobody") !== "nobody", { | |
iString: g, | |
iTemplate: b, | |
language: x | |
} = ue(), v = Hf(e), { | |
getSettingFor: w | |
} = qh(); | |
return p(be, null, p(Q, { | |
onClick: () => { | |
t.chain().focus().insertSubscribeButton(e).run() | |
}, | |
trackedName: "button_subscribe", | |
testId: "insert-subscribe-button" | |
}, _n(e, { | |
now: !1, | |
language: x | |
})), p(Q, { | |
onClick: () => t.chain().focus().insertSubscribeButtonWithPreamble(e).run(), | |
trackedName: "button_subscribe_with_preamble" | |
}, g("Subscribe with caption")), !o && p(to, null, p(Q, { | |
onClick: () => t.chain().focus().insertSharePostButton(e).run(), | |
trackedName: "button_share_post" | |
}, g("Share post")), p(Q, { | |
onClick: () => t.chain().focus().insertCaptionedShareButton(e).run(), | |
trackedName: "button_share_with_preamble" | |
}, g("Share post with caption")), p(Q, { | |
onClick: () => t.chain().focus().insertSharePubButton(e).run(), | |
trackedName: "button_share_publication" | |
}, g("Share publication"))), p(to, null, !o && p(Q, { | |
onClick: () => t.chain().focus().insertCommentsButton(e).run(), | |
trackedName: "button_insert_comment" | |
}, g("Leave a comment")), h && l && p(Q, { | |
onClick: () => { | |
t.chain().focus().insertDirectMessage({ | |
user: l | |
}).run() | |
}, | |
trackedName: "button_dm_author" | |
}, g("Send a message")), !!(e != null && e.threads_v2_enabled) && p(Q, { | |
testId: "visit-thread-btn", | |
onClick: () => t.chain().focus().insertVisitThreadButton(e).run(), | |
trackedName: "button_visit_thread" | |
}, g("Join the chat")), p(Q, { | |
testId: "get-app-btn", | |
onClick: () => t.chain().focus().insertInstallSubstackAppEmbed(e).run(), | |
trackedName: "install_substack_app" | |
}, g("Get the app"))), p(to, null, p(Q, { | |
onClick: c || (() => t.chain().focus().insertCustomButton({ | |
scrollParent: "editor", | |
parentClass: "more-dropdown", | |
TextField: Va, | |
openPrompt: ma, | |
publication: e | |
}).run()), | |
trackedName: "button_custom" | |
}, g("Custom...")), p(Ig, { | |
content: g("More...") | |
}, w("reader_referrals_enabled") && p(Q, { | |
onClick: () => t.chain().focus().insertReferralButton(e).run(), | |
trackedName: "button_referral" | |
}, g("Refer a friend")), r && p(Q, { | |
onClick: () => t.chain().focus().insertCaptionedWriterReferralButton({ | |
writerReferralCode: r, | |
publication: e, | |
postId: n | |
}).run(), | |
trackedName: "button_writer_referral" | |
}, g("Refer a writer")), v && p(be, null, p(Q, { | |
onClick: i || (() => { | |
const _ = e; | |
return t.chain().focus().insertSpecialOfferButton({ | |
couponPub: _, | |
scrollParent: "editor", | |
parentClass: "more-dropdown", | |
get_coupons: s, | |
insert_coupon: a, | |
SelectField: rQ, | |
openPrompt: ma, | |
closePrompt: Jr, | |
getNetworkErrorMessage: Ft | |
}).run() | |
}), | |
trackedName: "button_special_offer" | |
}, g("Special offer")), p(Q, { | |
onClick: () => t.chain().focus().insertGiftButton(e).run(), | |
trackedName: "button_gift" | |
}, Cn(e, () => b `Give a gift subscription`, _ => `Give a gift ${_.subscription}`)), p(Q, { | |
onClick: () => { | |
const _ = e; | |
t.chain().focus().insertGroupSubscriptionButton({ | |
publication: _ | |
}).run() | |
}, | |
trackedName: "button_group_subscription" | |
}, Cn(e, () => b `Get a group subscription`, _ => `Get a group ${_.subscription}`))), p(Q, { | |
testId: "survey-prompt-btn", | |
onClick: () => u(!0), | |
trackedName: "survey_button" | |
}, g("Link to survey")), Xn("meetings_v1") && (e == null ? void 0 : e.payments_state) === "enabled" && ((E = m == null ? void 0 : m.meetings) == null ? void 0 : E.enabled) && p(Q, { | |
onClick: () => { | |
var _; | |
return t.chain().focus().insertMeeting({ | |
publication: e, | |
meetingsConfig: m == null ? void 0 : m.meetings, | |
usePublicationName: (_ = Xn("meetings_embed_publication_name")) != null ? _ : !1 | |
}).run() | |
}, | |
trackedName: "button_book_meeting" | |
}, g("Book a meeting"))))) | |
}, | |
Sae = ({ | |
editor: t, | |
setPostPaidForPaywall: e, | |
setPostId: n, | |
isAdhocEmail: s, | |
pub: a, | |
customInsertRuleCommand: o = void 0, | |
canAddPaywall: r = !0, | |
setFinancialChartModalOpen: i, | |
setIsLatexDropdownOpen: c | |
}) => { | |
const { | |
iString: l | |
} = ue(), u = Xn("recipes_enabled"); | |
return p(be, null, p(Q, { | |
disabled: !(t != null && t.can().toggleCodeBlock()), | |
onClick: () => { | |
t.chain().focus().toggleCodeBlock().run() | |
}, | |
icon: p(db, { | |
size: 20 | |
}), | |
trackedName: "code_block" | |
}, l("Code block")), p(Q, { | |
onClick: o || (() => t.chain().focus().setHorizontalRule().run()), | |
icon: p(qg, { | |
size: 20 | |
}), | |
trackedName: "horizontal_rule" | |
}, l("Divider")), p(Q, { | |
onClick: () => { | |
i(!0) | |
}, | |
icon: p(ob, null), | |
trackedName: "financial_chart" | |
}, l("Financial chart")), p(Q, { | |
disabled: !(t != null && t.can().insertFootnote()), | |
onClick: () => { | |
t.chain().focus().insertFootnote().run() | |
}, | |
icon: p(pb, { | |
size: 20 | |
}), | |
trackedName: "footnote" | |
}, l("Footnote")), p(Q, { | |
disabled: !(t != null && t.can().insertLatex({ | |
expression: "" | |
})), | |
onClick: () => t.chain().focus().insertLatex({ | |
expression: "" | |
}).run(), | |
icon: p(Mb, null), | |
trackedName: "latex_block" | |
}, l("LaTeX")), u && p(Q, { | |
disabled: !1, | |
onClick: () => N(void 0, null, function*() { | |
const d = yield n(); | |
if (!d) return; | |
const m = yield he.post("/api/v1/recipe").send({ | |
post_id: d | |
}); | |
t.chain().focus().insertRecipe({ | |
id: m.body.id | |
}).run() | |
}), | |
icon: p(mb, null), | |
trackedName: "recipe", | |
testId: "add-recipe-button" | |
}, l("Recipe")), r && !s && p(Q, { | |
disabled: !(t != null && t.can().addPaywall(e)), | |
onClick: () => t.chain().focus().addPaywall(e).run(), | |
icon: p(fb, { | |
size: 20 | |
}), | |
testId: "add-paywall-button", | |
trackedName: "paywall" | |
}, l("Paywall")), p(Q, { | |
disabled: !(t != null && t.can().toggleNode("preformatted_text_block", "paragraph")), | |
onClick: () => t.chain().focus().toggleNode("preformatted_text_block", "paragraph").run(), | |
icon: p(gb, { | |
size: 20 | |
}), | |
trackedName: "preformatted_text_block" | |
}, l("Poetry")), p(Q, { | |
onClick: () => N(void 0, null, function*() { | |
const d = yield n(); | |
if (!d) return; | |
const m = yield he.post("/api/v1/poll").send({ | |
post_id: d | |
}); | |
t.chain().focus().insertPoll({ | |
id: m.body.id | |
}).run() | |
}), | |
icon: p(zg, { | |
size: 20 | |
}), | |
trackedName: "poll" | |
}, l("Poll"))) | |
}, | |
Tae = ({ | |
editor: t, | |
publication: e, | |
get_coupons: n, | |
insert_coupon: s, | |
hideSharePostAndComment: a = !1, | |
writerReferralCode: o, | |
postId: r, | |
customSpecialOfferCommand: i = null, | |
customCustomButtonCommand: c = null, | |
user: l, | |
setIsSurveyModalOpen: u | |
}) => { | |
const { | |
iString: d | |
} = ue(); | |
return p(Mt, { | |
trigger: p(ci, { | |
trailing: p(Ar, { | |
size: 20 | |
}), | |
testId: "button-picker" | |
}, d("Button")), | |
layerOptions: { | |
triggerOffset: 4, | |
placement: "bottom-start" | |
} | |
}, p(Aae, { | |
user: l, | |
editor: t, | |
publication: e, | |
get_coupons: n, | |
insert_coupon: s, | |
hideSharePostAndComment: a, | |
writerReferralCode: o, | |
postId: r, | |
setIsSurveyModalOpen: u, | |
customSpecialOfferCommand: i, | |
customCustomButtonCommand: c | |
})) | |
}, | |
Dae = ({ | |
editor: t, | |
setPostPaidForPaywall: e, | |
setPostId: n, | |
isAdhocEmail: s, | |
pub: a, | |
customInsertRuleCommand: o = void 0, | |
canAddPaywall: r = !0, | |
setFinancialChartModalOpen: i, | |
setIsLatexDropdownOpen: c | |
}) => { | |
const { | |
iString: l | |
} = ue(); | |
return p(Mt, { | |
trigger: p(ci, { | |
trailing: p(Ar, { | |
size: 20 | |
}), | |
testId: "more-submenu", | |
className: "more-dropdown" | |
}, l("More")), | |
layerOptions: { | |
triggerOffset: 4, | |
placement: "bottom-start" | |
} | |
}, p(Sae, { | |
isAdhocEmail: s, | |
editor: t, | |
pub: a, | |
setPostPaidForPaywall: e, | |
setPostId: n, | |
customInsertRuleCommand: o, | |
canAddPaywall: r, | |
setFinancialChartModalOpen: i, | |
setIsLatexDropdownOpen: c | |
})) | |
}, | |
Iae = ({ | |
editor: t, | |
insertImageFile: e, | |
publication: n, | |
postId: s | |
}) => { | |
const [a, o] = z(!1), [r, i] = z(!1), [c, l] = z(!1), [u, d] = z(!1), { | |
iString: m, | |
iTemplate: f | |
} = ue(), h = g => { | |
g.preventDefault(), d(!0), i(!0) | |
}; | |
return U(() => (document.addEventListener("editSelectedImageGallery", h), () => { | |
document.removeEventListener("editSelectedImageGallery", h) | |
}), []), p(be, null, p(Mt, { | |
trigger: p($e, { | |
title: "Insert image" | |
}, p(Ho, { | |
size: 20 | |
})), | |
layerOptions: { | |
triggerOffset: 4, | |
placement: "bottom-start" | |
} | |
}, p(Q, { | |
onClick: () => t.chain().focus().insertImage(e).run(), | |
icon: p(Fh, null), | |
trackedName: "image_upload" | |
}, m("Add image")), p(Q, { | |
onClick: () => i(!0), | |
icon: p(ng, null), | |
trackedName: "image_gallery" | |
}, m("Add gallery")), p(Q, { | |
onClick: () => { | |
o(!0) | |
}, | |
icon: p(ab, { | |
size: 20 | |
}), | |
testId: "image-unsplash", | |
trackedName: "image_unsplash" | |
}, m("Add stock photo")), p(Q, { | |
onClick: () => { | |
l(!0) | |
}, | |
icon: p(Lb, null), | |
trackedName: "image_generate" | |
}, m("Generate"))), p(Xse, { | |
open: a, | |
onAfterClose: () => { | |
o(!1) | |
}, | |
onSelectStockImage: g => { | |
t.chain().focus().insertUnsplashImage(g).run() | |
} | |
}), p(Wse, { | |
pub: n, | |
postId: s, | |
editor: t, | |
editingCurrentSelection: u, | |
isOpen: r, | |
onInsertGallery: g => { | |
t.chain().focus().insertImageGallery({ | |
gallery: g | |
}).run() | |
}, | |
onUpdateGallery: g => { | |
t.chain().focus().updateImageGallery({ | |
gallery: g | |
}).run() | |
}, | |
onClose: () => { | |
d(!1), i(!1) | |
} | |
}), p(Wg, { | |
open: c, | |
onAfterClose: () => l(!1), | |
onImageSelected: null, | |
insertionPointSelector: ".editor", | |
onUrlSelected: x => N(void 0, [x], function*({ | |
url: g, | |
prompt: b | |
}) { | |
const v = yield he.post("/api/v1/image").send({ | |
image: g, | |
postId: s != null ? s : void 0 | |
}); | |
t.chain().focus().insertImageFromUrl({ | |
url: v.body.url, | |
caption: b || "", | |
width: Uf, | |
height: Vf | |
}).run(), l(!1) | |
}) | |
})) | |
}, | |
Nae = ({ | |
editor: t | |
}) => { | |
const { | |
iString: e | |
} = ue(); | |
return p(Mt, { | |
trigger: p($e, { | |
title: "Insert quote", | |
disabled: !(t != null && t.can().togglePullquote()) && !(t != null && t.can().toggleBlockquote()) | |
}, p(Sb, { | |
size: 20 | |
})), | |
layerOptions: { | |
triggerOffset: 4, | |
placement: "bottom-start" | |
} | |
}, p(Q, { | |
disabled: !(t != null && t.can().toggleBlockquote()), | |
onClick: () => t == null ? void 0 : t.chain().focus().toggleBlockquote().run(), | |
rightIcon: (t == null ? void 0 : t.isActive("blockquote")) && p(sa, { | |
size: 20 | |
}), | |
trackedName: "blockquote" | |
}, e("Block quote")), p(Q, { | |
disabled: !(t != null && t.can().togglePullquote()), | |
onClick: () => { | |
t == null || t.chain().focus().togglePullquote().run() | |
}, | |
rightIcon: (t == null ? void 0 : t.isActive("pullquote")) && p(sa, { | |
size: 20 | |
}), | |
trackedName: "pullquote" | |
}, e("Pull quote"))) | |
}, | |
It = () => { | |
if (window) return window.LatexModalEvent || (window.LatexModalEvent = new EventTarget), window.LatexModalEvent | |
}, | |
Mae = ({ | |
editor: t, | |
isOpen: e, | |
setIsOpen: n | |
}) => { | |
var o; | |
const [s, a] = z(null); | |
return ue(), U(() => { | |
const r = ({ | |
detail: i | |
}) => { | |
a(i.node), n(!0) | |
}; | |
return It().addEventListener("open", r), () => { | |
It().removeEventListener("open", r) | |
} | |
}, [e, s]), U(() => { | |
const r = ({ | |
detail: i | |
}) => { | |
i.node.attrs = P(S({}, i.node.attrs), { | |
persistentExpression: i.persistentExpression | |
}), i.node.attrs.dirty = !0, a(i.node) | |
}; | |
return It().addEventListener("close", r), () => { | |
It().removeEventListener("close", r) | |
} | |
}, [e, s]), p(qae, { | |
isOpen: e, | |
onClose: () => { | |
n(!1) | |
}, | |
node: s, | |
persistentExpression: ((o = s == null ? void 0 : s.attrs) == null ? void 0 : o.persistentExpression) || "" | |
}) | |
}, | |
Oae = ({ | |
editor: t, | |
publication: e, | |
postId: n, | |
setPostId: s, | |
voiceoverEnabled: a, | |
audioEmbedsEnabled: o, | |
showAudioEduTooltip: r, | |
showingDrawerName: i, | |
setShowDrawer: c | |
}) => { | |
const { | |
iString: l | |
} = ue(); | |
return p(be, null, p(Mt, { | |
trigger: p($e, { | |
title: "Insert audio" | |
}, p(gg, { | |
size: 20 | |
})), | |
layerOptions: { | |
triggerOffset: 4, | |
placement: "bottom-start" | |
} | |
}, a && p(Q, { | |
onClick: () => { | |
c("voiceover") | |
}, | |
trackedName: "voiceover", | |
icon: p(Go, { | |
size: 20 | |
}) | |
}, l("Voiceover")), o && p(Q, { | |
trackedName: "audio_embed", | |
onClick: () => { | |
c("audioEmbed") | |
}, | |
icon: p(Ib, { | |
size: 20 | |
}) | |
}, l("Audio embed"))), p(vae, { | |
id: "audioEmbed", | |
open: i === "audioEmbed", | |
pub: e, | |
postId: n, | |
onClose: () => c(null), | |
onSave: ({ | |
mediaUploadId: u, | |
duration: d | |
}) => { | |
t.chain().focus().insertAudio({ | |
mediaUploadId: u, | |
duration: d | |
}).run() | |
}, | |
setPostId: s | |
})) | |
}, | |
Lae = ({ | |
editor: t, | |
publication: e, | |
postId: n, | |
isAdhocEmail: s, | |
insertImageFile: a, | |
get_coupons: o, | |
insert_coupon: r, | |
setPostPaidForPaywall: i, | |
voiceoverEnabled: c, | |
audioEmbedsEnabled: l, | |
showAudioEduTooltip: u, | |
setPostId: d, | |
hideSharePostAndComment: m = !1, | |
showingDrawerName: f, | |
setShowDrawer: h, | |
writerReferralCode: g, | |
canAddPaywall: b, | |
user: x | |
}) => { | |
const { | |
iString: v, | |
iTemplate: w | |
} = ue(), [E, _] = z(!1), [k, M] = z(!1), [y, T] = z(!1); | |
if (!t) return; | |
const D = Vl(), | |
C = (t == null ? void 0 : t.isActive("orderedList")) || (t == null ? void 0 : t.isActive("bulletList")); | |
return p(bu, null, p(xe, { | |
paddingX: 16, | |
justifyContent: "center", | |
bg: "primary", | |
className: fe("tiptap-menu") | |
}, p(xe, { | |
wrap: "wrap", | |
gap: 12, | |
paddingY: 8, | |
alignItems: "center" | |
}, p(xe, { | |
gap: 4 | |
}, p($e, { | |
onClick: () => t.chain().focus().undo().run(), | |
disabled: !t.can().undo(), | |
title: w `Undo ${D}Z`, | |
trackedName: "undo" | |
}, p(Ob, { | |
size: 20 | |
})), p($e, { | |
onClick: () => t.chain().focus().redo().run(), | |
disabled: !t.can().redo(), | |
title: w `Redo ${D}⇧Z`, | |
trackedName: "redo" | |
}, p(Nb, { | |
size: 20 | |
}))), p(Jt, null), p(xe, { | |
gap: 4 | |
}, p(Eae, { | |
editor: t | |
})), p(Jt, null), p(xe, { | |
gap: 4 | |
}, p($e, { | |
priority: t.isActive("bold") ? "secondary" : "tertiary", | |
onClick: () => t.chain().focus().toggleBold().run(), | |
disabled: !t.can().toggleBold(), | |
title: w `Bold ${D}B`, | |
trackedName: "toggle_bold" | |
}, p(Zg, { | |
size: 20 | |
})), p($e, { | |
priority: t.isActive("italic") ? "secondary" : "tertiary", | |
onClick: () => t.chain().focus().toggleItalic().run(), | |
disabled: !t.can().toggleItalic(), | |
title: w `Italic ${D}I`, | |
trackedName: "toggle_italic" | |
}, p(Qg, { | |
size: 20 | |
})), p($e, { | |
onClick: () => t.chain().focus().toggleStrike().run(), | |
disabled: !t.can().toggleStrike(), | |
priority: t.isActive("strike") ? "secondary" : "tertiary", | |
title: w `Strikethrough ${D}⇧X`, | |
trackedName: "toggle_strikethrough" | |
}, p(eb, { | |
size: 20 | |
})), p($e, { | |
priority: t.isActive("code") ? "secondary" : "tertiary", | |
onClick: () => t.chain().focus().toggleCode().run(), | |
disabled: !t.can().toggleCode(), | |
title: v("Code"), | |
trackedName: "toggle_code_mark" | |
}, p(Bg, { | |
size: 20 | |
}))), p(Jt, null), p(xe, { | |
gap: 4 | |
}, p($e, { | |
onClick: () => t.chain().addLink().run(), | |
title: w `Link ${D}K`, | |
trackedName: "link" | |
}, p(Fu, { | |
size: 20 | |
})), p(Iae, { | |
editor: t, | |
insertImageFile: a, | |
publication: e, | |
postId: n | |
}), !s && (c || l) && p(Oae, { | |
editor: t, | |
publication: e, | |
postId: n, | |
setPostId: d, | |
voiceoverEnabled: c, | |
audioEmbedsEnabled: l, | |
showAudioEduTooltip: u, | |
showingDrawerName: f, | |
setShowDrawer: h | |
}), !s && p(yse, { | |
editor: t, | |
pub: e, | |
postId: n != null ? n : null, | |
setPostId: d | |
}), p(Nae, { | |
editor: t | |
})), p(Jt, null), p(xe, { | |
gap: 4 | |
}, p($e, { | |
priority: t != null && t.isActive("bulletList") ? "secondary" : "tertiary", | |
disabled: !(t != null && t.can().toggleBulletList()), | |
onClick: () => t.chain().focus().toggleBulletList().run(), | |
title: v("Bulleted list"), | |
trackedName: "bullet_list" | |
}, p(sb, { | |
size: 20 | |
})), p($e, { | |
priority: t != null && t.isActive("orderedList") ? "secondary" : "tertiary", | |
disabled: !(t != null && t.can().toggleOrderedList()), | |
onClick: () => t.chain().focus().toggleOrderedList().run(), | |
title: v("Numbered list"), | |
trackedName: "ordered_list" | |
}, p(tb, { | |
size: 20 | |
})), C && p(be, null, p(Jt, null), p($e, { | |
disabled: !(t != null && t.can().sinkListItem("listItem")), | |
onClick: () => t.chain().focus().sinkListItem("listItem").run(), | |
title: v("Indent"), | |
trackedName: "indent_list" | |
}, p(Qi, { | |
size: 20 | |
})), p($e, { | |
disabled: !(t != null && t.can().liftListItem("listItem")), | |
onClick: () => t.chain().focus().liftListItem("listItem").run(), | |
title: v("Deindent"), | |
trackedName: "deindent_list" | |
}, p(Qi, { | |
size: 20, | |
style: { | |
transform: "scaleX(-1)" | |
} | |
})))), p(Jt, null), p(xe, { | |
gap: 4 | |
}, p(Tae, { | |
user: x, | |
editor: t, | |
publication: e, | |
get_coupons: o, | |
insert_coupon: r, | |
hideSharePostAndComment: m, | |
writerReferralCode: g, | |
postId: n, | |
setIsSurveyModalOpen: _ | |
})), p(Jt, null), p(xe, { | |
gap: 4 | |
}, p(Dae, { | |
isAdhocEmail: s, | |
canAddPaywall: b, | |
editor: t, | |
setPostPaidForPaywall: i, | |
setPostId: d, | |
pub: e, | |
setFinancialChartModalOpen: M, | |
setIsLatexDropdownOpen: T | |
})))), e && p(wae, { | |
isOpen: E, | |
pub: e, | |
onClose: () => { | |
_(!1) | |
}, | |
onInsert: (L, R) => { | |
t.chain().focus().insertSurveyButton(e, L, R).run(), _(!1) | |
} | |
}), p(Ese, { | |
isOpen: k, | |
onClose: () => { | |
M(!1) | |
}, | |
onInsert: ({ | |
url: L, | |
width: R, | |
height: A | |
}) => { | |
t.chain().focus().insertTradingViewImageFromUrl({ | |
url: L, | |
height: A, | |
width: R | |
}).run() | |
} | |
}), p(Mae, { | |
editor: t, | |
isOpen: y, | |
setIsOpen: T | |
})) | |
}, | |
Rae = t => { | |
try { | |
return Lae(t) | |
} catch (e) { | |
return window.Sentry && window.Sentry.captureException(e), p(be, null) | |
} | |
}, | |
Pae = "_latexWrapper_zecxq_1", | |
Bae = "_latexEdit_zecxq_12", | |
zae = "_emptyStateWrapper_zecxq_41", | |
Mo = { | |
latexWrapper: Pae, | |
latexEdit: Bae, | |
emptyStateWrapper: zae | |
}, | |
qae = ({ | |
isOpen: t, | |
onClose: e, | |
persistentExpression: n, | |
node: s | |
}) => { | |
const [a, o] = z(n), { | |
iString: r | |
} = ue(), [i, c] = z(() => wr(o, 1e3)); | |
return U(() => { | |
o(n) | |
}, [n]), p(ju, null, p(ms, { | |
isOpen: t, | |
onClose: e, | |
"data-test-id": "latex-modal" | |
}, p(fs, null, p(Y, { | |
paddingTop: 8, | |
gap: 24 | |
}, p(Y, { | |
gap: 24 | |
}, p(ne, { | |
justifyContent: "space-between", | |
alignItems: "center" | |
}, p(X.Meta, { | |
translated: !0 | |
}, "LaTeX Editor")), p(rg, { | |
"data-test-id": "latex-input", | |
rows: 4, | |
maxLength: 1e3, | |
value: a, | |
name: "expression", | |
onChange: l => { | |
i(l.target.value) | |
} | |
})), a ? p(Y, { | |
height: 150 | |
}, p($u, { | |
typesettingOptions: { | |
fn: "tex2chtml", | |
options: void 0 | |
}, | |
text: `${a}`, | |
renderMode: "pre", | |
inline: !1, | |
dynamic: !0 | |
})) : p(Y, null, p(Y, { | |
radius: "md", | |
paddingX: 12, | |
paddingY: 20, | |
alignItems: "center" | |
}, p(X.B4, { | |
fontStyle: "italic", | |
translated: !0, | |
color: "secondary", | |
align: "center" | |
}, "Write LaTeX expressions in the above editor and they'll appear here"))))), p(ds, { | |
includeDivider: !1, | |
alignment: "default", | |
primaryButton: p(Ae, { | |
"data-test-id": "latex-save", | |
priority: "primary-theme", | |
onClick: () => { | |
se(ae.LATEX_BLOCK_ADDED, { | |
expression: a | |
}), It().dispatchEvent(new CustomEvent("close", { | |
detail: { | |
persistentExpression: a, | |
node: s | |
} | |
})), e() | |
} | |
}, r("Save")), | |
secondaryButton: p(Ae, { | |
"data-test-id": "latex-cancel", | |
fill: "empty", | |
outline: "none", | |
priority: "secondary", | |
onClick: () => { | |
It().dispatchEvent(new CustomEvent("close", { | |
detail: { | |
persistentExpression: n, | |
node: s | |
} | |
})), a !== n && o(n), e() | |
} | |
}, r("Cancel")) | |
}))) | |
}, | |
Em = ({ | |
node: t, | |
id: e | |
}) => { | |
const [n, s] = z(t.attrs.persistentExpression); | |
return U(() => { | |
s(t.attrs.persistentExpression) | |
}, [t]), U(() => { | |
const a = ({ | |
detail: o | |
}) => { | |
if (o.node.attrs.id === t.attrs.id) { | |
const r = o.persistentExpression; | |
s(r) | |
} | |
}; | |
return It().addEventListener("close", a), () => { | |
It().removeEventListener("close", a) | |
} | |
}, []), p(wt, { | |
"data-drag-handle": "" | |
}, p(ju, null, p("div", { | |
className: "latex-block", | |
id: e | |
}, p(Y, { | |
className: fe(Mo.latexWrapper, t.attrs.persistentExpression || Gf() ? Mo.emptyStateWrapper : null), | |
radius: "md", | |
"data-attrs": JSON.stringify({ | |
persistentExpression: n, | |
id: t.attrs.id | |
}), | |
onClick: () => { | |
n !== t.attrs.persistentExpression && s(t.attrs.persistentExpression), It().dispatchEvent(new CustomEvent("open", { | |
detail: { | |
persistentExpression: t.attrs.persistentExpression, | |
node: t | |
} | |
})) | |
} | |
}, p(ne, { | |
paddingY: 8, | |
paddingX: 16, | |
flex: "grow", | |
justifyContent: "center", | |
alignItems: "center" | |
}, n || t.attrs.persistentExpression ? p(Y, { | |
alignItems: "center", | |
justifyContent: "center" | |
}, p($u, { | |
typesettingOptions: { | |
fn: "tex2chtml", | |
options: void 0 | |
}, | |
text: `${n||t.attrs.persistentExpression}`, | |
renderMode: "pre", | |
inline: !1, | |
dynamic: !0 | |
})) : p(Y, { | |
alignSelf: "center" | |
}, p(X.Meta, { | |
fontStyle: "italic", | |
translated: !0, | |
color: "secondary" | |
}, "Edit & enter LaTeX expressions here")), p(Y, null, p("button", { | |
className: Mo.latexEdit | |
}, p(rb, { | |
width: 20, | |
height: 20 | |
})))))))) | |
}, | |
Am = () => { | |
let t = ""; | |
const e = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", | |
n = e.length; | |
for (let s = 0; s < 10; s++) t += e.charAt(Math.floor(Math.random() * n)); | |
return t | |
}, | |
Sm = { | |
content: "text*", | |
group: "block", | |
code: !0, | |
defining: !0, | |
isolating: !0, | |
attrs: { | |
persistentExpression: { | |
default: "" | |
}, | |
id: { | |
default: "" | |
} | |
}, | |
parseDOM: [{ | |
tag: "pre.text", | |
preserveWhitespace: "full", | |
priority: 60 | |
}, { | |
tag: "div.latexWrapper", | |
getAttrs: re | |
}], | |
toDOM: t => ["div", { | |
class: "latex-rendered", | |
"data-attrs": JSON.stringify(S({}, t.attrs)), | |
"data-component-name": "LatexBlockToDOM" | |
}], | |
toDOMStatic: t => ["div", { | |
class: "latex-rendered", | |
"data-attrs": JSON.stringify(P(S({}, t.attrs), { | |
isEmail: !0 | |
})), | |
"data-component-name": "LatexBlockToDOMStatic" | |
}] | |
}, | |
Fae = F({ | |
name: "latex_block", | |
nodeSpec: Sm, | |
addCommands() { | |
return { | |
insertLatex: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}) | |
} | |
}, | |
addNodeView() { | |
return kt(Em) | |
} | |
}), | |
jae = t => { | |
try { | |
const e = document.createElement("span"); | |
e.className = "latex-rendered"; | |
const n = Am(), | |
s = t == null ? void 0 : t.attrs.persistentExpression; | |
return ur(p(Em, { | |
persistentExpression: s, | |
node: t, | |
id: n | |
}), e), e | |
} catch (e) { | |
return console.error("Error rendering LatexComponent", e), Oe({ | |
msg: null, | |
node: t, | |
err: e, | |
group: "block" | |
}) | |
} | |
}; | |
class $ae { | |
constructor(e) { | |
e.updateExpression = n => { | |
e.attrs = P(S({}, e.attrs), { | |
persistentExpression: n | |
}), e.attrs.dirty = !0 | |
}, this.dom = jae(e) | |
} | |
} | |
const Uae = ({ | |
expression: t | |
}) => (e, n) => { | |
const s = Am(); | |
return n && n(ie(e, e.schema.nodes.latex_block.create({ | |
persistentExpression: t, | |
id: s | |
}))), !0 | |
}, | |
Vae = Pe.create({ | |
name: "latexInsert", | |
addCommands() { | |
return { | |
insertLatex: ({ | |
expression: t | |
}) => ({ | |
state: e, | |
dispatch: n | |
}) => Uae({ | |
expression: t | |
})(e, n) | |
} | |
} | |
}), | |
Hae = ({ | |
publication: t, | |
meetingsConfig: e, | |
usePublicationName: n | |
}) => (s, a) => { | |
let o = su({ | |
id: e.user_id, | |
photo_url: e.user_profile_photo_url | |
}); | |
return n && t.logo_url && (o = q(t.logo_url, 112)), a && a(ie(s, s.schema.nodes.meeting.create({ | |
name: n ? t.name : e.user_name, | |
avatarUrl: o, | |
url: au(t, { | |
addBase: !0, | |
params: { | |
source: "embed" | |
} | |
}), | |
isEditorNode: !0 | |
}))), !0 | |
}, | |
Gae = Pe.create({ | |
name: "meetingInsert", | |
addCommands() { | |
return { | |
insertMeeting: ({ | |
publication: t, | |
meetingsConfig: e, | |
usePublicationName: n | |
}) => ({ | |
state: s, | |
dispatch: a | |
}) => Hae({ | |
publication: t, | |
meetingsConfig: e, | |
usePublicationName: n | |
})(s, a) | |
} | |
} | |
}), | |
Tm = t => !Bn(t.doc.toJSON(), e => e.type === "paywall"), | |
Wae = t => (e, n) => { | |
if (!Tm(e)) return !1; | |
const { | |
schema: s, | |
tr: a | |
} = e, o = s.nodes.paywall.create(); | |
return a.selection.anchor === 1 ? Jae(t)(e, n) : (a.insert(a.selection.anchor, o), n && (n(a), t()), !0) | |
}, | |
Jae = t => (e, n) => { | |
if (!Tm(e)) return !1; | |
const { | |
schema: s, | |
tr: a | |
} = e, o = s.nodes.paywall.create(); | |
let r = 0, | |
i = 0; | |
for (; r < 10 && i < 3;) { | |
const c = e.doc.resolve(r).nodeAfter; | |
if (!c) break; | |
r += c.nodeSize, i++ | |
} | |
return a.insert(r, o), n && (n(a), t()), !0 | |
}, | |
Yae = Pe.create({ | |
name: "paywallCustom", | |
addCommands() { | |
return { | |
addPaywall: t => ({ | |
state: e, | |
dispatch: n | |
}) => Wae(t)(e, n) | |
} | |
} | |
}), | |
Kae = ({ | |
id: t | |
}) => (e, n) => (n && n(ie(e, e.schema.nodes.poll.create({ | |
id: t | |
}))), !0), | |
Xae = Pe.create({ | |
name: "pollInsert", | |
addCommands() { | |
return { | |
insertPoll: ({ | |
id: t | |
}) => ({ | |
state: e, | |
dispatch: n | |
}) => Kae({ | |
id: t | |
})(e, n) | |
} | |
} | |
}), | |
Zae = ({ | |
id: t | |
}) => (e, n) => (n && n(ie(e, e.schema.nodes.recipe.create({ | |
id: t | |
}))), !0), | |
Qae = Pe.create({ | |
name: "recipeInsert", | |
addCommands() { | |
return { | |
insertRecipe: ({ | |
id: t | |
}) => ({ | |
state: e, | |
dispatch: n | |
}) => Zae({ | |
id: t | |
})(e, n) | |
} | |
} | |
}); | |
function Dm(t = {}) { | |
return new _t({ | |
view(e) { | |
return new eoe(e, t) | |
} | |
}) | |
} | |
class eoe { | |
constructor(e, n) { | |
this.editorView = e, this.cursorPos = null, this.element = null, this.timeout = -1, this.width = n.width || 1, this.color = n.color || "black", this.class = n.class, this.handlers = ["dragover", "dragend", "drop", "dragleave"].map(s => { | |
let a = o => { | |
this[s](o) | |
}; | |
return e.dom.addEventListener(s, a), { | |
name: s, | |
handler: a | |
} | |
}) | |
} | |
destroy() { | |
this.handlers.forEach(({ | |
name: e, | |
handler: n | |
}) => this.editorView.dom.removeEventListener(e, n)) | |
} | |
update(e, n) { | |
this.cursorPos != null && n.doc != e.state.doc && (this.cursorPos > e.state.doc.content.size ? this.setCursor(null) : this.updateOverlay()) | |
} | |
setCursor(e) { | |
e != this.cursorPos && (this.cursorPos = e, e == null ? (this.element.parentNode.removeChild(this.element), this.element = null) : this.updateOverlay()) | |
} | |
updateOverlay() { | |
let e = this.editorView.state.doc.resolve(this.cursorPos), | |
n = !e.parent.inlineContent, | |
s; | |
if (n) { | |
let i = e.nodeBefore, | |
c = e.nodeAfter; | |
if (i || c) { | |
let l = this.editorView.nodeDOM(this.cursorPos - (i ? i.nodeSize : 0)); | |
if (l) { | |
let u = l.getBoundingClientRect(), | |
d = i ? u.bottom : u.top; | |
i && c && (d = (d + this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top) / 2), s = { | |
left: u.left, | |
right: u.right, | |
top: d - this.width / 2, | |
bottom: d + this.width / 2 | |
} | |
} | |
} | |
} | |
if (!s) { | |
let i = this.editorView.coordsAtPos(this.cursorPos); | |
s = { | |
left: i.left - this.width / 2, | |
right: i.left + this.width / 2, | |
top: i.top, | |
bottom: i.bottom | |
} | |
} | |
let a = this.editorView.dom.offsetParent; | |
this.element || (this.element = a.appendChild(document.createElement("div")), this.class && (this.element.className = this.class), this.element.style.cssText = "position: absolute; z-index: 50; pointer-events: none; background-color: " + this.color), this.element.classList.toggle("prosemirror-dropcursor-block", n), this.element.classList.toggle("prosemirror-dropcursor-inline", !n); | |
let o, r; | |
if (!a || a == document.body && getComputedStyle(a).position == "static") o = -pageXOffset, r = -pageYOffset; | |
else { | |
let i = a.getBoundingClientRect(); | |
o = i.left - a.scrollLeft, r = i.top - a.scrollTop | |
} | |
this.element.style.left = s.left - o + "px", this.element.style.top = s.top - r + "px", this.element.style.width = s.right - s.left + "px", this.element.style.height = s.bottom - s.top + "px" | |
} | |
scheduleRemoval(e) { | |
clearTimeout(this.timeout), this.timeout = setTimeout(() => this.setCursor(null), e) | |
} | |
dragover(e) { | |
if (!this.editorView.editable) return; | |
let n = this.editorView.posAtCoords({ | |
left: e.clientX, | |
top: e.clientY | |
}), | |
s = n && n.inside >= 0 && this.editorView.state.doc.nodeAt(n.inside), | |
a = s && s.type.spec.disableDropCursor, | |
o = typeof a == "function" ? a(this.editorView, n, e) : a; | |
if (n && !o) { | |
let r = n.pos; | |
if (this.editorView.dragging && this.editorView.dragging.slice && (r = wh(this.editorView.state.doc, r, this.editorView.dragging.slice), r == null)) return this.setCursor(null); | |
this.setCursor(r), this.scheduleRemoval(5e3) | |
} | |
} | |
dragend() { | |
this.scheduleRemoval(20) | |
} | |
drop() { | |
this.scheduleRemoval(20) | |
} | |
dragleave(e) { | |
(e.target == this.editorView.dom || !this.editorView.dom.contains(e.relatedTarget)) && this.setCursor(null) | |
} | |
} | |
const toe = Pe.create({ | |
name: "dropCursor", | |
addOptions() { | |
return { | |
color: "currentColor", | |
width: 1, | |
class: void 0 | |
} | |
}, | |
addProseMirrorPlugins() { | |
return [Dm(this.options)] | |
} | |
}); | |
class ye extends ea { | |
constructor(e) { | |
super(e, e) | |
} | |
map(e, n) { | |
let s = e.resolve(n.map(this.head)); | |
return ye.valid(s) ? new ye(s) : ea.near(s) | |
} | |
content() { | |
return Ca.empty | |
} | |
eq(e) { | |
return e instanceof ye && e.head == this.head | |
} | |
toJSON() { | |
return { | |
type: "gapcursor", | |
pos: this.head | |
} | |
} | |
static fromJSON(e, n) { | |
if (typeof n.pos != "number") throw new RangeError("Invalid input for GapCursor.fromJSON"); | |
return new ye(e.resolve(n.pos)) | |
} | |
getBookmark() { | |
return new li(this.anchor) | |
} | |
static valid(e) { | |
let n = e.parent; | |
if (n.isTextblock || !noe(e) || !soe(e)) return !1; | |
let s = n.type.spec.allowGapCursor; | |
if (s != null) return s; | |
let a = n.contentMatchAt(e.index()).defaultType; | |
return a && a.isTextblock | |
} | |
static findGapCursorFrom(e, n, s = !1) { | |
e: for (;;) { | |
if (!s && ye.valid(e)) return e; | |
let a = e.pos, | |
o = null; | |
for (let r = e.depth;; r--) { | |
let i = e.node(r); | |
if (n > 0 ? e.indexAfter(r) < i.childCount : e.index(r) > 0) { | |
o = i.child(n > 0 ? e.indexAfter(r) : e.index(r) - 1); | |
break | |
} else if (r == 0) return null; | |
a += n; | |
let c = e.doc.resolve(a); | |
if (ye.valid(c)) return c | |
} | |
for (;;) { | |
let r = n > 0 ? o.firstChild : o.lastChild; | |
if (!r) { | |
if (o.isAtom && !o.isText && !Je.isSelectable(o)) { | |
e = e.doc.resolve(a + o.nodeSize * n), s = !1; | |
continue e | |
} | |
break | |
} | |
o = r, a += n; | |
let i = e.doc.resolve(a); | |
if (ye.valid(i)) return i | |
} | |
return null | |
} | |
} | |
} | |
ye.prototype.visible = !1; | |
ye.findFrom = ye.findGapCursorFrom; | |
ea.jsonID("gapcursor", ye); | |
class li { | |
constructor(e) { | |
this.pos = e | |
} | |
map(e) { | |
return new li(e.map(this.pos)) | |
} | |
resolve(e) { | |
let n = e.resolve(this.pos); | |
return ye.valid(n) ? new ye(n) : ea.near(n) | |
} | |
} | |
function noe(t) { | |
for (let e = t.depth; e >= 0; e--) { | |
let n = t.index(e), | |
s = t.node(e); | |
if (n == 0) { | |
if (s.type.spec.isolating) return !0; | |
continue | |
} | |
for (let a = s.child(n - 1);; a = a.lastChild) { | |
if (a.childCount == 0 && !a.inlineContent || a.isAtom || a.type.spec.isolating) return !0; | |
if (a.inlineContent) return !1 | |
} | |
} | |
return !0 | |
} | |
function soe(t) { | |
for (let e = t.depth; e >= 0; e--) { | |
let n = t.indexAfter(e), | |
s = t.node(e); | |
if (n == s.childCount) { | |
if (s.type.spec.isolating) return !0; | |
continue | |
} | |
for (let a = s.child(n);; a = a.firstChild) { | |
if (a.childCount == 0 && !a.inlineContent || a.isAtom || a.type.spec.isolating) return !0; | |
if (a.inlineContent) return !1 | |
} | |
} | |
return !0 | |
} | |
function Im() { | |
return new _t({ | |
props: { | |
decorations: ioe, | |
createSelectionBetween(t, e, n) { | |
return e.pos == n.pos && ye.valid(n) ? new ye(n) : null | |
}, | |
handleClick: ooe, | |
handleKeyDown: aoe, | |
handleDOMEvents: { | |
beforeinput: roe | |
} | |
} | |
}) | |
} | |
const aoe = kh({ | |
ArrowLeft: Fs("horiz", -1), | |
ArrowRight: Fs("horiz", 1), | |
ArrowUp: Fs("vert", -1), | |
ArrowDown: Fs("vert", 1) | |
}); | |
function Fs(t, e) { | |
const n = t == "vert" ? e > 0 ? "down" : "up" : e > 0 ? "right" : "left"; | |
return function(s, a, o) { | |
let r = s.selection, | |
i = e > 0 ? r.$to : r.$from, | |
c = r.empty; | |
if (r instanceof Ee) { | |
if (!o.endOfTextblock(n) || i.depth == 0) return !1; | |
c = !1, i = s.doc.resolve(e > 0 ? i.after() : i.before()) | |
} | |
let l = ye.findGapCursorFrom(i, e, c); | |
return l ? (a && a(s.tr.setSelection(new ye(l))), !0) : !1 | |
} | |
} | |
function ooe(t, e, n) { | |
if (!t || !t.editable) return !1; | |
let s = t.state.doc.resolve(e); | |
if (!ye.valid(s)) return !1; | |
let a = t.posAtCoords({ | |
left: n.clientX, | |
top: n.clientY | |
}); | |
return a && a.inside > -1 && Je.isSelectable(t.state.doc.nodeAt(a.inside)) ? !1 : (t.dispatch(t.state.tr.setSelection(new ye(s))), !0) | |
} | |
function roe(t, e) { | |
if (e.inputType != "insertCompositionText" || !(t.state.selection instanceof ye)) return !1; | |
let { | |
$from: n | |
} = t.state.selection, s = n.parent.contentMatchAt(n.index()).findWrapping(t.state.schema.nodes.text); | |
if (!s) return !1; | |
let a = Kt.empty; | |
for (let r = s.length - 1; r >= 0; r--) a = Kt.from(s[r].createAndFill(null, a)); | |
let o = t.state.tr.replace(n.pos, n.pos, new Ca(a, 0, 0)); | |
return o.setSelection(Ee.near(o.doc.resolve(n.pos + 1))), t.dispatch(o), !1 | |
} | |
function ioe(t) { | |
if (!(t.selection instanceof ye)) return null; | |
let e = document.createElement("div"); | |
return e.className = "ProseMirror-gapcursor", du.create(t.doc, [jo.widget(t.selection.head, e, { | |
key: "gapcursor" | |
})]) | |
} | |
const coe = Pe.create({ | |
name: "gapCursor", | |
addProseMirrorPlugins() { | |
return [Im()] | |
}, | |
extendNodeSchema(t) { | |
var e; | |
const n = { | |
name: t.name, | |
options: t.options, | |
storage: t.storage | |
}; | |
return { | |
allowGapCursor: (e = _h(Ch(t, "allowGapCursor", n))) !== null && e !== void 0 ? e : null | |
} | |
} | |
}), | |
loe = Pe.create({ | |
name: "starterKit", | |
addExtensions() { | |
var t, e, n, s, a, o, r, i, c, l, u, d, m, f, h, g, b, x; | |
const v = []; | |
return this.options.blockquote !== !1 && v.push(kr.configure((t = this.options) === null || t === void 0 ? void 0 : t.blockquote)), this.options.bold !== !1 && v.push(Ou.configure((e = this.options) === null || e === void 0 ? void 0 : e.bold)), this.options.bulletList !== !1 && v.push(_r.configure((n = this.options) === null || n === void 0 ? void 0 : n.bulletList)), this.options.code !== !1 && v.push(Lu.configure((s = this.options) === null || s === void 0 ? void 0 : s.code)), this.options.codeBlock !== !1 && v.push(Ru.configure((a = this.options) === null || a === void 0 ? void 0 : a.codeBlock)), this.options.document !== !1 && v.push(mu.configure((o = this.options) === null || o === void 0 ? void 0 : o.document)), this.options.dropcursor !== !1 && v.push(toe.configure((r = this.options) === null || r === void 0 ? void 0 : r.dropcursor)), this.options.gapcursor !== !1 && v.push(coe.configure((i = this.options) === null || i === void 0 ? void 0 : i.gapcursor)), this.options.hardBreak !== !1 && v.push(qu.configure((c = this.options) === null || c === void 0 ? void 0 : c.hardBreak)), this.options.heading !== !1 && v.push(hp.configure((l = this.options) === null || l === void 0 ? void 0 : l.heading)), this.options.history !== !1 && v.push(xu.configure((u = this.options) === null || u === void 0 ? void 0 : u.history)), this.options.horizontalRule !== !1 && v.push(Pr.configure((d = this.options) === null || d === void 0 ? void 0 : d.horizontalRule)), this.options.italic !== !1 && v.push(Pu.configure((m = this.options) === null || m === void 0 ? void 0 : m.italic)), this.options.listItem !== !1 && v.push(Bu.configure((f = this.options) === null || f === void 0 ? void 0 : f.listItem)), this.options.orderedList !== !1 && v.push(Cr.configure((h = this.options) === null || h === void 0 ? void 0 : h.orderedList)), this.options.paragraph !== !1 && v.push(fu.configure((g = this.options) === null || g === void 0 ? void 0 : g.paragraph)), this.options.strike !== !1 && v.push(zu.configure((b = this.options) === null || b === void 0 ? void 0 : b.strike)), this.options.text !== !1 && v.push(hu.configure((x = this.options) === null || x === void 0 ? void 0 : x.text)), v | |
} | |
}), | |
Nm = { | |
attrs: { | |
number: { | |
default: 1 | |
} | |
}, | |
content: "block+", | |
atom: !1, | |
selectable: !1, | |
isolating: !1, | |
defining: !0, | |
draggable: !1, | |
group: "block", | |
parseDOM: [{ | |
tag: ".footnote" | |
}], | |
toDOM: t => { | |
const { | |
number: e | |
} = t.attrs; | |
return ["div", { | |
class: "footnote", | |
"data-component-name": "FootnoteToDOM" | |
}, | |
["a", { | |
id: `footnote-${e}`, | |
href: `#footnote-anchor-${e}`, | |
class: "footnote-number", | |
contenteditable: !1, | |
target: "_self" | |
}, `${e}`], | |
["div", { | |
class: "footnote-content" | |
}, 0] | |
] | |
}, | |
toDOMStatic: t => { | |
const { | |
number: e | |
} = t.attrs; | |
return ["div", { | |
class: "footnote", | |
"data-component-name": "FootnoteToDOMStatic" | |
}, | |
["span", { | |
class: "footnote-number" | |
}, `${e}`], | |
["div", { | |
class: "footnote-content" | |
}, 0] | |
] | |
} | |
}, | |
uoe = F({ | |
name: "footnote", | |
nodeSpec: Nm, | |
addCommands() { | |
return { | |
insertFootnote: () => ({ | |
state: t, | |
editor: e, | |
dispatch: n | |
}) => { | |
if (!xm(t)) return !1; | |
const { | |
schema: s | |
} = e, a = s.nodes.footnote.create({ | |
number: 1 | |
}, s.nodes.paragraph.create()), o = s.nodes.footnoteAnchor.create({ | |
number: 1 | |
}), r = t.tr, i = vm(r, s); | |
if (r.replaceWith(i, i, a), r.replaceSelectionWith(o), oi(r, s), n) { | |
try { | |
r.setSelection(Ee.create(r.doc, i + 2, i + 2)).scrollIntoView() | |
} catch (c) { | |
return console.error("could not set footnote text selection"), !1 | |
} | |
n(r) | |
} | |
return !0 | |
} | |
} | |
} | |
}), | |
Mm = { | |
attrs: { | |
number: { | |
default: 1 | |
} | |
}, | |
atom: !0, | |
selectable: !0, | |
isolating: !1, | |
defining: !0, | |
draggable: !0, | |
inline: !0, | |
group: "inline", | |
parseDOM: [{ | |
tag: ".footnote-anchor" | |
}], | |
toDOM: t => { | |
const { | |
number: e | |
} = t.attrs; | |
return ["a", { | |
class: "footnote-anchor", | |
"data-component-name": "FootnoteAnchorToDOM", | |
id: `footnote-anchor-${e}`, | |
href: `#footnote-${e}`, | |
target: "_self" | |
}, `${e}`] | |
}, | |
toDOMStatic: t => { | |
const { | |
number: e | |
} = t.attrs; | |
return ["span", { | |
class: "footnote-anchor-email", | |
"data-component-name": "FootnoteAnchorToDOMStatic" | |
}, `${Wf(e)}`] | |
} | |
}, | |
poe = F({ | |
name: "footnoteAnchor", | |
nodeSpec: Mm | |
}), | |
Om = { | |
content: "block+", | |
group: "block", | |
toDOM: () => ["div", { | |
"data-component-name": "FragmentNodeToDOM" | |
}, 0] | |
}, | |
doe = F({ | |
name: "fragmentNode", | |
nodeSpec: Om | |
}), | |
moe = Pr.extend({ | |
draggable: !0 | |
}), | |
Oo = 550, | |
Lm = { | |
attrs: { | |
src: { | |
default: "" | |
}, | |
height: { | |
default: null | |
}, | |
width: { | |
default: null | |
}, | |
alt: { | |
default: null | |
}, | |
title: { | |
default: null | |
} | |
}, | |
inline: !0, | |
group: "inline", | |
draggable: !0, | |
toDOM: t => { | |
const e = q(t.attrs.src, Oo * 2); | |
return ["img", { | |
style: t.attrs.height && t.attrs.width ? `max-width:${t.attrs.width}px;max-height:${t.attrs.height}px` : "", | |
src: e, | |
alt: t.attrs.alt, | |
title: t.attrs.title, | |
"data-component-name": "ImageToDOM" | |
}] | |
}, | |
toDOMStatic: t => { | |
if (t.attrs.height && t.attrs.width) { | |
const n = Math.min(t.attrs.width, Oo), | |
s = q(t.attrs.src, n); | |
return ["table", { | |
class: "image-wrapper", | |
width: "100%", | |
border: "0", | |
cellSpacing: "0", | |
cellPadding: "0", | |
"data-component-name": "ImageToDOMStatic" | |
}, | |
["tr", {}, | |
["td"], | |
["td", { | |
class: "content", | |
width: n | |
}], | |
["td"] | |
], | |
["tr", {}, | |
["td"], | |
["td", { | |
align: "left", | |
class: "content", | |
width: n | |
}, | |
["img", { | |
src: s, | |
alt: t.attrs.alt, | |
title: t.attrs.title | |
}] | |
], | |
["td"] | |
] | |
] | |
} | |
return ["img", { | |
src: q(t.attrs.src, Oo), | |
alt: t.attrs.alt, | |
title: t.attrs.title | |
}] | |
} | |
}, | |
foe = F({ | |
name: "image", | |
nodeSpec: Lm | |
}), | |
Rm = ({ | |
node: t, | |
editor: e | |
}) => p(wt, { | |
className: "image-gallery-embed", | |
"data-drag-handle": "" | |
}, p(Yh, { | |
node: t, | |
editor: e | |
})), | |
kn = "image-gallery-embed", | |
Ys = { | |
attrs: { | |
gallery: { | |
default: {} | |
}, | |
isEditorNode: { | |
default: !1 | |
} | |
}, | |
group: "block", | |
draggable: !0, | |
atom: !0, | |
selectable: !0, | |
isolating: !0, | |
defining: !0, | |
parseDOM: [{ | |
tag: kn, | |
getAttrs: re | |
}], | |
toDOM: t => { | |
if (typeof window != "undefined" && t.attrs.isEditorNode) try { | |
t.attrs.isEditor = !0; | |
const e = document.createElement("div"); | |
return e.className = kn, e.setAttribute("data-attrs", JSON.stringify(t.attrs)), Fe(p(Rm, { | |
node: S({}, t) | |
}), e), e | |
} catch (e) { | |
return console.error("Error rendering ImageGalleryComponent", e), Oe({ | |
msg: null, | |
node: t, | |
err: e, | |
group: "block" | |
}) | |
} | |
return hoe(t) | |
}, | |
toDOMStatic: t => ["div", { | |
class: kn, | |
"data-attrs": JSON.stringify(S({ | |
isEmail: !0 | |
}, t.attrs)) | |
}] | |
}, | |
hoe = t => ["div", { | |
class: kn, | |
"data-attrs": JSON.stringify(t.attrs) | |
}], | |
goe = Qt.create({ | |
name: "imageGallery", | |
group: Ys.group, | |
draggable: !0, | |
addAttributes() { | |
return { | |
gallery: { | |
default: {} | |
}, | |
isEditorNode: { | |
default: !0 | |
} | |
} | |
}, | |
parseHTML() { | |
return [{ | |
tag: kn | |
}] | |
}, | |
renderHTML({ | |
HTMLAttributes: t, | |
node: e | |
}) { | |
return this.options.isStatic && Ys.toDOMStatic ? Ys.toDOMStatic(e) : ["div", S({ | |
class: kn | |
}, en(t))] | |
}, | |
addNodeView() { | |
return kt(Rm) | |
}, | |
addCommands() { | |
return { | |
insertImageGallery: t => ({ | |
commands: e | |
}) => e.insertContent({ | |
type: this.name, | |
attrs: t | |
}), | |
updateImageGallery: t => ({ | |
commands: e | |
}) => e.updateAttributes(this.name, t) | |
} | |
} | |
}), | |
boe = { | |
normal: "large", | |
large: "full", | |
full: "normal" | |
}; | |
let pn; | |
const voe = ({ | |
alt: t, | |
onUpdateAlt: e | |
}) => { | |
const { | |
iString: n | |
} = ue(); | |
return p(Y, { | |
gap: 8, | |
justifyContent: "center", | |
className: Me.mediaControlTextEditor | |
}, p(Y, { | |
gap: 8 | |
}, p(X.B3, { | |
translated: !0, | |
font: "meta", | |
color: "secondary" | |
}, "Alt text"), p(rs, { | |
value: t, | |
onChange: s => e(s.currentTarget.value), | |
placeholder: n("Describe images…") | |
}))) | |
}, | |
xoe = ({ | |
href: t, | |
onSave: e | |
}) => { | |
const [n, s] = z(t || ""), { | |
iString: a | |
} = ue(), o = () => { | |
const r = kg.find(n, "url"); | |
r.length ? e(r[0].href.replace("http:", "https:")) : alert(a("Invalid url")) | |
}; | |
return p(Y, { | |
gap: 8, | |
justifyContent: "center", | |
className: Me.mediaControlTextEditor | |
}, p(Y, { | |
gap: 4 | |
}, p(X.B3, { | |
translated: !0, | |
font: "meta", | |
color: "secondary" | |
}, "URL"), p(rs, { | |
placeholder: "Add image link…", | |
value: n, | |
onChange: r => s(r.currentTarget.value) | |
})), p(ne, { | |
gap: 8 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment