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 hidden or 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