@readium/speech 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/build/index.cjs +27 -27
- package/build/index.js +703 -702
- package/build/preferences/SpeechDefaults.d.ts +3 -5
- package/build/preferences/SpeechPreferences.d.ts +3 -5
- package/build/preferences/SpeechPreferencesEditor.d.ts +2 -3
- package/build/preferences/SpeechSettings.d.ts +2 -3
- package/build/preferences/constraints.d.ts +2 -2
- package/build/speechNavigator.d.ts +2 -0
- package/build/utterance.d.ts +0 -1
- package/build/utterances/extractUtterances.d.ts +3 -1
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -401,7 +401,7 @@ const U = (t) => {
|
|
|
401
401
|
],
|
|
402
402
|
testUtterance: "你好,我叫 {name},係越中文聲。"
|
|
403
403
|
}
|
|
404
|
-
},
|
|
404
|
+
}, ut = /* @__PURE__ */ new Map(), ni = /* @__PURE__ */ Object.assign({ "../../json/ar.json": () => import("./ar-CJhBAgKq.js"), "../../json/bg.json": () => import("./bg-JvP4LoOT.js"), "../../json/bho.json": () => import("./bho-CpuLBMN3.js"), "../../json/bn.json": () => import("./bn-84u93pMd.js"), "../../json/ca.json": () => import("./ca-DdScTbex.js"), "../../json/cmn.json": () => import("./cmn-Dd1zrvTE.js"), "../../json/cs.json": () => import("./cs-CDMne0uc.js"), "../../json/da.json": () => import("./da-oFf4cHgj.js"), "../../json/de.json": () => import("./de-Bjgc3bVq.js"), "../../json/el.json": () => import("./el-FkKIcghI.js"), "../../json/en.json": () => import("./en-BELFJRDQ.js"), "../../json/es.json": () => import("./es-nAmbEkcR.js"), "../../json/eu.json": () => import("./eu-DxWirHU-.js"), "../../json/fa.json": () => import("./fa-CTVUniYi.js"), "../../json/fi.json": () => import("./fi-Do6QFzRv.js"), "../../json/fr.json": () => import("./fr-B5-P9o29.js"), "../../json/gl.json": () => import("./gl-DqSXeC_F.js"), "../../json/he.json": () => import("./he-CpyNwgaH.js"), "../../json/hi.json": () => import("./hi-CeOBacbl.js"), "../../json/hr.json": () => import("./hr-CSpU18l6.js"), "../../json/hu.json": () => import("./hu-oONHmpR6.js"), "../../json/id.json": () => import("./id-BpZuB5Iw.js"), "../../json/it.json": () => import("./it-CM4X84UA.js"), "../../json/ja.json": () => import("./ja-e-iw3c4_.js"), "../../json/kk.json": () => import("./kk-BdLCAb2s.js"), "../../json/kn.json": () => import("./kn-BYRvouO5.js"), "../../json/ko.json": () => import("./ko-EIouMDK1.js"), "../../json/mr.json": () => import("./mr-DN-hwEV1.js"), "../../json/ms.json": () => import("./ms-B5E3oaWE.js"), "../../json/nb.json": () => import("./nb-DOw05HBh.js"), "../../json/nl.json": () => import("./nl-CEydw4A9.js"), "../../json/pl.json": () => import("./pl-Ivj_eAP7.js"), "../../json/pt.json": () => import("./pt-BPEGqRmW.js"), "../../json/ro.json": () => import("./ro-BQ617SOx.js"), "../../json/ru.json": () => import("./ru-Dieeph4H.js"), "../../json/sk.json": () => import("./sk-pEiOt4GQ.js"), "../../json/sl.json": () => import("./sl-Z6jWAR8J.js"), "../../json/sv.json": () => import("./sv-BT09piiZ.js"), "../../json/ta.json": () => import("./ta-B0YMGW5q.js"), "../../json/te.json": () => import("./te-ax-HNsAY.js"), "../../json/th.json": () => import("./th-C7Dbxwoz.js"), "../../json/tr.json": () => import("./tr-mipEichO.js"), "../../json/uk.json": () => import("./uk-CHdx7DHz.js"), "../../json/vi.json": () => import("./vi-DrlcEwAD.js"), "../../json/wuu.json": () => import("./wuu-C6uQvT6g.js"), "../../json/yue.json": () => import("./yue-CFroa59o.js") });
|
|
405
405
|
async function ri(t) {
|
|
406
406
|
try {
|
|
407
407
|
const e = t.split("-")[0], n = ni[`../../json/${e}.json`];
|
|
@@ -422,13 +422,13 @@ async function ri(t) {
|
|
|
422
422
|
}
|
|
423
423
|
}
|
|
424
424
|
function dn(t) {
|
|
425
|
-
return
|
|
425
|
+
return ut.has(t) || ut.set(t, ri(t)), ut.get(t);
|
|
426
426
|
}
|
|
427
427
|
const ii = ["veryLow", "low", "normal", "high", "veryHigh"], si = ["android", "apple"], ai = (t) => ({
|
|
428
428
|
...t,
|
|
429
429
|
quality: t.quality?.filter((e) => ii.includes(e)),
|
|
430
430
|
localizedName: t.localizedName && si.includes(t.localizedName) ? t.localizedName : void 0
|
|
431
|
-
}),
|
|
431
|
+
}), Ae = {
|
|
432
432
|
cmn: "cmn",
|
|
433
433
|
"cmn-CN": "cmn-CN",
|
|
434
434
|
"cmn-TW": "cmn-TW",
|
|
@@ -447,8 +447,8 @@ const ii = ["veryLow", "low", "normal", "high", "veryHigh"], si = ["android", "a
|
|
|
447
447
|
const [n, r] = e.split("-");
|
|
448
448
|
e = `${n.toLowerCase()}-${r.toUpperCase()}`;
|
|
449
449
|
}
|
|
450
|
-
return
|
|
451
|
-
},
|
|
450
|
+
return Ae[e] || e;
|
|
451
|
+
}, Rt = async (t) => {
|
|
452
452
|
if (!t) return [];
|
|
453
453
|
try {
|
|
454
454
|
const e = D(t);
|
|
@@ -478,8 +478,8 @@ const ii = ["veryLow", "low", "normal", "high", "veryHigh"], si = ["android", "a
|
|
|
478
478
|
const e = D(t), n = j[e];
|
|
479
479
|
if (n?.testUtterance)
|
|
480
480
|
return n.testUtterance;
|
|
481
|
-
if (e in
|
|
482
|
-
const i =
|
|
481
|
+
if (e in Ae) {
|
|
482
|
+
const i = Ae[e];
|
|
483
483
|
if (i && j[i]?.testUtterance)
|
|
484
484
|
return j[i].testUtterance;
|
|
485
485
|
}
|
|
@@ -488,14 +488,14 @@ const ii = ["veryLow", "low", "normal", "high", "veryHigh"], si = ["android", "a
|
|
|
488
488
|
} catch (e) {
|
|
489
489
|
return console.error(`Error in getTestUtterance for ${t}:`, e), "";
|
|
490
490
|
}
|
|
491
|
-
},
|
|
491
|
+
}, Me = (t) => {
|
|
492
492
|
if (!t) return "";
|
|
493
493
|
try {
|
|
494
494
|
const e = D(t), n = j[e];
|
|
495
495
|
if (n?.defaultRegion)
|
|
496
496
|
return `${e}-${n.defaultRegion}`;
|
|
497
|
-
if (e in
|
|
498
|
-
const i =
|
|
497
|
+
if (e in Ae) {
|
|
498
|
+
const i = Ae[e];
|
|
499
499
|
if (i) {
|
|
500
500
|
const s = j[i];
|
|
501
501
|
if (s?.defaultRegion)
|
|
@@ -530,7 +530,7 @@ const ii = ["veryLow", "low", "normal", "high", "veryHigh"], si = ["android", "a
|
|
|
530
530
|
return g - f;
|
|
531
531
|
});
|
|
532
532
|
if (l.length === 0) {
|
|
533
|
-
const d =
|
|
533
|
+
const d = Me(i), [, u] = U(d);
|
|
534
534
|
u && l.push(u);
|
|
535
535
|
}
|
|
536
536
|
return {
|
|
@@ -539,7 +539,7 @@ const ii = ["veryLow", "low", "normal", "high", "veryHigh"], si = ["android", "a
|
|
|
539
539
|
};
|
|
540
540
|
});
|
|
541
541
|
};
|
|
542
|
-
async function
|
|
542
|
+
async function qe(t) {
|
|
543
543
|
const e = /* @__PURE__ */ new Map();
|
|
544
544
|
for (const r of t) {
|
|
545
545
|
if (r.source !== "json") continue;
|
|
@@ -548,7 +548,7 @@ async function $e(t) {
|
|
|
548
548
|
}
|
|
549
549
|
const n = /* @__PURE__ */ new Map();
|
|
550
550
|
for (const [r, i] of e.entries()) {
|
|
551
|
-
const s = /* @__PURE__ */ new Map(), o = await
|
|
551
|
+
const s = /* @__PURE__ */ new Map(), o = await Rt(r), a = /* @__PURE__ */ new Map();
|
|
552
552
|
o.forEach((c, l) => {
|
|
553
553
|
a.set(c.name.toLowerCase(), l), c.altNames?.forEach((d) => {
|
|
554
554
|
a.set(d.toLowerCase(), l);
|
|
@@ -566,21 +566,21 @@ const oi = [{ name: "Albert", nativeID: ["com.apple.speech.synthesis.voice.Alber
|
|
|
566
566
|
voices: oi
|
|
567
567
|
}, ci = [{ name: "Eddy", localizedName: "apple", note: "Eloquence voices are preloaded by default on Apple devices.", language: "en-US", otherLanguages: ["en-GB", "de-DE", "fr-FR", "fr-CA", "es-ES", "es-MX", "fi-FI", "it-IT", "ja-JP", "ko-KR", "pt-BR", "zh-CN", "zh-HK"], os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "Flo", localizedName: "apple", note: "Eloquence voices are preloaded by default on Apple devices.", language: "en-US", otherLanguages: ["en-GB", "de-DE", "fr-FR", "fr-CA", "es-ES", "es-MX", "fi-FI", "it-IT", "ja-JP", "ko-KR", "pt-BR", "zh-CN", "zh-HK"], os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "Grandma", localizedName: "apple", note: "Eloquence voices are preloaded by default on Apple devices.", language: "en-US", otherLanguages: ["en-GB", "de-DE", "fr-FR", "fr-CA", "es-ES", "es-MX", "fi-FI", "it-IT", "ja-JP", "ko-KR", "pt-BR", "zh-CN", "zh-HK"], os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "Grandpa", localizedName: "apple", note: "Eloquence voices are preloaded by default on Apple devices.", language: "en-US", otherLanguages: ["en-GB", "de-DE", "fr-FR", "fr-CA", "es-ES", "es-MX", "fi-FI", "it-IT", "ja-JP", "ko-KR", "pt-BR", "zh-CN", "zh-HK"], os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "Jacques", localizedName: "apple", note: "Eloquence voices are preloaded by default on Apple devices.", language: "en-US", otherLanguages: ["en-GB", "de-DE", "fr-FR", "fr-CA", "es-ES", "es-MX", "fi-FI", "it-IT", "ja-JP", "ko-KR", "pt-BR", "zh-CN", "zh-HK"], os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "Reed", localizedName: "apple", note: "Eloquence voices are preloaded by default on Apple devices.", language: "en-US", otherLanguages: ["en-GB", "de-DE", "fr-FR", "fr-CA", "es-ES", "es-MX", "fi-FI", "it-IT", "ja-JP", "ko-KR", "pt-BR", "zh-CN", "zh-HK"], os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "Rocko", localizedName: "apple", note: "Eloquence voices are preloaded by default on Apple devices.", language: "en-US", otherLanguages: ["en-GB", "de-DE", "fr-FR", "fr-CA", "es-ES", "es-MX", "fi-FI", "it-IT", "ja-JP", "ko-KR", "pt-BR", "zh-CN", "zh-HK"], os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "Sandy", localizedName: "apple", note: "Eloquence voices are preloaded by default on Apple devices.", language: "en-US", otherLanguages: ["en-GB", "de-DE", "fr-FR", "fr-CA", "es-ES", "es-MX", "fi-FI", "it-IT", "ja-JP", "ko-KR", "pt-BR", "zh-CN", "zh-HK"], os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "Shelley", localizedName: "apple", note: "Eloquence voices are preloaded by default on Apple devices.", language: "en-US", otherLanguages: ["en-GB", "de-DE", "fr-FR", "fr-CA", "es-ES", "es-MX", "fi-FI", "it-IT", "ja-JP", "ko-KR", "pt-BR", "zh-CN", "zh-HK"], os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "Fred", language: "en-US", os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "Junior", language: "en-US", os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "Kathy", language: "en-US", os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "Ralph", language: "en-US", os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { name: "eSpeak Arabic", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "ar", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Bulgarian", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "bg", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Bengali", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "bn", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Catalan", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "ca", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Chinese (Mandarin, latin as English)", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "cmn", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Czech", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "cs", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Danish", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "da", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak German", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "de", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Greek", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "el", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Spanish (Spain)", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "es", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Estonian", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "et", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Finnish", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "fi", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Gujarati", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "gu", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Croatian", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "hr", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Hungarian", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "hu", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Indonesian", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "id", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Italian", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "it", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Kannada", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "kn", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Korean", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "ko", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Lithuanian", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "lt", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Latvian", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "lv", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Malayalm", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "ml", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Marathi", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "mr", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Malay", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "ms", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Norwegian Bokmål", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "nb", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Polish", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "pl", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Portuguese (Brazil)", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "pt-br", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Romanian", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "ro", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Russian", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "ru", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Slovak", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "sk", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Slovenian", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "sl", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Serbian", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "sv", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Swedish", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "sv", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Swahili", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "sw", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Tamil", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "ta", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Telugu", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "te", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Turkish", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "tr", os: ["ChromeOS"], preloaded: !0 }, { name: "eSpeak Vietnamese (Northern)", note: "eSpeak voices are preloaded by default on Chrome OS.", language: "vi", os: ["ChromeOS"], preloaded: !0 }], ui = {
|
|
568
568
|
voices: ci
|
|
569
|
-
}, hi = li, di = ui,
|
|
569
|
+
}, hi = li, di = ui, Nt = (t, e) => hi.voices.some(
|
|
570
570
|
(n) => t.includes(n.name) || e && n.nativeID?.some((r) => e.includes(r)) || n.altNames?.some((r) => t.includes(r))
|
|
571
571
|
), It = (t, e) => di.voices.some(
|
|
572
572
|
(n) => t.includes(n.name)
|
|
573
|
-
) || e === "veryLow", pn = (t) => t?.length ? t.filter((e) => !(e.isNovelty ||
|
|
573
|
+
) || e === "veryLow", pn = (t) => t?.length ? t.filter((e) => !(e.isNovelty || Nt(e.name, e.voiceURI))) : [], mn = (t) => t?.length ? t.filter((e) => !It(e.name, e.quality)) : [], gi = { ar: { normal: "محسن", high: "استثنائي" }, ca: { normal: "millorada", high: "prèmium" }, "cmn-CN": { normal: "优化音质", high: "高音质" }, "cmn-TW": { normal: "增強音質", high: "高音質" }, cs: { normal: "vylepšená verze", high: "prémiový" }, da: { normal: "forbedret", high: "høj kvalitet" }, de: { normal: "erweitert", high: "premium" }, el: { normal: "βελτιωμένη", high: "υψηλής ποιότητας" }, en: { normal: "Enhanced", high: "Premium" }, es: { normal: "mejorada", high: "premium" }, fi: { normal: "parannettu", high: "korkealaatuinen" }, fr: { normal: "premium", high: "de qualité" }, he: { normal: "משופר", high: "פרימיום" }, hi: { normal: "बेहतर", high: "प्रीमियम" }, hr: { normal: "poboljšani", high: "vrhunski" }, hu: { normal: "továbbfejlesztett", high: "prémium" }, id: { normal: "Ditingkatkan", high: "Premium" }, it: { normal: "ottimizzata", high: "premium" }, ja: { normal: "拡張", high: "プレミアム" }, ko: { normal: "고품질", high: "프리미엄" }, ms: { normal: "Dipertingkat", high: "Premium" }, nb: { normal: "forbedret", high: "premium" }, nl: { normal: "verbeterd", high: "premium" }, pl: { normal: "rozszerzony", high: "premium" }, pt: { normal: "melhorada", high: "premium" }, ro: { normal: "îmbunătățită", high: "premium" }, ru: { normal: "улучшенный", high: "высшее качество" }, sk: { normal: "vylepšený", high: "prémiový" }, sl: { normal: "izboljšano", high: "prvovrsten" }, sv: { normal: "förbättrad", high: "premium" }, th: { normal: "คุณภาพสูง", high: "คุณภาพสูง" }, tr: { normal: "Geliştirilmiş", high: "Yüksek Kaliteli" }, uk: { normal: "вдосконалений", high: "високої якості" }, vi: { normal: "Nâng cao", high: "Cao cấp" } }, fi = {
|
|
574
574
|
quality: gi
|
|
575
|
-
},
|
|
575
|
+
}, Lt = {
|
|
576
576
|
apple: fi.quality
|
|
577
577
|
// android: androidQualities.quality
|
|
578
578
|
}, pi = (t, e, n) => {
|
|
579
579
|
if (!t) return;
|
|
580
580
|
const r = Array.isArray(n) ? n : n ? [n] : [];
|
|
581
581
|
for (const i of r)
|
|
582
|
-
if (i &&
|
|
583
|
-
const s =
|
|
582
|
+
if (i && Lt[i]) {
|
|
583
|
+
const s = Lt[i], o = U(e)[0], a = s[e] || s[o];
|
|
584
584
|
if (a) {
|
|
585
585
|
const c = t.toLowerCase(), { normal: l, high: d } = a;
|
|
586
586
|
if (d && c.includes(d.toLowerCase()))
|
|
@@ -590,7 +590,7 @@ const oi = [{ name: "Albert", nativeID: ["com.apple.speech.synthesis.voice.Alber
|
|
|
590
590
|
}
|
|
591
591
|
}
|
|
592
592
|
}, mi = (t, e) => {
|
|
593
|
-
const n =
|
|
593
|
+
const n = Lt[e];
|
|
594
594
|
if (n)
|
|
595
595
|
for (const [r, { high: i, normal: s }] of Object.entries(n)) {
|
|
596
596
|
const o = i && t.some((c) => c.includes(i)), a = s && t.some((c) => c.includes(s));
|
|
@@ -962,8 +962,8 @@ class k {
|
|
|
962
962
|
return await Promise.all(
|
|
963
963
|
e.filter((i) => i?.name && i?.lang).map(async (i) => {
|
|
964
964
|
const s = D(i.lang), [o] = k.extractLangRegionFromBCP47(s), a = this.normalizeVoiceName(i.name), c = `${i.lang.toLowerCase()}_${a}`, l = n.get(c) || 1;
|
|
965
|
-
let d = await
|
|
966
|
-
(!d || d.length === 0) && (d = await
|
|
965
|
+
let d = await Rt(s);
|
|
966
|
+
(!d || d.length === 0) && (d = await Rt(o));
|
|
967
967
|
const u = this.findMatchingJsonVoice(d, a), g = this.inferVoiceQuality(i, u, l);
|
|
968
968
|
return u ? {
|
|
969
969
|
...u,
|
|
@@ -975,7 +975,7 @@ class k {
|
|
|
975
975
|
quality: g,
|
|
976
976
|
isDefault: i.default || !1,
|
|
977
977
|
offlineAvailability: i.localService || !1,
|
|
978
|
-
isNovelty:
|
|
978
|
+
isNovelty: Nt(i.name, i.voiceURI),
|
|
979
979
|
isLowQuality: It(i.name, g)
|
|
980
980
|
} : {
|
|
981
981
|
source: "browser",
|
|
@@ -987,7 +987,7 @@ class k {
|
|
|
987
987
|
quality: g,
|
|
988
988
|
isDefault: i.default || !1,
|
|
989
989
|
offlineAvailability: i.localService || !1,
|
|
990
|
-
isNovelty:
|
|
990
|
+
isNovelty: Nt(i.name, i.voiceURI),
|
|
991
991
|
isLowQuality: It(i.name, g)
|
|
992
992
|
};
|
|
993
993
|
})
|
|
@@ -1095,7 +1095,7 @@ class k {
|
|
|
1095
1095
|
async sortVoicesByQuality(e) {
|
|
1096
1096
|
const n = e || this.voices;
|
|
1097
1097
|
if (!n?.length) return [];
|
|
1098
|
-
const r = await
|
|
1098
|
+
const r = await qe(n);
|
|
1099
1099
|
return [...n].sort((i, s) => k.sortByQuality(i, s, r));
|
|
1100
1100
|
}
|
|
1101
1101
|
/**
|
|
@@ -1113,7 +1113,7 @@ class k {
|
|
|
1113
1113
|
* Sort regions by default then alphabetically, sort voices by quality
|
|
1114
1114
|
*/
|
|
1115
1115
|
static async sortByDefaultRegion(e, n) {
|
|
1116
|
-
const r = await
|
|
1116
|
+
const r = await qe(e), i = Me(n);
|
|
1117
1117
|
e.sort((s, o) => {
|
|
1118
1118
|
const [, a] = k.extractLangRegionFromBCP47(s.language), [, c] = k.extractLangRegionFromBCP47(o.language), l = i && a === i.split("-")[1], d = i && c === i.split("-")[1];
|
|
1119
1119
|
return l && !d ? -1 : !l && d ? 1 : k.sortByQuality(s, o, r, n);
|
|
@@ -1123,13 +1123,13 @@ class k {
|
|
|
1123
1123
|
* Sort voices alphabetically by language, then region, then quality
|
|
1124
1124
|
*/
|
|
1125
1125
|
static async sortAlphabetically(e) {
|
|
1126
|
-
const n = await
|
|
1126
|
+
const n = await qe(e);
|
|
1127
1127
|
e.sort((r, i) => {
|
|
1128
1128
|
const [s] = k.extractLangRegionFromBCP47(r.language), [o] = k.extractLangRegionFromBCP47(i.language), a = k.getLanguageDisplayName(s).toLowerCase(), c = k.getLanguageDisplayName(o).toLowerCase(), l = a.localeCompare(c);
|
|
1129
1129
|
if (l !== 0)
|
|
1130
1130
|
return l;
|
|
1131
1131
|
if (s === o) {
|
|
1132
|
-
const d =
|
|
1132
|
+
const d = Me(s), [, u] = k.extractLangRegionFromBCP47(r.language), [, g] = k.extractLangRegionFromBCP47(i.language), f = d && u === d.split("-")[1], y = d && g === d.split("-")[1];
|
|
1133
1133
|
if (f && !y) return -1;
|
|
1134
1134
|
if (!f && y) return 1;
|
|
1135
1135
|
if (u && g) {
|
|
@@ -1166,7 +1166,7 @@ class k {
|
|
|
1166
1166
|
* Sort languages by region preference, then voices by quality
|
|
1167
1167
|
*/
|
|
1168
1168
|
static async sortByPreferredRegion(e, n) {
|
|
1169
|
-
const r = await
|
|
1169
|
+
const r = await qe(e);
|
|
1170
1170
|
e.sort((i, s) => {
|
|
1171
1171
|
const [, o] = k.extractLangRegionFromBCP47(i.language), [, a] = k.extractLangRegionFromBCP47(s.language), c = o && n.regions.includes(o), l = a && n.regions.includes(a);
|
|
1172
1172
|
if (c && l) {
|
|
@@ -1175,7 +1175,7 @@ class k {
|
|
|
1175
1175
|
}
|
|
1176
1176
|
if (c) return -1;
|
|
1177
1177
|
if (l) return 1;
|
|
1178
|
-
const d =
|
|
1178
|
+
const d = Me(n.baseLang), [, u] = k.extractLangRegionFromBCP47(d), g = o === u, f = a === u;
|
|
1179
1179
|
if (g && !f) return -1;
|
|
1180
1180
|
if (!g && f) return 1;
|
|
1181
1181
|
if (o && a) {
|
|
@@ -1258,7 +1258,7 @@ const wi = ["webKit", "moz", "ms", "o"], Si = [
|
|
|
1258
1258
|
const r = `on${n}`;
|
|
1259
1259
|
t[r] = e && t.speechSynthesisUtterance ? be(t.speechSynthesisUtterance.prototype, r) : !1;
|
|
1260
1260
|
}), t;
|
|
1261
|
-
},
|
|
1261
|
+
}, Ai = () => {
|
|
1262
1262
|
const e = typeof window < "u" && (window.navigator || {}).userAgent || "", n = () => /android/i.test(e), r = () => /kaios/i.test(e), i = () => typeof window.InstallTrigger < "u" ? !0 : /firefox/i.test(e), s = () => typeof window.GestureEvent < "u" || /safari/i.test(e);
|
|
1263
1263
|
return {
|
|
1264
1264
|
isAndroid: n(),
|
|
@@ -1267,13 +1267,13 @@ const wi = ["webKit", "moz", "ms", "o"], Si = [
|
|
|
1267
1267
|
isKaiOS: r()
|
|
1268
1268
|
};
|
|
1269
1269
|
};
|
|
1270
|
-
function
|
|
1270
|
+
function Oi(t) {
|
|
1271
1271
|
return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
|
|
1272
1272
|
}
|
|
1273
|
-
var
|
|
1273
|
+
var ht, bn;
|
|
1274
1274
|
function Ti() {
|
|
1275
|
-
if (bn) return
|
|
1276
|
-
bn = 1,
|
|
1275
|
+
if (bn) return ht;
|
|
1276
|
+
bn = 1, ht = e;
|
|
1277
1277
|
function t(r) {
|
|
1278
1278
|
return r instanceof Buffer ? Buffer.from(r) : new r.constructor(r.buffer.slice(), r.byteOffset, r.length);
|
|
1279
1279
|
}
|
|
@@ -1389,32 +1389,32 @@ function Ti() {
|
|
|
1389
1389
|
return i.pop(), s.pop(), g;
|
|
1390
1390
|
}
|
|
1391
1391
|
}
|
|
1392
|
-
return
|
|
1392
|
+
return ht;
|
|
1393
1393
|
}
|
|
1394
1394
|
var Ri = Ti();
|
|
1395
|
-
const
|
|
1396
|
-
|
|
1397
|
-
function
|
|
1395
|
+
const lr = /* @__PURE__ */ Oi(Ri);
|
|
1396
|
+
lr();
|
|
1397
|
+
function Pt(t) {
|
|
1398
1398
|
if (t == null || typeof t != "object") return !1;
|
|
1399
1399
|
let e = Object.getPrototypeOf(t);
|
|
1400
1400
|
return e !== null && e !== Object.prototype && Object.getPrototypeOf(e) !== null ? !1 : !(Symbol.iterator in t) && !(Symbol.toStringTag in t);
|
|
1401
1401
|
}
|
|
1402
|
-
function
|
|
1402
|
+
function ne(t) {
|
|
1403
1403
|
return typeof t == "string";
|
|
1404
1404
|
}
|
|
1405
1405
|
function Ni(t) {
|
|
1406
1406
|
return Number.isFinite(t);
|
|
1407
1407
|
}
|
|
1408
|
-
function
|
|
1408
|
+
function Y(t) {
|
|
1409
1409
|
return Number.isSafeInteger(t) && t >= 0;
|
|
1410
1410
|
}
|
|
1411
1411
|
function G(t) {
|
|
1412
1412
|
return t != null;
|
|
1413
1413
|
}
|
|
1414
|
-
function
|
|
1415
|
-
return
|
|
1414
|
+
function Ii(t, e) {
|
|
1415
|
+
return Pt(t) && ne(e) && e in t;
|
|
1416
1416
|
}
|
|
1417
|
-
var
|
|
1417
|
+
var Li = typeof globalThis == "object" && globalThis && globalThis.Object === Object && globalThis, Pi = typeof self == "object" && self && self.Object === Object && self, Gt = Li || Pi || Function("return this")(), ue = Gt.Symbol, cr = Object.prototype, qi = cr.hasOwnProperty, $i = cr.toString, ve = ue ? ue.toStringTag : void 0;
|
|
1418
1418
|
function Di(t) {
|
|
1419
1419
|
var e = qi.call(t, ve), n = t[ve];
|
|
1420
1420
|
try {
|
|
@@ -1430,15 +1430,15 @@ function Ui(t) {
|
|
|
1430
1430
|
return Bi.call(t);
|
|
1431
1431
|
}
|
|
1432
1432
|
var zi = "[object Null]", ji = "[object Undefined]", vn = ue ? ue.toStringTag : void 0;
|
|
1433
|
-
function
|
|
1433
|
+
function ur(t) {
|
|
1434
1434
|
return t == null ? t === void 0 ? ji : zi : vn && vn in Object(t) ? Di(t) : Ui(t);
|
|
1435
1435
|
}
|
|
1436
|
-
function
|
|
1436
|
+
function hr(t) {
|
|
1437
1437
|
return t != null && typeof t == "object";
|
|
1438
1438
|
}
|
|
1439
1439
|
var Vi = "[object Symbol]";
|
|
1440
1440
|
function Fi(t) {
|
|
1441
|
-
return typeof t == "symbol" ||
|
|
1441
|
+
return typeof t == "symbol" || hr(t) && ur(t) == Vi;
|
|
1442
1442
|
}
|
|
1443
1443
|
function Hi(t, e) {
|
|
1444
1444
|
for (var n = -1, r = t == null ? 0 : t.length, i = Array(r); ++n < r; )
|
|
@@ -1446,11 +1446,11 @@ function Hi(t, e) {
|
|
|
1446
1446
|
return i;
|
|
1447
1447
|
}
|
|
1448
1448
|
var Mi = Array.isArray, wn = ue ? ue.prototype : void 0, Sn = wn ? wn.toString : void 0;
|
|
1449
|
-
function
|
|
1449
|
+
function Wt(t) {
|
|
1450
1450
|
if (typeof t == "string")
|
|
1451
1451
|
return t;
|
|
1452
1452
|
if (Mi(t))
|
|
1453
|
-
return Hi(t,
|
|
1453
|
+
return Hi(t, Wt) + "";
|
|
1454
1454
|
if (Fi(t))
|
|
1455
1455
|
return Sn ? Sn.call(t) : "";
|
|
1456
1456
|
var e = t + "";
|
|
@@ -1466,22 +1466,22 @@ var Ki = /^\s+/;
|
|
|
1466
1466
|
function Ji(t) {
|
|
1467
1467
|
return t && t.slice(0, Wi(t) + 1).replace(Ki, "");
|
|
1468
1468
|
}
|
|
1469
|
-
function
|
|
1469
|
+
function dr(t) {
|
|
1470
1470
|
var e = typeof t;
|
|
1471
1471
|
return t != null && (e == "object" || e == "function");
|
|
1472
1472
|
}
|
|
1473
|
-
function
|
|
1473
|
+
function gr(t) {
|
|
1474
1474
|
return t;
|
|
1475
1475
|
}
|
|
1476
1476
|
var Qi = "[object AsyncFunction]", Xi = "[object Function]", Zi = "[object GeneratorFunction]", Yi = "[object Proxy]";
|
|
1477
|
-
function
|
|
1478
|
-
if (!
|
|
1477
|
+
function fr(t) {
|
|
1478
|
+
if (!dr(t))
|
|
1479
1479
|
return !1;
|
|
1480
|
-
var e =
|
|
1480
|
+
var e = ur(t);
|
|
1481
1481
|
return e == Xi || e == Zi || e == Qi || e == Yi;
|
|
1482
1482
|
}
|
|
1483
|
-
var
|
|
1484
|
-
var t = /[^.]+$/.exec(
|
|
1483
|
+
var dt = Gt["__core-js_shared__"], xn = (function() {
|
|
1484
|
+
var t = /[^.]+$/.exec(dt && dt.keys && dt.keys.IE_PROTO || "");
|
|
1485
1485
|
return t ? "Symbol(src)_1." + t : "";
|
|
1486
1486
|
})();
|
|
1487
1487
|
function es(t) {
|
|
@@ -1505,15 +1505,15 @@ var is = /[\\^$.*+?()[\]{}|]/g, ss = /^\[object .+?Constructor\]$/, as = Functio
|
|
|
1505
1505
|
"^" + ls.call(cs).replace(is, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
|
|
1506
1506
|
);
|
|
1507
1507
|
function hs(t) {
|
|
1508
|
-
if (!
|
|
1508
|
+
if (!dr(t) || es(t))
|
|
1509
1509
|
return !1;
|
|
1510
|
-
var e =
|
|
1510
|
+
var e = fr(t) ? us : ss;
|
|
1511
1511
|
return e.test(rs(t));
|
|
1512
1512
|
}
|
|
1513
1513
|
function ds(t, e) {
|
|
1514
1514
|
return t?.[e];
|
|
1515
1515
|
}
|
|
1516
|
-
function
|
|
1516
|
+
function Kt(t, e) {
|
|
1517
1517
|
var n = ds(t, e);
|
|
1518
1518
|
return hs(n) ? n : void 0;
|
|
1519
1519
|
}
|
|
@@ -1550,7 +1550,7 @@ function bs(t) {
|
|
|
1550
1550
|
}
|
|
1551
1551
|
var kn = (function() {
|
|
1552
1552
|
try {
|
|
1553
|
-
var t =
|
|
1553
|
+
var t = Kt(Object, "defineProperty");
|
|
1554
1554
|
return t({}, "", {}), t;
|
|
1555
1555
|
} catch {
|
|
1556
1556
|
}
|
|
@@ -1561,7 +1561,7 @@ var kn = (function() {
|
|
|
1561
1561
|
value: bs(e),
|
|
1562
1562
|
writable: !0
|
|
1563
1563
|
});
|
|
1564
|
-
} :
|
|
1564
|
+
} : gr, ws = ys(vs);
|
|
1565
1565
|
function Ss(t, e, n, r) {
|
|
1566
1566
|
for (var i = t.length, s = n + -1; ++s < i; )
|
|
1567
1567
|
if (e(t[s], s, t))
|
|
@@ -1577,18 +1577,18 @@ function ks(t, e, n) {
|
|
|
1577
1577
|
return r;
|
|
1578
1578
|
return -1;
|
|
1579
1579
|
}
|
|
1580
|
-
function
|
|
1580
|
+
function Jt(t, e, n) {
|
|
1581
1581
|
return e === e ? ks(t, e, n) : Ss(t, xs, n);
|
|
1582
1582
|
}
|
|
1583
1583
|
function Cs(t, e) {
|
|
1584
1584
|
var n = t == null ? 0 : t.length;
|
|
1585
|
-
return !!n &&
|
|
1585
|
+
return !!n && Jt(t, e, 0) > -1;
|
|
1586
1586
|
}
|
|
1587
1587
|
function Es(t, e) {
|
|
1588
1588
|
return t === e || t !== t && e !== e;
|
|
1589
1589
|
}
|
|
1590
1590
|
var Cn = Math.max;
|
|
1591
|
-
function
|
|
1591
|
+
function As(t, e, n) {
|
|
1592
1592
|
return e = Cn(e === void 0 ? t.length - 1 : e, 0), function() {
|
|
1593
1593
|
for (var r = arguments, i = -1, s = Cn(r.length - e, 0), o = Array(s); ++i < s; )
|
|
1594
1594
|
o[i] = r[e + i];
|
|
@@ -1598,28 +1598,28 @@ function Os(t, e, n) {
|
|
|
1598
1598
|
return a[e] = n(o), gs(t, this, a);
|
|
1599
1599
|
};
|
|
1600
1600
|
}
|
|
1601
|
-
function
|
|
1602
|
-
return ws(
|
|
1601
|
+
function Os(t, e) {
|
|
1602
|
+
return ws(As(t, e, gr), t + "");
|
|
1603
1603
|
}
|
|
1604
1604
|
var Ts = 9007199254740991;
|
|
1605
1605
|
function Rs(t) {
|
|
1606
1606
|
return typeof t == "number" && t > -1 && t % 1 == 0 && t <= Ts;
|
|
1607
1607
|
}
|
|
1608
1608
|
function Ns(t) {
|
|
1609
|
-
return t != null && Rs(t.length) && !
|
|
1609
|
+
return t != null && Rs(t.length) && !fr(t);
|
|
1610
1610
|
}
|
|
1611
|
-
var
|
|
1612
|
-
function
|
|
1613
|
-
this.__data__ =
|
|
1611
|
+
var Oe = Kt(Object, "create");
|
|
1612
|
+
function Is() {
|
|
1613
|
+
this.__data__ = Oe ? Oe(null) : {}, this.size = 0;
|
|
1614
1614
|
}
|
|
1615
|
-
function
|
|
1615
|
+
function Ls(t) {
|
|
1616
1616
|
var e = this.has(t) && delete this.__data__[t];
|
|
1617
1617
|
return this.size -= e ? 1 : 0, e;
|
|
1618
1618
|
}
|
|
1619
1619
|
var Ps = "__lodash_hash_undefined__", qs = Object.prototype, $s = qs.hasOwnProperty;
|
|
1620
1620
|
function Ds(t) {
|
|
1621
1621
|
var e = this.__data__;
|
|
1622
|
-
if (
|
|
1622
|
+
if (Oe) {
|
|
1623
1623
|
var n = e[t];
|
|
1624
1624
|
return n === Ps ? void 0 : n;
|
|
1625
1625
|
}
|
|
@@ -1628,29 +1628,29 @@ function Ds(t) {
|
|
|
1628
1628
|
var _s = Object.prototype, Bs = _s.hasOwnProperty;
|
|
1629
1629
|
function Us(t) {
|
|
1630
1630
|
var e = this.__data__;
|
|
1631
|
-
return
|
|
1631
|
+
return Oe ? e[t] !== void 0 : Bs.call(e, t);
|
|
1632
1632
|
}
|
|
1633
1633
|
var zs = "__lodash_hash_undefined__";
|
|
1634
1634
|
function js(t, e) {
|
|
1635
1635
|
var n = this.__data__;
|
|
1636
|
-
return this.size += this.has(t) ? 0 : 1, n[t] =
|
|
1636
|
+
return this.size += this.has(t) ? 0 : 1, n[t] = Oe && e === void 0 ? zs : e, this;
|
|
1637
1637
|
}
|
|
1638
|
-
function
|
|
1638
|
+
function Q(t) {
|
|
1639
1639
|
var e = -1, n = t == null ? 0 : t.length;
|
|
1640
1640
|
for (this.clear(); ++e < n; ) {
|
|
1641
1641
|
var r = t[e];
|
|
1642
1642
|
this.set(r[0], r[1]);
|
|
1643
1643
|
}
|
|
1644
1644
|
}
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1645
|
+
Q.prototype.clear = Is;
|
|
1646
|
+
Q.prototype.delete = Ls;
|
|
1647
|
+
Q.prototype.get = Ds;
|
|
1648
|
+
Q.prototype.has = Us;
|
|
1649
|
+
Q.prototype.set = js;
|
|
1650
1650
|
function Vs() {
|
|
1651
1651
|
this.__data__ = [], this.size = 0;
|
|
1652
1652
|
}
|
|
1653
|
-
function
|
|
1653
|
+
function st(t, e) {
|
|
1654
1654
|
for (var n = t.length; n--; )
|
|
1655
1655
|
if (Es(t[n][0], e))
|
|
1656
1656
|
return n;
|
|
@@ -1658,21 +1658,21 @@ function at(t, e) {
|
|
|
1658
1658
|
}
|
|
1659
1659
|
var Fs = Array.prototype, Hs = Fs.splice;
|
|
1660
1660
|
function Ms(t) {
|
|
1661
|
-
var e = this.__data__, n =
|
|
1661
|
+
var e = this.__data__, n = st(e, t);
|
|
1662
1662
|
if (n < 0)
|
|
1663
1663
|
return !1;
|
|
1664
1664
|
var r = e.length - 1;
|
|
1665
1665
|
return n == r ? e.pop() : Hs.call(e, n, 1), --this.size, !0;
|
|
1666
1666
|
}
|
|
1667
1667
|
function Gs(t) {
|
|
1668
|
-
var e = this.__data__, n =
|
|
1668
|
+
var e = this.__data__, n = st(e, t);
|
|
1669
1669
|
return n < 0 ? void 0 : e[n][1];
|
|
1670
1670
|
}
|
|
1671
1671
|
function Ws(t) {
|
|
1672
|
-
return
|
|
1672
|
+
return st(this.__data__, t) > -1;
|
|
1673
1673
|
}
|
|
1674
1674
|
function Ks(t, e) {
|
|
1675
|
-
var n = this.__data__, r =
|
|
1675
|
+
var n = this.__data__, r = st(n, t);
|
|
1676
1676
|
return r < 0 ? (++this.size, n.push([t, e])) : n[r][1] = e, this;
|
|
1677
1677
|
}
|
|
1678
1678
|
function ge(t) {
|
|
@@ -1687,34 +1687,34 @@ ge.prototype.delete = Ms;
|
|
|
1687
1687
|
ge.prototype.get = Gs;
|
|
1688
1688
|
ge.prototype.has = Ws;
|
|
1689
1689
|
ge.prototype.set = Ks;
|
|
1690
|
-
var Js =
|
|
1690
|
+
var Js = Kt(Gt, "Map");
|
|
1691
1691
|
function Qs() {
|
|
1692
1692
|
this.size = 0, this.__data__ = {
|
|
1693
|
-
hash: new
|
|
1693
|
+
hash: new Q(),
|
|
1694
1694
|
map: new (Js || ge)(),
|
|
1695
|
-
string: new
|
|
1695
|
+
string: new Q()
|
|
1696
1696
|
};
|
|
1697
1697
|
}
|
|
1698
1698
|
function Xs(t) {
|
|
1699
1699
|
var e = typeof t;
|
|
1700
1700
|
return e == "string" || e == "number" || e == "symbol" || e == "boolean" ? t !== "__proto__" : t === null;
|
|
1701
1701
|
}
|
|
1702
|
-
function
|
|
1702
|
+
function at(t, e) {
|
|
1703
1703
|
var n = t.__data__;
|
|
1704
1704
|
return Xs(e) ? n[typeof e == "string" ? "string" : "hash"] : n.map;
|
|
1705
1705
|
}
|
|
1706
1706
|
function Zs(t) {
|
|
1707
|
-
var e =
|
|
1707
|
+
var e = at(this, t).delete(t);
|
|
1708
1708
|
return this.size -= e ? 1 : 0, e;
|
|
1709
1709
|
}
|
|
1710
1710
|
function Ys(t) {
|
|
1711
|
-
return
|
|
1711
|
+
return at(this, t).get(t);
|
|
1712
1712
|
}
|
|
1713
1713
|
function ea(t) {
|
|
1714
|
-
return
|
|
1714
|
+
return at(this, t).has(t);
|
|
1715
1715
|
}
|
|
1716
1716
|
function ta(t, e) {
|
|
1717
|
-
var n =
|
|
1717
|
+
var n = at(this, t), r = n.size;
|
|
1718
1718
|
return n.set(t, e), this.size += n.size == r ? 0 : 1, this;
|
|
1719
1719
|
}
|
|
1720
1720
|
function fe(t) {
|
|
@@ -1730,7 +1730,7 @@ fe.prototype.get = Ys;
|
|
|
1730
1730
|
fe.prototype.has = ea;
|
|
1731
1731
|
fe.prototype.set = ta;
|
|
1732
1732
|
function na(t) {
|
|
1733
|
-
return t == null ? "" :
|
|
1733
|
+
return t == null ? "" : Wt(t);
|
|
1734
1734
|
}
|
|
1735
1735
|
function ra(t, e, n) {
|
|
1736
1736
|
var r = -1, i = t.length;
|
|
@@ -1750,12 +1750,12 @@ function ga(t) {
|
|
|
1750
1750
|
function fa(t) {
|
|
1751
1751
|
return t.split("");
|
|
1752
1752
|
}
|
|
1753
|
-
var
|
|
1754
|
-
function
|
|
1755
|
-
return t.match(
|
|
1753
|
+
var pr = "\\ud800-\\udfff", pa = "\\u0300-\\u036f", ma = "\\ufe20-\\ufe2f", ya = "\\u20d0-\\u20ff", ba = pa + ma + ya, va = "\\ufe0e\\ufe0f", wa = "[" + pr + "]", qt = "[" + ba + "]", $t = "\\ud83c[\\udffb-\\udfff]", Sa = "(?:" + qt + "|" + $t + ")", mr = "[^" + pr + "]", yr = "(?:\\ud83c[\\udde6-\\uddff]){2}", br = "[\\ud800-\\udbff][\\udc00-\\udfff]", xa = "\\u200d", vr = Sa + "?", wr = "[" + va + "]?", ka = "(?:" + xa + "(?:" + [mr, yr, br].join("|") + ")" + wr + vr + ")*", Ca = wr + vr + ka, Ea = "(?:" + [mr + qt + "?", qt, yr, br, wa].join("|") + ")", Aa = RegExp($t + "(?=" + $t + ")|" + Ea + Ca, "g");
|
|
1754
|
+
function Oa(t) {
|
|
1755
|
+
return t.match(Aa) || [];
|
|
1756
1756
|
}
|
|
1757
1757
|
function En(t) {
|
|
1758
|
-
return ga(t) ?
|
|
1758
|
+
return ga(t) ? Oa(t) : fa(t);
|
|
1759
1759
|
}
|
|
1760
1760
|
var Ta = "__lodash_hash_undefined__";
|
|
1761
1761
|
function Ra(t) {
|
|
@@ -1764,25 +1764,25 @@ function Ra(t) {
|
|
|
1764
1764
|
function Na(t) {
|
|
1765
1765
|
return this.__data__.has(t);
|
|
1766
1766
|
}
|
|
1767
|
-
function
|
|
1767
|
+
function Ke(t) {
|
|
1768
1768
|
var e = -1, n = t == null ? 0 : t.length;
|
|
1769
1769
|
for (this.__data__ = new fe(); ++e < n; )
|
|
1770
1770
|
this.add(t[e]);
|
|
1771
1771
|
}
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
function
|
|
1772
|
+
Ke.prototype.add = Ke.prototype.push = Ra;
|
|
1773
|
+
Ke.prototype.has = Na;
|
|
1774
|
+
function Ia(t, e) {
|
|
1775
1775
|
return t.has(e);
|
|
1776
1776
|
}
|
|
1777
|
-
function
|
|
1778
|
-
return
|
|
1777
|
+
function La(t) {
|
|
1778
|
+
return hr(t) && Ns(t);
|
|
1779
1779
|
}
|
|
1780
1780
|
var Pa = 200;
|
|
1781
1781
|
function qa(t, e, n, r) {
|
|
1782
1782
|
var i = -1, s = Cs, o = !0, a = t.length, c = [], l = e.length;
|
|
1783
1783
|
if (!a)
|
|
1784
1784
|
return c;
|
|
1785
|
-
e.length >= Pa && (s =
|
|
1785
|
+
e.length >= Pa && (s = Ia, o = !1, e = new Ke(e));
|
|
1786
1786
|
e:
|
|
1787
1787
|
for (; ++i < a; ) {
|
|
1788
1788
|
var d = t[i], u = d;
|
|
@@ -1796,35 +1796,35 @@ function qa(t, e, n, r) {
|
|
|
1796
1796
|
return c;
|
|
1797
1797
|
}
|
|
1798
1798
|
function $a(t, e) {
|
|
1799
|
-
for (var n = t.length; n-- &&
|
|
1799
|
+
for (var n = t.length; n-- && Jt(e, t[n], 0) > -1; )
|
|
1800
1800
|
;
|
|
1801
1801
|
return n;
|
|
1802
1802
|
}
|
|
1803
1803
|
function Da(t, e) {
|
|
1804
|
-
for (var n = -1, r = t.length; ++n < r &&
|
|
1804
|
+
for (var n = -1, r = t.length; ++n < r && Jt(e, t[n], 0) > -1; )
|
|
1805
1805
|
;
|
|
1806
1806
|
return n;
|
|
1807
1807
|
}
|
|
1808
|
-
function
|
|
1808
|
+
function An(t, e, n) {
|
|
1809
1809
|
if (t = na(t), t && e === void 0)
|
|
1810
1810
|
return Ji(t);
|
|
1811
|
-
if (!t || !(e =
|
|
1811
|
+
if (!t || !(e = Wt(e)))
|
|
1812
1812
|
return t;
|
|
1813
1813
|
var r = En(t), i = En(e), s = Da(r, i), o = $a(r, i) + 1;
|
|
1814
1814
|
return ia(r, s, o).join("");
|
|
1815
1815
|
}
|
|
1816
|
-
var _a =
|
|
1817
|
-
return
|
|
1818
|
-
}),
|
|
1819
|
-
return
|
|
1816
|
+
var _a = Os(function(t, e) {
|
|
1817
|
+
return La(t) ? qa(t, e) : [];
|
|
1818
|
+
}), se = function() {
|
|
1819
|
+
return se = Object.assign || function(t) {
|
|
1820
1820
|
for (var e, n = 1, r = arguments.length; n < r; n++) {
|
|
1821
1821
|
e = arguments[n];
|
|
1822
1822
|
for (var i in e) Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]);
|
|
1823
1823
|
}
|
|
1824
1824
|
return t;
|
|
1825
|
-
},
|
|
1825
|
+
}, se.apply(this, arguments);
|
|
1826
1826
|
}, Ba = "~", Ua = "~~";
|
|
1827
|
-
function
|
|
1827
|
+
function Qt(t, e) {
|
|
1828
1828
|
for (var n = {}, r = {}, i = t.split(Ua), s = !1, o = 0; i.length > o; o++) {
|
|
1829
1829
|
for (var a = i[o].split(Ba), c = 0; c < a.length; c += 2) {
|
|
1830
1830
|
var l = a[c], d = a[c + 1], u = "&" + l + ";";
|
|
@@ -1832,16 +1832,16 @@ function Xt(t, e) {
|
|
|
1832
1832
|
}
|
|
1833
1833
|
s = !0;
|
|
1834
1834
|
}
|
|
1835
|
-
return e ? { entities:
|
|
1835
|
+
return e ? { entities: se(se({}, n), e.entities), characters: se(se({}, r), e.characters) } : { entities: n, characters: r };
|
|
1836
1836
|
}
|
|
1837
|
-
var
|
|
1837
|
+
var gt = {
|
|
1838
1838
|
xml: /&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,
|
|
1839
1839
|
html4: /∉|&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,
|
|
1840
1840
|
html5: /·|℗|⋇|⪧|⩺|⋗|⦕|⩼|⪆|⥸|⋗|⋛|⪌|≷|≳|⪦|⩹|⋖|⋋|⋉|⥶|⩻|⦖|◃|⊴|◂|∉|⋹̸|⋵̸|∉|⋷|⋶|∌|∌|⋾|⋽|∥|⊠|⨱|⨰|&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g
|
|
1841
1841
|
}, he = {};
|
|
1842
|
-
he.xml =
|
|
1843
|
-
he.html4 =
|
|
1844
|
-
he.html5 = Xt('Abreve~Ă~Acy~А~Afr~𝔄~Amacr~Ā~And~⩓~Aogon~Ą~Aopf~𝔸~ApplyFunction~~Ascr~𝒜~Assign~≔~Backslash~∖~Barv~⫧~Barwed~⌆~Bcy~Б~Because~∵~Bernoullis~ℬ~Bfr~𝔅~Bopf~𝔹~Breve~˘~Bscr~ℬ~Bumpeq~≎~CHcy~Ч~Cacute~Ć~Cap~⋒~CapitalDifferentialD~ⅅ~Cayleys~ℭ~Ccaron~Č~Ccirc~Ĉ~Cconint~∰~Cdot~Ċ~Cedilla~¸~CenterDot~·~Cfr~ℭ~CircleDot~⊙~CircleMinus~⊖~CirclePlus~⊕~CircleTimes~⊗~ClockwiseContourIntegral~∲~CloseCurlyDoubleQuote~”~CloseCurlyQuote~’~Colon~∷~Colone~⩴~Congruent~≡~Conint~∯~ContourIntegral~∮~Copf~ℂ~Coproduct~∐~CounterClockwiseContourIntegral~∳~Cross~⨯~Cscr~𝒞~Cup~⋓~CupCap~≍~DD~ⅅ~DDotrahd~⤑~DJcy~Ђ~DScy~Ѕ~DZcy~Џ~Darr~↡~Dashv~⫤~Dcaron~Ď~Dcy~Д~Del~∇~Dfr~𝔇~DiacriticalAcute~´~DiacriticalDot~˙~DiacriticalDoubleAcute~˝~DiacriticalGrave~`~DiacriticalTilde~˜~Diamond~⋄~DifferentialD~ⅆ~Dopf~𝔻~Dot~¨~DotDot~⃜~DotEqual~≐~DoubleContourIntegral~∯~DoubleDot~¨~DoubleDownArrow~⇓~DoubleLeftArrow~⇐~DoubleLeftRightArrow~⇔~DoubleLeftTee~⫤~DoubleLongLeftArrow~⟸~DoubleLongLeftRightArrow~⟺~DoubleLongRightArrow~⟹~DoubleRightArrow~⇒~DoubleRightTee~⊨~DoubleUpArrow~⇑~DoubleUpDownArrow~⇕~DoubleVerticalBar~∥~DownArrow~↓~DownArrowBar~⤓~DownArrowUpArrow~⇵~DownBreve~̑~DownLeftRightVector~⥐~DownLeftTeeVector~⥞~DownLeftVector~↽~DownLeftVectorBar~⥖~DownRightTeeVector~⥟~DownRightVector~⇁~DownRightVectorBar~⥗~DownTee~⊤~DownTeeArrow~↧~Downarrow~⇓~Dscr~𝒟~Dstrok~Đ~ENG~Ŋ~Ecaron~Ě~Ecy~Э~Edot~Ė~Efr~𝔈~Element~∈~Emacr~Ē~EmptySmallSquare~◻~EmptyVerySmallSquare~▫~Eogon~Ę~Eopf~𝔼~Equal~⩵~EqualTilde~≂~Equilibrium~⇌~Escr~ℰ~Esim~⩳~Exists~∃~ExponentialE~ⅇ~Fcy~Ф~Ffr~𝔉~FilledSmallSquare~◼~FilledVerySmallSquare~▪~Fopf~𝔽~ForAll~∀~Fouriertrf~ℱ~Fscr~ℱ~GJcy~Ѓ~Gammad~Ϝ~Gbreve~Ğ~Gcedil~Ģ~Gcirc~Ĝ~Gcy~Г~Gdot~Ġ~Gfr~𝔊~Gg~⋙~Gopf~𝔾~GreaterEqual~≥~GreaterEqualLess~⋛~GreaterFullEqual~≧~GreaterGreater~⪢~GreaterLess~≷~GreaterSlantEqual~⩾~GreaterTilde~≳~Gscr~𝒢~Gt~≫~HARDcy~Ъ~Hacek~ˇ~Hat~^~Hcirc~Ĥ~Hfr~ℌ~HilbertSpace~ℋ~Hopf~ℍ~HorizontalLine~─~Hscr~ℋ~Hstrok~Ħ~HumpDownHump~≎~HumpEqual~≏~IEcy~Е~IJlig~IJ~IOcy~Ё~Icy~И~Idot~İ~Ifr~ℑ~Im~ℑ~Imacr~Ī~ImaginaryI~ⅈ~Implies~⇒~Int~∬~Integral~∫~Intersection~⋂~InvisibleComma~~InvisibleTimes~~Iogon~Į~Iopf~𝕀~Iscr~ℐ~Itilde~Ĩ~Iukcy~І~Jcirc~Ĵ~Jcy~Й~Jfr~𝔍~Jopf~𝕁~Jscr~𝒥~Jsercy~Ј~Jukcy~Є~KHcy~Х~KJcy~Ќ~Kcedil~Ķ~Kcy~К~Kfr~𝔎~Kopf~𝕂~Kscr~𝒦~LJcy~Љ~Lacute~Ĺ~Lang~⟪~Laplacetrf~ℒ~Larr~↞~Lcaron~Ľ~Lcedil~Ļ~Lcy~Л~LeftAngleBracket~⟨~LeftArrow~←~LeftArrowBar~⇤~LeftArrowRightArrow~⇆~LeftCeiling~⌈~LeftDoubleBracket~⟦~LeftDownTeeVector~⥡~LeftDownVector~⇃~LeftDownVectorBar~⥙~LeftFloor~⌊~LeftRightArrow~↔~LeftRightVector~⥎~LeftTee~⊣~LeftTeeArrow~↤~LeftTeeVector~⥚~LeftTriangle~⊲~LeftTriangleBar~⧏~LeftTriangleEqual~⊴~LeftUpDownVector~⥑~LeftUpTeeVector~⥠~LeftUpVector~↿~LeftUpVectorBar~⥘~LeftVector~↼~LeftVectorBar~⥒~Leftarrow~⇐~Leftrightarrow~⇔~LessEqualGreater~⋚~LessFullEqual~≦~LessGreater~≶~LessLess~⪡~LessSlantEqual~⩽~LessTilde~≲~Lfr~𝔏~Ll~⋘~Lleftarrow~⇚~Lmidot~Ŀ~LongLeftArrow~⟵~LongLeftRightArrow~⟷~LongRightArrow~⟶~Longleftarrow~⟸~Longleftrightarrow~⟺~Longrightarrow~⟹~Lopf~𝕃~LowerLeftArrow~↙~LowerRightArrow~↘~Lscr~ℒ~Lsh~↰~Lstrok~Ł~Lt~≪~Map~⤅~Mcy~М~MediumSpace~ ~Mellintrf~ℳ~Mfr~𝔐~MinusPlus~∓~Mopf~𝕄~Mscr~ℳ~NJcy~Њ~Nacute~Ń~Ncaron~Ň~Ncedil~Ņ~Ncy~Н~NegativeMediumSpace~~NegativeThickSpace~~NegativeThinSpace~~NegativeVeryThinSpace~~NestedGreaterGreater~≫~NestedLessLess~≪~NewLine~\n~Nfr~𝔑~NoBreak~~NonBreakingSpace~ ~Nopf~ℕ~Not~⫬~NotCongruent~≢~NotCupCap~≭~NotDoubleVerticalBar~∦~NotElement~∉~NotEqual~≠~NotEqualTilde~≂̸~NotExists~∄~NotGreater~≯~NotGreaterEqual~≱~NotGreaterFullEqual~≧̸~NotGreaterGreater~≫̸~NotGreaterLess~≹~NotGreaterSlantEqual~⩾̸~NotGreaterTilde~≵~NotHumpDownHump~≎̸~NotHumpEqual~≏̸~NotLeftTriangle~⋪~NotLeftTriangleBar~⧏̸~NotLeftTriangleEqual~⋬~NotLess~≮~NotLessEqual~≰~NotLessGreater~≸~NotLessLess~≪̸~NotLessSlantEqual~⩽̸~NotLessTilde~≴~NotNestedGreaterGreater~⪢̸~NotNestedLessLess~⪡̸~NotPrecedes~⊀~NotPrecedesEqual~⪯̸~NotPrecedesSlantEqual~⋠~NotReverseElement~∌~NotRightTriangle~⋫~NotRightTriangleBar~⧐̸~NotRightTriangleEqual~⋭~NotSquareSubset~⊏̸~NotSquareSubsetEqual~⋢~NotSquareSuperset~⊐̸~NotSquareSupersetEqual~⋣~NotSubset~⊂⃒~NotSubsetEqual~⊈~NotSucceeds~⊁~NotSucceedsEqual~⪰̸~NotSucceedsSlantEqual~⋡~NotSucceedsTilde~≿̸~NotSuperset~⊃⃒~NotSupersetEqual~⊉~NotTilde~≁~NotTildeEqual~≄~NotTildeFullEqual~≇~NotTildeTilde~≉~NotVerticalBar~∤~Nscr~𝒩~Ocy~О~Odblac~Ő~Ofr~𝔒~Omacr~Ō~Oopf~𝕆~OpenCurlyDoubleQuote~“~OpenCurlyQuote~‘~Or~⩔~Oscr~𝒪~Otimes~⨷~OverBar~‾~OverBrace~⏞~OverBracket~⎴~OverParenthesis~⏜~PartialD~∂~Pcy~П~Pfr~𝔓~PlusMinus~±~Poincareplane~ℌ~Popf~ℙ~Pr~⪻~Precedes~≺~PrecedesEqual~⪯~PrecedesSlantEqual~≼~PrecedesTilde~≾~Product~∏~Proportion~∷~Proportional~∝~Pscr~𝒫~Qfr~𝔔~Qopf~ℚ~Qscr~𝒬~RBarr~⤐~Racute~Ŕ~Rang~⟫~Rarr~↠~Rarrtl~⤖~Rcaron~Ř~Rcedil~Ŗ~Rcy~Р~Re~ℜ~ReverseElement~∋~ReverseEquilibrium~⇋~ReverseUpEquilibrium~⥯~Rfr~ℜ~RightAngleBracket~⟩~RightArrow~→~RightArrowBar~⇥~RightArrowLeftArrow~⇄~RightCeiling~⌉~RightDoubleBracket~⟧~RightDownTeeVector~⥝~RightDownVector~⇂~RightDownVectorBar~⥕~RightFloor~⌋~RightTee~⊢~RightTeeArrow~↦~RightTeeVector~⥛~RightTriangle~⊳~RightTriangleBar~⧐~RightTriangleEqual~⊵~RightUpDownVector~⥏~RightUpTeeVector~⥜~RightUpVector~↾~RightUpVectorBar~⥔~RightVector~⇀~RightVectorBar~⥓~Rightarrow~⇒~Ropf~ℝ~RoundImplies~⥰~Rrightarrow~⇛~Rscr~ℛ~Rsh~↱~RuleDelayed~⧴~SHCHcy~Щ~SHcy~Ш~SOFTcy~Ь~Sacute~Ś~Sc~⪼~Scedil~Ş~Scirc~Ŝ~Scy~С~Sfr~𝔖~ShortDownArrow~↓~ShortLeftArrow~←~ShortRightArrow~→~ShortUpArrow~↑~SmallCircle~∘~Sopf~𝕊~Sqrt~√~Square~□~SquareIntersection~⊓~SquareSubset~⊏~SquareSubsetEqual~⊑~SquareSuperset~⊐~SquareSupersetEqual~⊒~SquareUnion~⊔~Sscr~𝒮~Star~⋆~Sub~⋐~Subset~⋐~SubsetEqual~⊆~Succeeds~≻~SucceedsEqual~⪰~SucceedsSlantEqual~≽~SucceedsTilde~≿~SuchThat~∋~Sum~∑~Sup~⋑~Superset~⊃~SupersetEqual~⊇~Supset~⋑~TRADE~™~TSHcy~Ћ~TScy~Ц~Tab~ ~Tcaron~Ť~Tcedil~Ţ~Tcy~Т~Tfr~𝔗~Therefore~∴~ThickSpace~ ~ThinSpace~ ~Tilde~∼~TildeEqual~≃~TildeFullEqual~≅~TildeTilde~≈~Topf~𝕋~TripleDot~⃛~Tscr~𝒯~Tstrok~Ŧ~Uarr~↟~Uarrocir~⥉~Ubrcy~Ў~Ubreve~Ŭ~Ucy~У~Udblac~Ű~Ufr~𝔘~Umacr~Ū~UnderBar~_~UnderBrace~⏟~UnderBracket~⎵~UnderParenthesis~⏝~Union~⋃~UnionPlus~⊎~Uogon~Ų~Uopf~𝕌~UpArrow~↑~UpArrowBar~⤒~UpArrowDownArrow~⇅~UpDownArrow~↕~UpEquilibrium~⥮~UpTee~⊥~UpTeeArrow~↥~Uparrow~⇑~Updownarrow~⇕~UpperLeftArrow~↖~UpperRightArrow~↗~Upsi~ϒ~Uring~Ů~Uscr~𝒰~Utilde~Ũ~VDash~⊫~Vbar~⫫~Vcy~В~Vdash~⊩~Vdashl~⫦~Vee~⋁~Verbar~‖~Vert~‖~VerticalBar~∣~VerticalLine~|~VerticalSeparator~❘~VerticalTilde~≀~VeryThinSpace~ ~Vfr~𝔙~Vopf~𝕍~Vscr~𝒱~Vvdash~⊪~Wcirc~Ŵ~Wedge~⋀~Wfr~𝔚~Wopf~𝕎~Wscr~𝒲~Xfr~𝔛~Xopf~𝕏~Xscr~𝒳~YAcy~Я~YIcy~Ї~YUcy~Ю~Ycirc~Ŷ~Ycy~Ы~Yfr~𝔜~Yopf~𝕐~Yscr~𝒴~ZHcy~Ж~Zacute~Ź~Zcaron~Ž~Zcy~З~Zdot~Ż~ZeroWidthSpace~~Zfr~ℨ~Zopf~ℤ~Zscr~𝒵~abreve~ă~ac~∾~acE~∾̳~acd~∿~acy~а~af~~afr~𝔞~aleph~ℵ~amacr~ā~amalg~⨿~andand~⩕~andd~⩜~andslope~⩘~andv~⩚~ange~⦤~angle~∠~angmsd~∡~angmsdaa~⦨~angmsdab~⦩~angmsdac~⦪~angmsdad~⦫~angmsdae~⦬~angmsdaf~⦭~angmsdag~⦮~angmsdah~⦯~angrt~∟~angrtvb~⊾~angrtvbd~⦝~angsph~∢~angst~Å~angzarr~⍼~aogon~ą~aopf~𝕒~ap~≈~apE~⩰~apacir~⩯~ape~≊~apid~≋~approx~≈~approxeq~≊~ascr~𝒶~ast~*~asympeq~≍~awconint~∳~awint~⨑~bNot~⫭~backcong~≌~backepsilon~϶~backprime~‵~backsim~∽~backsimeq~⋍~barvee~⊽~barwed~⌅~barwedge~⌅~bbrk~⎵~bbrktbrk~⎶~bcong~≌~bcy~б~becaus~∵~because~∵~bemptyv~⦰~bepsi~϶~bernou~ℬ~beth~ℶ~between~≬~bfr~𝔟~bigcap~⋂~bigcirc~◯~bigcup~⋃~bigodot~⨀~bigoplus~⨁~bigotimes~⨂~bigsqcup~⨆~bigstar~★~bigtriangledown~▽~bigtriangleup~△~biguplus~⨄~bigvee~⋁~bigwedge~⋀~bkarow~⤍~blacklozenge~⧫~blacksquare~▪~blacktriangle~▴~blacktriangledown~▾~blacktriangleleft~◂~blacktriangleright~▸~blank~␣~blk12~▒~blk14~░~blk34~▓~block~█~bne~=⃥~bnequiv~≡⃥~bnot~⌐~bopf~𝕓~bot~⊥~bottom~⊥~bowtie~⋈~boxDL~╗~boxDR~╔~boxDl~╖~boxDr~╓~boxH~═~boxHD~╦~boxHU~╩~boxHd~╤~boxHu~╧~boxUL~╝~boxUR~╚~boxUl~╜~boxUr~╙~boxV~║~boxVH~╬~boxVL~╣~boxVR~╠~boxVh~╫~boxVl~╢~boxVr~╟~boxbox~⧉~boxdL~╕~boxdR~╒~boxdl~┐~boxdr~┌~boxh~─~boxhD~╥~boxhU~╨~boxhd~┬~boxhu~┴~boxminus~⊟~boxplus~⊞~boxtimes~⊠~boxuL~╛~boxuR~╘~boxul~┘~boxur~└~boxv~│~boxvH~╪~boxvL~╡~boxvR~╞~boxvh~┼~boxvl~┤~boxvr~├~bprime~‵~breve~˘~bscr~𝒷~bsemi~⁏~bsim~∽~bsime~⋍~bsol~\\~bsolb~⧅~bsolhsub~⟈~bullet~•~bump~≎~bumpE~⪮~bumpe~≏~bumpeq~≏~cacute~ć~capand~⩄~capbrcup~⩉~capcap~⩋~capcup~⩇~capdot~⩀~caps~∩︀~caret~⁁~caron~ˇ~ccaps~⩍~ccaron~č~ccirc~ĉ~ccups~⩌~ccupssm~⩐~cdot~ċ~cemptyv~⦲~centerdot~·~cfr~𝔠~chcy~ч~check~✓~checkmark~✓~cir~○~cirE~⧃~circeq~≗~circlearrowleft~↺~circlearrowright~↻~circledR~®~circledS~Ⓢ~circledast~⊛~circledcirc~⊚~circleddash~⊝~cire~≗~cirfnint~⨐~cirmid~⫯~cirscir~⧂~clubsuit~♣~colon~:~colone~≔~coloneq~≔~comma~,~commat~@~comp~∁~compfn~∘~complement~∁~complexes~ℂ~congdot~⩭~conint~∮~copf~𝕔~coprod~∐~copysr~℗~cross~✗~cscr~𝒸~csub~⫏~csube~⫑~csup~⫐~csupe~⫒~ctdot~⋯~cudarrl~⤸~cudarrr~⤵~cuepr~⋞~cuesc~⋟~cularr~↶~cularrp~⤽~cupbrcap~⩈~cupcap~⩆~cupcup~⩊~cupdot~⊍~cupor~⩅~cups~∪︀~curarr~↷~curarrm~⤼~curlyeqprec~⋞~curlyeqsucc~⋟~curlyvee~⋎~curlywedge~⋏~curvearrowleft~↶~curvearrowright~↷~cuvee~⋎~cuwed~⋏~cwconint~∲~cwint~∱~cylcty~⌭~dHar~⥥~daleth~ℸ~dash~‐~dashv~⊣~dbkarow~⤏~dblac~˝~dcaron~ď~dcy~д~dd~ⅆ~ddagger~‡~ddarr~⇊~ddotseq~⩷~demptyv~⦱~dfisht~⥿~dfr~𝔡~dharl~⇃~dharr~⇂~diam~⋄~diamond~⋄~diamondsuit~♦~die~¨~digamma~ϝ~disin~⋲~div~÷~divideontimes~⋇~divonx~⋇~djcy~ђ~dlcorn~⌞~dlcrop~⌍~dollar~$~dopf~𝕕~dot~˙~doteq~≐~doteqdot~≑~dotminus~∸~dotplus~∔~dotsquare~⊡~doublebarwedge~⌆~downarrow~↓~downdownarrows~⇊~downharpoonleft~⇃~downharpoonright~⇂~drbkarow~⤐~drcorn~⌟~drcrop~⌌~dscr~𝒹~dscy~ѕ~dsol~⧶~dstrok~đ~dtdot~⋱~dtri~▿~dtrif~▾~duarr~⇵~duhar~⥯~dwangle~⦦~dzcy~џ~dzigrarr~⟿~eDDot~⩷~eDot~≑~easter~⩮~ecaron~ě~ecir~≖~ecolon~≕~ecy~э~edot~ė~ee~ⅇ~efDot~≒~efr~𝔢~eg~⪚~egs~⪖~egsdot~⪘~el~⪙~elinters~⏧~ell~ℓ~els~⪕~elsdot~⪗~emacr~ē~emptyset~∅~emptyv~∅~emsp13~ ~emsp14~ ~eng~ŋ~eogon~ę~eopf~𝕖~epar~⋕~eparsl~⧣~eplus~⩱~epsi~ε~epsiv~ϵ~eqcirc~≖~eqcolon~≕~eqsim~≂~eqslantgtr~⪖~eqslantless~⪕~equals~=~equest~≟~equivDD~⩸~eqvparsl~⧥~erDot~≓~erarr~⥱~escr~ℯ~esdot~≐~esim~≂~excl~!~expectation~ℰ~exponentiale~ⅇ~fallingdotseq~≒~fcy~ф~female~♀~ffilig~ffi~fflig~ff~ffllig~ffl~ffr~𝔣~filig~fi~fjlig~fj~flat~♭~fllig~fl~fltns~▱~fopf~𝕗~fork~⋔~forkv~⫙~fpartint~⨍~frac13~⅓~frac15~⅕~frac16~⅙~frac18~⅛~frac23~⅔~frac25~⅖~frac35~⅗~frac38~⅜~frac45~⅘~frac56~⅚~frac58~⅝~frac78~⅞~frown~⌢~fscr~𝒻~gE~≧~gEl~⪌~gacute~ǵ~gammad~ϝ~gap~⪆~gbreve~ğ~gcirc~ĝ~gcy~г~gdot~ġ~gel~⋛~geq~≥~geqq~≧~geqslant~⩾~ges~⩾~gescc~⪩~gesdot~⪀~gesdoto~⪂~gesdotol~⪄~gesl~⋛︀~gesles~⪔~gfr~𝔤~gg~≫~ggg~⋙~gimel~ℷ~gjcy~ѓ~gl~≷~glE~⪒~gla~⪥~glj~⪤~gnE~≩~gnap~⪊~gnapprox~⪊~gne~⪈~gneq~⪈~gneqq~≩~gnsim~⋧~gopf~𝕘~grave~`~gscr~ℊ~gsim~≳~gsime~⪎~gsiml~⪐~gtcc~⪧~gtcir~⩺~gtdot~⋗~gtlPar~⦕~gtquest~⩼~gtrapprox~⪆~gtrarr~⥸~gtrdot~⋗~gtreqless~⋛~gtreqqless~⪌~gtrless~≷~gtrsim~≳~gvertneqq~≩︀~gvnE~≩︀~hairsp~ ~half~½~hamilt~ℋ~hardcy~ъ~harrcir~⥈~harrw~↭~hbar~ℏ~hcirc~ĥ~heartsuit~♥~hercon~⊹~hfr~𝔥~hksearow~⤥~hkswarow~⤦~hoarr~⇿~homtht~∻~hookleftarrow~↩~hookrightarrow~↪~hopf~𝕙~horbar~―~hscr~𝒽~hslash~ℏ~hstrok~ħ~hybull~⁃~hyphen~‐~ic~~icy~и~iecy~е~iff~⇔~ifr~𝔦~ii~ⅈ~iiiint~⨌~iiint~∭~iinfin~⧜~iiota~℩~ijlig~ij~imacr~ī~imagline~ℐ~imagpart~ℑ~imath~ı~imof~⊷~imped~Ƶ~in~∈~incare~℅~infintie~⧝~inodot~ı~intcal~⊺~integers~ℤ~intercal~⊺~intlarhk~⨗~intprod~⨼~iocy~ё~iogon~į~iopf~𝕚~iprod~⨼~iscr~𝒾~isinE~⋹~isindot~⋵~isins~⋴~isinsv~⋳~isinv~∈~it~~itilde~ĩ~iukcy~і~jcirc~ĵ~jcy~й~jfr~𝔧~jmath~ȷ~jopf~𝕛~jscr~𝒿~jsercy~ј~jukcy~є~kappav~ϰ~kcedil~ķ~kcy~к~kfr~𝔨~kgreen~ĸ~khcy~х~kjcy~ќ~kopf~𝕜~kscr~𝓀~lAarr~⇚~lAtail~⤛~lBarr~⤎~lE~≦~lEg~⪋~lHar~⥢~lacute~ĺ~laemptyv~⦴~lagran~ℒ~langd~⦑~langle~⟨~lap~⪅~larrb~⇤~larrbfs~⤟~larrfs~⤝~larrhk~↩~larrlp~↫~larrpl~⤹~larrsim~⥳~larrtl~↢~lat~⪫~latail~⤙~late~⪭~lates~⪭︀~lbarr~⤌~lbbrk~❲~lbrace~{~lbrack~[~lbrke~⦋~lbrksld~⦏~lbrkslu~⦍~lcaron~ľ~lcedil~ļ~lcub~{~lcy~л~ldca~⤶~ldquor~„~ldrdhar~⥧~ldrushar~⥋~ldsh~↲~leftarrow~←~leftarrowtail~↢~leftharpoondown~↽~leftharpoonup~↼~leftleftarrows~⇇~leftrightarrow~↔~leftrightarrows~⇆~leftrightharpoons~⇋~leftrightsquigarrow~↭~leftthreetimes~⋋~leg~⋚~leq~≤~leqq~≦~leqslant~⩽~les~⩽~lescc~⪨~lesdot~⩿~lesdoto~⪁~lesdotor~⪃~lesg~⋚︀~lesges~⪓~lessapprox~⪅~lessdot~⋖~lesseqgtr~⋚~lesseqqgtr~⪋~lessgtr~≶~lesssim~≲~lfisht~⥼~lfr~𝔩~lg~≶~lgE~⪑~lhard~↽~lharu~↼~lharul~⥪~lhblk~▄~ljcy~љ~ll~≪~llarr~⇇~llcorner~⌞~llhard~⥫~lltri~◺~lmidot~ŀ~lmoust~⎰~lmoustache~⎰~lnE~≨~lnap~⪉~lnapprox~⪉~lne~⪇~lneq~⪇~lneqq~≨~lnsim~⋦~loang~⟬~loarr~⇽~lobrk~⟦~longleftarrow~⟵~longleftrightarrow~⟷~longmapsto~⟼~longrightarrow~⟶~looparrowleft~↫~looparrowright~↬~lopar~⦅~lopf~𝕝~loplus~⨭~lotimes~⨴~lowbar~_~lozenge~◊~lozf~⧫~lpar~(~lparlt~⦓~lrarr~⇆~lrcorner~⌟~lrhar~⇋~lrhard~⥭~lrtri~⊿~lscr~𝓁~lsh~↰~lsim~≲~lsime~⪍~lsimg~⪏~lsqb~[~lsquor~‚~lstrok~ł~ltcc~⪦~ltcir~⩹~ltdot~⋖~lthree~⋋~ltimes~⋉~ltlarr~⥶~ltquest~⩻~ltrPar~⦖~ltri~◃~ltrie~⊴~ltrif~◂~lurdshar~⥊~luruhar~⥦~lvertneqq~≨︀~lvnE~≨︀~mDDot~∺~male~♂~malt~✠~maltese~✠~map~↦~mapsto~↦~mapstodown~↧~mapstoleft~↤~mapstoup~↥~marker~▮~mcomma~⨩~mcy~м~measuredangle~∡~mfr~𝔪~mho~℧~mid~∣~midast~*~midcir~⫰~minusb~⊟~minusd~∸~minusdu~⨪~mlcp~⫛~mldr~…~mnplus~∓~models~⊧~mopf~𝕞~mp~∓~mscr~𝓂~mstpos~∾~multimap~⊸~mumap~⊸~nGg~⋙̸~nGt~≫⃒~nGtv~≫̸~nLeftarrow~⇍~nLeftrightarrow~⇎~nLl~⋘̸~nLt~≪⃒~nLtv~≪̸~nRightarrow~⇏~nVDash~⊯~nVdash~⊮~nacute~ń~nang~∠⃒~nap~≉~napE~⩰̸~napid~≋̸~napos~ʼn~napprox~≉~natur~♮~natural~♮~naturals~ℕ~nbump~≎̸~nbumpe~≏̸~ncap~⩃~ncaron~ň~ncedil~ņ~ncong~≇~ncongdot~⩭̸~ncup~⩂~ncy~н~neArr~⇗~nearhk~⤤~nearr~↗~nearrow~↗~nedot~≐̸~nequiv~≢~nesear~⤨~nesim~≂̸~nexist~∄~nexists~∄~nfr~𝔫~ngE~≧̸~nge~≱~ngeq~≱~ngeqq~≧̸~ngeqslant~⩾̸~nges~⩾̸~ngsim~≵~ngt~≯~ngtr~≯~nhArr~⇎~nharr~↮~nhpar~⫲~nis~⋼~nisd~⋺~niv~∋~njcy~њ~nlArr~⇍~nlE~≦̸~nlarr~↚~nldr~‥~nle~≰~nleftarrow~↚~nleftrightarrow~↮~nleq~≰~nleqq~≦̸~nleqslant~⩽̸~nles~⩽̸~nless~≮~nlsim~≴~nlt~≮~nltri~⋪~nltrie~⋬~nmid~∤~nopf~𝕟~notinE~⋹̸~notindot~⋵̸~notinva~∉~notinvb~⋷~notinvc~⋶~notni~∌~notniva~∌~notnivb~⋾~notnivc~⋽~npar~∦~nparallel~∦~nparsl~⫽⃥~npart~∂̸~npolint~⨔~npr~⊀~nprcue~⋠~npre~⪯̸~nprec~⊀~npreceq~⪯̸~nrArr~⇏~nrarr~↛~nrarrc~⤳̸~nrarrw~↝̸~nrightarrow~↛~nrtri~⋫~nrtrie~⋭~nsc~⊁~nsccue~⋡~nsce~⪰̸~nscr~𝓃~nshortmid~∤~nshortparallel~∦~nsim~≁~nsime~≄~nsimeq~≄~nsmid~∤~nspar~∦~nsqsube~⋢~nsqsupe~⋣~nsubE~⫅̸~nsube~⊈~nsubset~⊂⃒~nsubseteq~⊈~nsubseteqq~⫅̸~nsucc~⊁~nsucceq~⪰̸~nsup~⊅~nsupE~⫆̸~nsupe~⊉~nsupset~⊃⃒~nsupseteq~⊉~nsupseteqq~⫆̸~ntgl~≹~ntlg~≸~ntriangleleft~⋪~ntrianglelefteq~⋬~ntriangleright~⋫~ntrianglerighteq~⋭~num~#~numero~№~numsp~ ~nvDash~⊭~nvHarr~⤄~nvap~≍⃒~nvdash~⊬~nvge~≥⃒~nvgt~>⃒~nvinfin~⧞~nvlArr~⤂~nvle~≤⃒~nvlt~<⃒~nvltrie~⊴⃒~nvrArr~⤃~nvrtrie~⊵⃒~nvsim~∼⃒~nwArr~⇖~nwarhk~⤣~nwarr~↖~nwarrow~↖~nwnear~⤧~oS~Ⓢ~oast~⊛~ocir~⊚~ocy~о~odash~⊝~odblac~ő~odiv~⨸~odot~⊙~odsold~⦼~ofcir~⦿~ofr~𝔬~ogon~˛~ogt~⧁~ohbar~⦵~ohm~Ω~oint~∮~olarr~↺~olcir~⦾~olcross~⦻~olt~⧀~omacr~ō~omid~⦶~ominus~⊖~oopf~𝕠~opar~⦷~operp~⦹~orarr~↻~ord~⩝~order~ℴ~orderof~ℴ~origof~⊶~oror~⩖~orslope~⩗~orv~⩛~oscr~ℴ~osol~⊘~otimesas~⨶~ovbar~⌽~par~∥~parallel~∥~parsim~⫳~parsl~⫽~pcy~п~percnt~%~period~.~pertenk~‱~pfr~𝔭~phiv~ϕ~phmmat~ℳ~phone~☎~pitchfork~⋔~planck~ℏ~planckh~ℎ~plankv~ℏ~plus~+~plusacir~⨣~plusb~⊞~pluscir~⨢~plusdo~∔~plusdu~⨥~pluse~⩲~plussim~⨦~plustwo~⨧~pm~±~pointint~⨕~popf~𝕡~pr~≺~prE~⪳~prap~⪷~prcue~≼~pre~⪯~prec~≺~precapprox~⪷~preccurlyeq~≼~preceq~⪯~precnapprox~⪹~precneqq~⪵~precnsim~⋨~precsim~≾~primes~ℙ~prnE~⪵~prnap~⪹~prnsim~⋨~profalar~⌮~profline~⌒~profsurf~⌓~propto~∝~prsim~≾~prurel~⊰~pscr~𝓅~puncsp~ ~qfr~𝔮~qint~⨌~qopf~𝕢~qprime~⁗~qscr~𝓆~quaternions~ℍ~quatint~⨖~quest~?~questeq~≟~rAarr~⇛~rAtail~⤜~rBarr~⤏~rHar~⥤~race~∽̱~racute~ŕ~raemptyv~⦳~rangd~⦒~range~⦥~rangle~⟩~rarrap~⥵~rarrb~⇥~rarrbfs~⤠~rarrc~⤳~rarrfs~⤞~rarrhk~↪~rarrlp~↬~rarrpl~⥅~rarrsim~⥴~rarrtl~↣~rarrw~↝~ratail~⤚~ratio~∶~rationals~ℚ~rbarr~⤍~rbbrk~❳~rbrace~}~rbrack~]~rbrke~⦌~rbrksld~⦎~rbrkslu~⦐~rcaron~ř~rcedil~ŗ~rcub~}~rcy~р~rdca~⤷~rdldhar~⥩~rdquor~”~rdsh~↳~realine~ℛ~realpart~ℜ~reals~ℝ~rect~▭~rfisht~⥽~rfr~𝔯~rhard~⇁~rharu~⇀~rharul~⥬~rhov~ϱ~rightarrow~→~rightarrowtail~↣~rightharpoondown~⇁~rightharpoonup~⇀~rightleftarrows~⇄~rightleftharpoons~⇌~rightrightarrows~⇉~rightsquigarrow~↝~rightthreetimes~⋌~ring~˚~risingdotseq~≓~rlarr~⇄~rlhar~⇌~rmoust~⎱~rmoustache~⎱~rnmid~⫮~roang~⟭~roarr~⇾~robrk~⟧~ropar~⦆~ropf~𝕣~roplus~⨮~rotimes~⨵~rpar~)~rpargt~⦔~rppolint~⨒~rrarr~⇉~rscr~𝓇~rsh~↱~rsqb~]~rsquor~’~rthree~⋌~rtimes~⋊~rtri~▹~rtrie~⊵~rtrif~▸~rtriltri~⧎~ruluhar~⥨~rx~℞~sacute~ś~sc~≻~scE~⪴~scap~⪸~sccue~≽~sce~⪰~scedil~ş~scirc~ŝ~scnE~⪶~scnap~⪺~scnsim~⋩~scpolint~⨓~scsim~≿~scy~с~sdotb~⊡~sdote~⩦~seArr~⇘~searhk~⤥~searr~↘~searrow~↘~semi~;~seswar~⤩~setminus~∖~setmn~∖~sext~✶~sfr~𝔰~sfrown~⌢~sharp~♯~shchcy~щ~shcy~ш~shortmid~∣~shortparallel~∥~sigmav~ς~simdot~⩪~sime~≃~simeq~≃~simg~⪞~simgE~⪠~siml~⪝~simlE~⪟~simne~≆~simplus~⨤~simrarr~⥲~slarr~←~smallsetminus~∖~smashp~⨳~smeparsl~⧤~smid~∣~smile~⌣~smt~⪪~smte~⪬~smtes~⪬︀~softcy~ь~sol~/~solb~⧄~solbar~⌿~sopf~𝕤~spadesuit~♠~spar~∥~sqcap~⊓~sqcaps~⊓︀~sqcup~⊔~sqcups~⊔︀~sqsub~⊏~sqsube~⊑~sqsubset~⊏~sqsubseteq~⊑~sqsup~⊐~sqsupe~⊒~sqsupset~⊐~sqsupseteq~⊒~squ~□~square~□~squarf~▪~squf~▪~srarr~→~sscr~𝓈~ssetmn~∖~ssmile~⌣~sstarf~⋆~star~☆~starf~★~straightepsilon~ϵ~straightphi~ϕ~strns~¯~subE~⫅~subdot~⪽~subedot~⫃~submult~⫁~subnE~⫋~subne~⊊~subplus~⪿~subrarr~⥹~subset~⊂~subseteq~⊆~subseteqq~⫅~subsetneq~⊊~subsetneqq~⫋~subsim~⫇~subsub~⫕~subsup~⫓~succ~≻~succapprox~⪸~succcurlyeq~≽~succeq~⪰~succnapprox~⪺~succneqq~⪶~succnsim~⋩~succsim~≿~sung~♪~supE~⫆~supdot~⪾~supdsub~⫘~supedot~⫄~suphsol~⟉~suphsub~⫗~suplarr~⥻~supmult~⫂~supnE~⫌~supne~⊋~supplus~⫀~supset~⊃~supseteq~⊇~supseteqq~⫆~supsetneq~⊋~supsetneqq~⫌~supsim~⫈~supsub~⫔~supsup~⫖~swArr~⇙~swarhk~⤦~swarr~↙~swarrow~↙~swnwar~⤪~target~⌖~tbrk~⎴~tcaron~ť~tcedil~ţ~tcy~т~tdot~⃛~telrec~⌕~tfr~𝔱~therefore~∴~thetav~ϑ~thickapprox~≈~thicksim~∼~thkap~≈~thksim~∼~timesb~⊠~timesbar~⨱~timesd~⨰~tint~∭~toea~⤨~top~⊤~topbot~⌶~topcir~⫱~topf~𝕥~topfork~⫚~tosa~⤩~tprime~‴~triangle~▵~triangledown~▿~triangleleft~◃~trianglelefteq~⊴~triangleq~≜~triangleright~▹~trianglerighteq~⊵~tridot~◬~trie~≜~triminus~⨺~triplus~⨹~trisb~⧍~tritime~⨻~trpezium~⏢~tscr~𝓉~tscy~ц~tshcy~ћ~tstrok~ŧ~twixt~≬~twoheadleftarrow~↞~twoheadrightarrow~↠~uHar~⥣~ubrcy~ў~ubreve~ŭ~ucy~у~udarr~⇅~udblac~ű~udhar~⥮~ufisht~⥾~ufr~𝔲~uharl~↿~uharr~↾~uhblk~▀~ulcorn~⌜~ulcorner~⌜~ulcrop~⌏~ultri~◸~umacr~ū~uogon~ų~uopf~𝕦~uparrow~↑~updownarrow~↕~upharpoonleft~↿~upharpoonright~↾~uplus~⊎~upsi~υ~upuparrows~⇈~urcorn~⌝~urcorner~⌝~urcrop~⌎~uring~ů~urtri~◹~uscr~𝓊~utdot~⋰~utilde~ũ~utri~▵~utrif~▴~uuarr~⇈~uwangle~⦧~vArr~⇕~vBar~⫨~vBarv~⫩~vDash~⊨~vangrt~⦜~varepsilon~ϵ~varkappa~ϰ~varnothing~∅~varphi~ϕ~varpi~ϖ~varpropto~∝~varr~↕~varrho~ϱ~varsigma~ς~varsubsetneq~⊊︀~varsubsetneqq~⫋︀~varsupsetneq~⊋︀~varsupsetneqq~⫌︀~vartheta~ϑ~vartriangleleft~⊲~vartriangleright~⊳~vcy~в~vdash~⊢~vee~∨~veebar~⊻~veeeq~≚~vellip~⋮~verbar~|~vert~|~vfr~𝔳~vltri~⊲~vnsub~⊂⃒~vnsup~⊃⃒~vopf~𝕧~vprop~∝~vrtri~⊳~vscr~𝓋~vsubnE~⫋︀~vsubne~⊊︀~vsupnE~⫌︀~vsupne~⊋︀~vzigzag~⦚~wcirc~ŵ~wedbar~⩟~wedge~∧~wedgeq~≙~wfr~𝔴~wopf~𝕨~wp~℘~wr~≀~wreath~≀~wscr~𝓌~xcap~⋂~xcirc~◯~xcup~⋃~xdtri~▽~xfr~𝔵~xhArr~⟺~xharr~⟷~xlArr~⟸~xlarr~⟵~xmap~⟼~xnis~⋻~xodot~⨀~xopf~𝕩~xoplus~⨁~xotime~⨂~xrArr~⟹~xrarr~⟶~xscr~𝓍~xsqcup~⨆~xuplus~⨄~xutri~△~xvee~⋁~xwedge~⋀~yacy~я~ycirc~ŷ~ycy~ы~yfr~𝔶~yicy~ї~yopf~𝕪~yscr~𝓎~yucy~ю~zacute~ź~zcaron~ž~zcy~з~zdot~ż~zeetrf~ℨ~zfr~𝔷~zhcy~ж~zigrarr~⇝~zopf~𝕫~zscr~𝓏~~AMP~&~COPY~©~GT~>~LT~<~QUOT~"~REG~®', he.html4);
|
|
1842
|
+
he.xml = Qt(`lt~<~gt~>~quot~"~apos~'~amp~&`);
|
|
1843
|
+
he.html4 = Qt(`apos~'~OElig~Œ~oelig~œ~Scaron~Š~scaron~š~Yuml~Ÿ~circ~ˆ~tilde~˜~ensp~ ~emsp~ ~thinsp~ ~zwnj~~zwj~~lrm~~rlm~~ndash~–~mdash~—~lsquo~‘~rsquo~’~sbquo~‚~ldquo~“~rdquo~”~bdquo~„~dagger~†~Dagger~‡~permil~‰~lsaquo~‹~rsaquo~›~euro~€~fnof~ƒ~Alpha~Α~Beta~Β~Gamma~Γ~Delta~Δ~Epsilon~Ε~Zeta~Ζ~Eta~Η~Theta~Θ~Iota~Ι~Kappa~Κ~Lambda~Λ~Mu~Μ~Nu~Ν~Xi~Ξ~Omicron~Ο~Pi~Π~Rho~Ρ~Sigma~Σ~Tau~Τ~Upsilon~Υ~Phi~Φ~Chi~Χ~Psi~Ψ~Omega~Ω~alpha~α~beta~β~gamma~γ~delta~δ~epsilon~ε~zeta~ζ~eta~η~theta~θ~iota~ι~kappa~κ~lambda~λ~mu~μ~nu~ν~xi~ξ~omicron~ο~pi~π~rho~ρ~sigmaf~ς~sigma~σ~tau~τ~upsilon~υ~phi~φ~chi~χ~psi~ψ~omega~ω~thetasym~ϑ~upsih~ϒ~piv~ϖ~bull~•~hellip~…~prime~′~Prime~″~oline~‾~frasl~⁄~weierp~℘~image~ℑ~real~ℜ~trade~™~alefsym~ℵ~larr~←~uarr~↑~rarr~→~darr~↓~harr~↔~crarr~↵~lArr~⇐~uArr~⇑~rArr~⇒~dArr~⇓~hArr~⇔~forall~∀~part~∂~exist~∃~empty~∅~nabla~∇~isin~∈~notin~∉~ni~∋~prod~∏~sum~∑~minus~−~lowast~∗~radic~√~prop~∝~infin~∞~ang~∠~and~∧~or~∨~cap~∩~cup~∪~int~∫~there4~∴~sim~∼~cong~≅~asymp~≈~ne~≠~equiv~≡~le~≤~ge~≥~sub~⊂~sup~⊃~nsub~⊄~sube~⊆~supe~⊇~oplus~⊕~otimes~⊗~perp~⊥~sdot~⋅~lceil~⌈~rceil~⌉~lfloor~⌊~rfloor~⌋~lang~〈~rang~〉~loz~◊~spades~♠~clubs~♣~hearts~♥~diams~♦~~nbsp~ ~iexcl~¡~cent~¢~pound~£~curren~¤~yen~¥~brvbar~¦~sect~§~uml~¨~copy~©~ordf~ª~laquo~«~not~¬~shy~~reg~®~macr~¯~deg~°~plusmn~±~sup2~²~sup3~³~acute~´~micro~µ~para~¶~middot~·~cedil~¸~sup1~¹~ordm~º~raquo~»~frac14~¼~frac12~½~frac34~¾~iquest~¿~Agrave~À~Aacute~Á~Acirc~Â~Atilde~Ã~Auml~Ä~Aring~Å~AElig~Æ~Ccedil~Ç~Egrave~È~Eacute~É~Ecirc~Ê~Euml~Ë~Igrave~Ì~Iacute~Í~Icirc~Î~Iuml~Ï~ETH~Ð~Ntilde~Ñ~Ograve~Ò~Oacute~Ó~Ocirc~Ô~Otilde~Õ~Ouml~Ö~times~×~Oslash~Ø~Ugrave~Ù~Uacute~Ú~Ucirc~Û~Uuml~Ü~Yacute~Ý~THORN~Þ~szlig~ß~agrave~à~aacute~á~acirc~â~atilde~ã~auml~ä~aring~å~aelig~æ~ccedil~ç~egrave~è~eacute~é~ecirc~ê~euml~ë~igrave~ì~iacute~í~icirc~î~iuml~ï~eth~ð~ntilde~ñ~ograve~ò~oacute~ó~ocirc~ô~otilde~õ~ouml~ö~divide~÷~oslash~ø~ugrave~ù~uacute~ú~ucirc~û~uuml~ü~yacute~ý~thorn~þ~yuml~ÿ~quot~"~amp~&~lt~<~gt~>`);
|
|
1844
|
+
he.html5 = Qt('Abreve~Ă~Acy~А~Afr~𝔄~Amacr~Ā~And~⩓~Aogon~Ą~Aopf~𝔸~ApplyFunction~~Ascr~𝒜~Assign~≔~Backslash~∖~Barv~⫧~Barwed~⌆~Bcy~Б~Because~∵~Bernoullis~ℬ~Bfr~𝔅~Bopf~𝔹~Breve~˘~Bscr~ℬ~Bumpeq~≎~CHcy~Ч~Cacute~Ć~Cap~⋒~CapitalDifferentialD~ⅅ~Cayleys~ℭ~Ccaron~Č~Ccirc~Ĉ~Cconint~∰~Cdot~Ċ~Cedilla~¸~CenterDot~·~Cfr~ℭ~CircleDot~⊙~CircleMinus~⊖~CirclePlus~⊕~CircleTimes~⊗~ClockwiseContourIntegral~∲~CloseCurlyDoubleQuote~”~CloseCurlyQuote~’~Colon~∷~Colone~⩴~Congruent~≡~Conint~∯~ContourIntegral~∮~Copf~ℂ~Coproduct~∐~CounterClockwiseContourIntegral~∳~Cross~⨯~Cscr~𝒞~Cup~⋓~CupCap~≍~DD~ⅅ~DDotrahd~⤑~DJcy~Ђ~DScy~Ѕ~DZcy~Џ~Darr~↡~Dashv~⫤~Dcaron~Ď~Dcy~Д~Del~∇~Dfr~𝔇~DiacriticalAcute~´~DiacriticalDot~˙~DiacriticalDoubleAcute~˝~DiacriticalGrave~`~DiacriticalTilde~˜~Diamond~⋄~DifferentialD~ⅆ~Dopf~𝔻~Dot~¨~DotDot~⃜~DotEqual~≐~DoubleContourIntegral~∯~DoubleDot~¨~DoubleDownArrow~⇓~DoubleLeftArrow~⇐~DoubleLeftRightArrow~⇔~DoubleLeftTee~⫤~DoubleLongLeftArrow~⟸~DoubleLongLeftRightArrow~⟺~DoubleLongRightArrow~⟹~DoubleRightArrow~⇒~DoubleRightTee~⊨~DoubleUpArrow~⇑~DoubleUpDownArrow~⇕~DoubleVerticalBar~∥~DownArrow~↓~DownArrowBar~⤓~DownArrowUpArrow~⇵~DownBreve~̑~DownLeftRightVector~⥐~DownLeftTeeVector~⥞~DownLeftVector~↽~DownLeftVectorBar~⥖~DownRightTeeVector~⥟~DownRightVector~⇁~DownRightVectorBar~⥗~DownTee~⊤~DownTeeArrow~↧~Downarrow~⇓~Dscr~𝒟~Dstrok~Đ~ENG~Ŋ~Ecaron~Ě~Ecy~Э~Edot~Ė~Efr~𝔈~Element~∈~Emacr~Ē~EmptySmallSquare~◻~EmptyVerySmallSquare~▫~Eogon~Ę~Eopf~𝔼~Equal~⩵~EqualTilde~≂~Equilibrium~⇌~Escr~ℰ~Esim~⩳~Exists~∃~ExponentialE~ⅇ~Fcy~Ф~Ffr~𝔉~FilledSmallSquare~◼~FilledVerySmallSquare~▪~Fopf~𝔽~ForAll~∀~Fouriertrf~ℱ~Fscr~ℱ~GJcy~Ѓ~Gammad~Ϝ~Gbreve~Ğ~Gcedil~Ģ~Gcirc~Ĝ~Gcy~Г~Gdot~Ġ~Gfr~𝔊~Gg~⋙~Gopf~𝔾~GreaterEqual~≥~GreaterEqualLess~⋛~GreaterFullEqual~≧~GreaterGreater~⪢~GreaterLess~≷~GreaterSlantEqual~⩾~GreaterTilde~≳~Gscr~𝒢~Gt~≫~HARDcy~Ъ~Hacek~ˇ~Hat~^~Hcirc~Ĥ~Hfr~ℌ~HilbertSpace~ℋ~Hopf~ℍ~HorizontalLine~─~Hscr~ℋ~Hstrok~Ħ~HumpDownHump~≎~HumpEqual~≏~IEcy~Е~IJlig~IJ~IOcy~Ё~Icy~И~Idot~İ~Ifr~ℑ~Im~ℑ~Imacr~Ī~ImaginaryI~ⅈ~Implies~⇒~Int~∬~Integral~∫~Intersection~⋂~InvisibleComma~~InvisibleTimes~~Iogon~Į~Iopf~𝕀~Iscr~ℐ~Itilde~Ĩ~Iukcy~І~Jcirc~Ĵ~Jcy~Й~Jfr~𝔍~Jopf~𝕁~Jscr~𝒥~Jsercy~Ј~Jukcy~Є~KHcy~Х~KJcy~Ќ~Kcedil~Ķ~Kcy~К~Kfr~𝔎~Kopf~𝕂~Kscr~𝒦~LJcy~Љ~Lacute~Ĺ~Lang~⟪~Laplacetrf~ℒ~Larr~↞~Lcaron~Ľ~Lcedil~Ļ~Lcy~Л~LeftAngleBracket~⟨~LeftArrow~←~LeftArrowBar~⇤~LeftArrowRightArrow~⇆~LeftCeiling~⌈~LeftDoubleBracket~⟦~LeftDownTeeVector~⥡~LeftDownVector~⇃~LeftDownVectorBar~⥙~LeftFloor~⌊~LeftRightArrow~↔~LeftRightVector~⥎~LeftTee~⊣~LeftTeeArrow~↤~LeftTeeVector~⥚~LeftTriangle~⊲~LeftTriangleBar~⧏~LeftTriangleEqual~⊴~LeftUpDownVector~⥑~LeftUpTeeVector~⥠~LeftUpVector~↿~LeftUpVectorBar~⥘~LeftVector~↼~LeftVectorBar~⥒~Leftarrow~⇐~Leftrightarrow~⇔~LessEqualGreater~⋚~LessFullEqual~≦~LessGreater~≶~LessLess~⪡~LessSlantEqual~⩽~LessTilde~≲~Lfr~𝔏~Ll~⋘~Lleftarrow~⇚~Lmidot~Ŀ~LongLeftArrow~⟵~LongLeftRightArrow~⟷~LongRightArrow~⟶~Longleftarrow~⟸~Longleftrightarrow~⟺~Longrightarrow~⟹~Lopf~𝕃~LowerLeftArrow~↙~LowerRightArrow~↘~Lscr~ℒ~Lsh~↰~Lstrok~Ł~Lt~≪~Map~⤅~Mcy~М~MediumSpace~ ~Mellintrf~ℳ~Mfr~𝔐~MinusPlus~∓~Mopf~𝕄~Mscr~ℳ~NJcy~Њ~Nacute~Ń~Ncaron~Ň~Ncedil~Ņ~Ncy~Н~NegativeMediumSpace~~NegativeThickSpace~~NegativeThinSpace~~NegativeVeryThinSpace~~NestedGreaterGreater~≫~NestedLessLess~≪~NewLine~\n~Nfr~𝔑~NoBreak~~NonBreakingSpace~ ~Nopf~ℕ~Not~⫬~NotCongruent~≢~NotCupCap~≭~NotDoubleVerticalBar~∦~NotElement~∉~NotEqual~≠~NotEqualTilde~≂̸~NotExists~∄~NotGreater~≯~NotGreaterEqual~≱~NotGreaterFullEqual~≧̸~NotGreaterGreater~≫̸~NotGreaterLess~≹~NotGreaterSlantEqual~⩾̸~NotGreaterTilde~≵~NotHumpDownHump~≎̸~NotHumpEqual~≏̸~NotLeftTriangle~⋪~NotLeftTriangleBar~⧏̸~NotLeftTriangleEqual~⋬~NotLess~≮~NotLessEqual~≰~NotLessGreater~≸~NotLessLess~≪̸~NotLessSlantEqual~⩽̸~NotLessTilde~≴~NotNestedGreaterGreater~⪢̸~NotNestedLessLess~⪡̸~NotPrecedes~⊀~NotPrecedesEqual~⪯̸~NotPrecedesSlantEqual~⋠~NotReverseElement~∌~NotRightTriangle~⋫~NotRightTriangleBar~⧐̸~NotRightTriangleEqual~⋭~NotSquareSubset~⊏̸~NotSquareSubsetEqual~⋢~NotSquareSuperset~⊐̸~NotSquareSupersetEqual~⋣~NotSubset~⊂⃒~NotSubsetEqual~⊈~NotSucceeds~⊁~NotSucceedsEqual~⪰̸~NotSucceedsSlantEqual~⋡~NotSucceedsTilde~≿̸~NotSuperset~⊃⃒~NotSupersetEqual~⊉~NotTilde~≁~NotTildeEqual~≄~NotTildeFullEqual~≇~NotTildeTilde~≉~NotVerticalBar~∤~Nscr~𝒩~Ocy~О~Odblac~Ő~Ofr~𝔒~Omacr~Ō~Oopf~𝕆~OpenCurlyDoubleQuote~“~OpenCurlyQuote~‘~Or~⩔~Oscr~𝒪~Otimes~⨷~OverBar~‾~OverBrace~⏞~OverBracket~⎴~OverParenthesis~⏜~PartialD~∂~Pcy~П~Pfr~𝔓~PlusMinus~±~Poincareplane~ℌ~Popf~ℙ~Pr~⪻~Precedes~≺~PrecedesEqual~⪯~PrecedesSlantEqual~≼~PrecedesTilde~≾~Product~∏~Proportion~∷~Proportional~∝~Pscr~𝒫~Qfr~𝔔~Qopf~ℚ~Qscr~𝒬~RBarr~⤐~Racute~Ŕ~Rang~⟫~Rarr~↠~Rarrtl~⤖~Rcaron~Ř~Rcedil~Ŗ~Rcy~Р~Re~ℜ~ReverseElement~∋~ReverseEquilibrium~⇋~ReverseUpEquilibrium~⥯~Rfr~ℜ~RightAngleBracket~⟩~RightArrow~→~RightArrowBar~⇥~RightArrowLeftArrow~⇄~RightCeiling~⌉~RightDoubleBracket~⟧~RightDownTeeVector~⥝~RightDownVector~⇂~RightDownVectorBar~⥕~RightFloor~⌋~RightTee~⊢~RightTeeArrow~↦~RightTeeVector~⥛~RightTriangle~⊳~RightTriangleBar~⧐~RightTriangleEqual~⊵~RightUpDownVector~⥏~RightUpTeeVector~⥜~RightUpVector~↾~RightUpVectorBar~⥔~RightVector~⇀~RightVectorBar~⥓~Rightarrow~⇒~Ropf~ℝ~RoundImplies~⥰~Rrightarrow~⇛~Rscr~ℛ~Rsh~↱~RuleDelayed~⧴~SHCHcy~Щ~SHcy~Ш~SOFTcy~Ь~Sacute~Ś~Sc~⪼~Scedil~Ş~Scirc~Ŝ~Scy~С~Sfr~𝔖~ShortDownArrow~↓~ShortLeftArrow~←~ShortRightArrow~→~ShortUpArrow~↑~SmallCircle~∘~Sopf~𝕊~Sqrt~√~Square~□~SquareIntersection~⊓~SquareSubset~⊏~SquareSubsetEqual~⊑~SquareSuperset~⊐~SquareSupersetEqual~⊒~SquareUnion~⊔~Sscr~𝒮~Star~⋆~Sub~⋐~Subset~⋐~SubsetEqual~⊆~Succeeds~≻~SucceedsEqual~⪰~SucceedsSlantEqual~≽~SucceedsTilde~≿~SuchThat~∋~Sum~∑~Sup~⋑~Superset~⊃~SupersetEqual~⊇~Supset~⋑~TRADE~™~TSHcy~Ћ~TScy~Ц~Tab~ ~Tcaron~Ť~Tcedil~Ţ~Tcy~Т~Tfr~𝔗~Therefore~∴~ThickSpace~ ~ThinSpace~ ~Tilde~∼~TildeEqual~≃~TildeFullEqual~≅~TildeTilde~≈~Topf~𝕋~TripleDot~⃛~Tscr~𝒯~Tstrok~Ŧ~Uarr~↟~Uarrocir~⥉~Ubrcy~Ў~Ubreve~Ŭ~Ucy~У~Udblac~Ű~Ufr~𝔘~Umacr~Ū~UnderBar~_~UnderBrace~⏟~UnderBracket~⎵~UnderParenthesis~⏝~Union~⋃~UnionPlus~⊎~Uogon~Ų~Uopf~𝕌~UpArrow~↑~UpArrowBar~⤒~UpArrowDownArrow~⇅~UpDownArrow~↕~UpEquilibrium~⥮~UpTee~⊥~UpTeeArrow~↥~Uparrow~⇑~Updownarrow~⇕~UpperLeftArrow~↖~UpperRightArrow~↗~Upsi~ϒ~Uring~Ů~Uscr~𝒰~Utilde~Ũ~VDash~⊫~Vbar~⫫~Vcy~В~Vdash~⊩~Vdashl~⫦~Vee~⋁~Verbar~‖~Vert~‖~VerticalBar~∣~VerticalLine~|~VerticalSeparator~❘~VerticalTilde~≀~VeryThinSpace~ ~Vfr~𝔙~Vopf~𝕍~Vscr~𝒱~Vvdash~⊪~Wcirc~Ŵ~Wedge~⋀~Wfr~𝔚~Wopf~𝕎~Wscr~𝒲~Xfr~𝔛~Xopf~𝕏~Xscr~𝒳~YAcy~Я~YIcy~Ї~YUcy~Ю~Ycirc~Ŷ~Ycy~Ы~Yfr~𝔜~Yopf~𝕐~Yscr~𝒴~ZHcy~Ж~Zacute~Ź~Zcaron~Ž~Zcy~З~Zdot~Ż~ZeroWidthSpace~~Zfr~ℨ~Zopf~ℤ~Zscr~𝒵~abreve~ă~ac~∾~acE~∾̳~acd~∿~acy~а~af~~afr~𝔞~aleph~ℵ~amacr~ā~amalg~⨿~andand~⩕~andd~⩜~andslope~⩘~andv~⩚~ange~⦤~angle~∠~angmsd~∡~angmsdaa~⦨~angmsdab~⦩~angmsdac~⦪~angmsdad~⦫~angmsdae~⦬~angmsdaf~⦭~angmsdag~⦮~angmsdah~⦯~angrt~∟~angrtvb~⊾~angrtvbd~⦝~angsph~∢~angst~Å~angzarr~⍼~aogon~ą~aopf~𝕒~ap~≈~apE~⩰~apacir~⩯~ape~≊~apid~≋~approx~≈~approxeq~≊~ascr~𝒶~ast~*~asympeq~≍~awconint~∳~awint~⨑~bNot~⫭~backcong~≌~backepsilon~϶~backprime~‵~backsim~∽~backsimeq~⋍~barvee~⊽~barwed~⌅~barwedge~⌅~bbrk~⎵~bbrktbrk~⎶~bcong~≌~bcy~б~becaus~∵~because~∵~bemptyv~⦰~bepsi~϶~bernou~ℬ~beth~ℶ~between~≬~bfr~𝔟~bigcap~⋂~bigcirc~◯~bigcup~⋃~bigodot~⨀~bigoplus~⨁~bigotimes~⨂~bigsqcup~⨆~bigstar~★~bigtriangledown~▽~bigtriangleup~△~biguplus~⨄~bigvee~⋁~bigwedge~⋀~bkarow~⤍~blacklozenge~⧫~blacksquare~▪~blacktriangle~▴~blacktriangledown~▾~blacktriangleleft~◂~blacktriangleright~▸~blank~␣~blk12~▒~blk14~░~blk34~▓~block~█~bne~=⃥~bnequiv~≡⃥~bnot~⌐~bopf~𝕓~bot~⊥~bottom~⊥~bowtie~⋈~boxDL~╗~boxDR~╔~boxDl~╖~boxDr~╓~boxH~═~boxHD~╦~boxHU~╩~boxHd~╤~boxHu~╧~boxUL~╝~boxUR~╚~boxUl~╜~boxUr~╙~boxV~║~boxVH~╬~boxVL~╣~boxVR~╠~boxVh~╫~boxVl~╢~boxVr~╟~boxbox~⧉~boxdL~╕~boxdR~╒~boxdl~┐~boxdr~┌~boxh~─~boxhD~╥~boxhU~╨~boxhd~┬~boxhu~┴~boxminus~⊟~boxplus~⊞~boxtimes~⊠~boxuL~╛~boxuR~╘~boxul~┘~boxur~└~boxv~│~boxvH~╪~boxvL~╡~boxvR~╞~boxvh~┼~boxvl~┤~boxvr~├~bprime~‵~breve~˘~bscr~𝒷~bsemi~⁏~bsim~∽~bsime~⋍~bsol~\\~bsolb~⧅~bsolhsub~⟈~bullet~•~bump~≎~bumpE~⪮~bumpe~≏~bumpeq~≏~cacute~ć~capand~⩄~capbrcup~⩉~capcap~⩋~capcup~⩇~capdot~⩀~caps~∩︀~caret~⁁~caron~ˇ~ccaps~⩍~ccaron~č~ccirc~ĉ~ccups~⩌~ccupssm~⩐~cdot~ċ~cemptyv~⦲~centerdot~·~cfr~𝔠~chcy~ч~check~✓~checkmark~✓~cir~○~cirE~⧃~circeq~≗~circlearrowleft~↺~circlearrowright~↻~circledR~®~circledS~Ⓢ~circledast~⊛~circledcirc~⊚~circleddash~⊝~cire~≗~cirfnint~⨐~cirmid~⫯~cirscir~⧂~clubsuit~♣~colon~:~colone~≔~coloneq~≔~comma~,~commat~@~comp~∁~compfn~∘~complement~∁~complexes~ℂ~congdot~⩭~conint~∮~copf~𝕔~coprod~∐~copysr~℗~cross~✗~cscr~𝒸~csub~⫏~csube~⫑~csup~⫐~csupe~⫒~ctdot~⋯~cudarrl~⤸~cudarrr~⤵~cuepr~⋞~cuesc~⋟~cularr~↶~cularrp~⤽~cupbrcap~⩈~cupcap~⩆~cupcup~⩊~cupdot~⊍~cupor~⩅~cups~∪︀~curarr~↷~curarrm~⤼~curlyeqprec~⋞~curlyeqsucc~⋟~curlyvee~⋎~curlywedge~⋏~curvearrowleft~↶~curvearrowright~↷~cuvee~⋎~cuwed~⋏~cwconint~∲~cwint~∱~cylcty~⌭~dHar~⥥~daleth~ℸ~dash~‐~dashv~⊣~dbkarow~⤏~dblac~˝~dcaron~ď~dcy~д~dd~ⅆ~ddagger~‡~ddarr~⇊~ddotseq~⩷~demptyv~⦱~dfisht~⥿~dfr~𝔡~dharl~⇃~dharr~⇂~diam~⋄~diamond~⋄~diamondsuit~♦~die~¨~digamma~ϝ~disin~⋲~div~÷~divideontimes~⋇~divonx~⋇~djcy~ђ~dlcorn~⌞~dlcrop~⌍~dollar~$~dopf~𝕕~dot~˙~doteq~≐~doteqdot~≑~dotminus~∸~dotplus~∔~dotsquare~⊡~doublebarwedge~⌆~downarrow~↓~downdownarrows~⇊~downharpoonleft~⇃~downharpoonright~⇂~drbkarow~⤐~drcorn~⌟~drcrop~⌌~dscr~𝒹~dscy~ѕ~dsol~⧶~dstrok~đ~dtdot~⋱~dtri~▿~dtrif~▾~duarr~⇵~duhar~⥯~dwangle~⦦~dzcy~џ~dzigrarr~⟿~eDDot~⩷~eDot~≑~easter~⩮~ecaron~ě~ecir~≖~ecolon~≕~ecy~э~edot~ė~ee~ⅇ~efDot~≒~efr~𝔢~eg~⪚~egs~⪖~egsdot~⪘~el~⪙~elinters~⏧~ell~ℓ~els~⪕~elsdot~⪗~emacr~ē~emptyset~∅~emptyv~∅~emsp13~ ~emsp14~ ~eng~ŋ~eogon~ę~eopf~𝕖~epar~⋕~eparsl~⧣~eplus~⩱~epsi~ε~epsiv~ϵ~eqcirc~≖~eqcolon~≕~eqsim~≂~eqslantgtr~⪖~eqslantless~⪕~equals~=~equest~≟~equivDD~⩸~eqvparsl~⧥~erDot~≓~erarr~⥱~escr~ℯ~esdot~≐~esim~≂~excl~!~expectation~ℰ~exponentiale~ⅇ~fallingdotseq~≒~fcy~ф~female~♀~ffilig~ffi~fflig~ff~ffllig~ffl~ffr~𝔣~filig~fi~fjlig~fj~flat~♭~fllig~fl~fltns~▱~fopf~𝕗~fork~⋔~forkv~⫙~fpartint~⨍~frac13~⅓~frac15~⅕~frac16~⅙~frac18~⅛~frac23~⅔~frac25~⅖~frac35~⅗~frac38~⅜~frac45~⅘~frac56~⅚~frac58~⅝~frac78~⅞~frown~⌢~fscr~𝒻~gE~≧~gEl~⪌~gacute~ǵ~gammad~ϝ~gap~⪆~gbreve~ğ~gcirc~ĝ~gcy~г~gdot~ġ~gel~⋛~geq~≥~geqq~≧~geqslant~⩾~ges~⩾~gescc~⪩~gesdot~⪀~gesdoto~⪂~gesdotol~⪄~gesl~⋛︀~gesles~⪔~gfr~𝔤~gg~≫~ggg~⋙~gimel~ℷ~gjcy~ѓ~gl~≷~glE~⪒~gla~⪥~glj~⪤~gnE~≩~gnap~⪊~gnapprox~⪊~gne~⪈~gneq~⪈~gneqq~≩~gnsim~⋧~gopf~𝕘~grave~`~gscr~ℊ~gsim~≳~gsime~⪎~gsiml~⪐~gtcc~⪧~gtcir~⩺~gtdot~⋗~gtlPar~⦕~gtquest~⩼~gtrapprox~⪆~gtrarr~⥸~gtrdot~⋗~gtreqless~⋛~gtreqqless~⪌~gtrless~≷~gtrsim~≳~gvertneqq~≩︀~gvnE~≩︀~hairsp~ ~half~½~hamilt~ℋ~hardcy~ъ~harrcir~⥈~harrw~↭~hbar~ℏ~hcirc~ĥ~heartsuit~♥~hercon~⊹~hfr~𝔥~hksearow~⤥~hkswarow~⤦~hoarr~⇿~homtht~∻~hookleftarrow~↩~hookrightarrow~↪~hopf~𝕙~horbar~―~hscr~𝒽~hslash~ℏ~hstrok~ħ~hybull~⁃~hyphen~‐~ic~~icy~и~iecy~е~iff~⇔~ifr~𝔦~ii~ⅈ~iiiint~⨌~iiint~∭~iinfin~⧜~iiota~℩~ijlig~ij~imacr~ī~imagline~ℐ~imagpart~ℑ~imath~ı~imof~⊷~imped~Ƶ~in~∈~incare~℅~infintie~⧝~inodot~ı~intcal~⊺~integers~ℤ~intercal~⊺~intlarhk~⨗~intprod~⨼~iocy~ё~iogon~į~iopf~𝕚~iprod~⨼~iscr~𝒾~isinE~⋹~isindot~⋵~isins~⋴~isinsv~⋳~isinv~∈~it~~itilde~ĩ~iukcy~і~jcirc~ĵ~jcy~й~jfr~𝔧~jmath~ȷ~jopf~𝕛~jscr~𝒿~jsercy~ј~jukcy~є~kappav~ϰ~kcedil~ķ~kcy~к~kfr~𝔨~kgreen~ĸ~khcy~х~kjcy~ќ~kopf~𝕜~kscr~𝓀~lAarr~⇚~lAtail~⤛~lBarr~⤎~lE~≦~lEg~⪋~lHar~⥢~lacute~ĺ~laemptyv~⦴~lagran~ℒ~langd~⦑~langle~⟨~lap~⪅~larrb~⇤~larrbfs~⤟~larrfs~⤝~larrhk~↩~larrlp~↫~larrpl~⤹~larrsim~⥳~larrtl~↢~lat~⪫~latail~⤙~late~⪭~lates~⪭︀~lbarr~⤌~lbbrk~❲~lbrace~{~lbrack~[~lbrke~⦋~lbrksld~⦏~lbrkslu~⦍~lcaron~ľ~lcedil~ļ~lcub~{~lcy~л~ldca~⤶~ldquor~„~ldrdhar~⥧~ldrushar~⥋~ldsh~↲~leftarrow~←~leftarrowtail~↢~leftharpoondown~↽~leftharpoonup~↼~leftleftarrows~⇇~leftrightarrow~↔~leftrightarrows~⇆~leftrightharpoons~⇋~leftrightsquigarrow~↭~leftthreetimes~⋋~leg~⋚~leq~≤~leqq~≦~leqslant~⩽~les~⩽~lescc~⪨~lesdot~⩿~lesdoto~⪁~lesdotor~⪃~lesg~⋚︀~lesges~⪓~lessapprox~⪅~lessdot~⋖~lesseqgtr~⋚~lesseqqgtr~⪋~lessgtr~≶~lesssim~≲~lfisht~⥼~lfr~𝔩~lg~≶~lgE~⪑~lhard~↽~lharu~↼~lharul~⥪~lhblk~▄~ljcy~љ~ll~≪~llarr~⇇~llcorner~⌞~llhard~⥫~lltri~◺~lmidot~ŀ~lmoust~⎰~lmoustache~⎰~lnE~≨~lnap~⪉~lnapprox~⪉~lne~⪇~lneq~⪇~lneqq~≨~lnsim~⋦~loang~⟬~loarr~⇽~lobrk~⟦~longleftarrow~⟵~longleftrightarrow~⟷~longmapsto~⟼~longrightarrow~⟶~looparrowleft~↫~looparrowright~↬~lopar~⦅~lopf~𝕝~loplus~⨭~lotimes~⨴~lowbar~_~lozenge~◊~lozf~⧫~lpar~(~lparlt~⦓~lrarr~⇆~lrcorner~⌟~lrhar~⇋~lrhard~⥭~lrtri~⊿~lscr~𝓁~lsh~↰~lsim~≲~lsime~⪍~lsimg~⪏~lsqb~[~lsquor~‚~lstrok~ł~ltcc~⪦~ltcir~⩹~ltdot~⋖~lthree~⋋~ltimes~⋉~ltlarr~⥶~ltquest~⩻~ltrPar~⦖~ltri~◃~ltrie~⊴~ltrif~◂~lurdshar~⥊~luruhar~⥦~lvertneqq~≨︀~lvnE~≨︀~mDDot~∺~male~♂~malt~✠~maltese~✠~map~↦~mapsto~↦~mapstodown~↧~mapstoleft~↤~mapstoup~↥~marker~▮~mcomma~⨩~mcy~м~measuredangle~∡~mfr~𝔪~mho~℧~mid~∣~midast~*~midcir~⫰~minusb~⊟~minusd~∸~minusdu~⨪~mlcp~⫛~mldr~…~mnplus~∓~models~⊧~mopf~𝕞~mp~∓~mscr~𝓂~mstpos~∾~multimap~⊸~mumap~⊸~nGg~⋙̸~nGt~≫⃒~nGtv~≫̸~nLeftarrow~⇍~nLeftrightarrow~⇎~nLl~⋘̸~nLt~≪⃒~nLtv~≪̸~nRightarrow~⇏~nVDash~⊯~nVdash~⊮~nacute~ń~nang~∠⃒~nap~≉~napE~⩰̸~napid~≋̸~napos~ʼn~napprox~≉~natur~♮~natural~♮~naturals~ℕ~nbump~≎̸~nbumpe~≏̸~ncap~⩃~ncaron~ň~ncedil~ņ~ncong~≇~ncongdot~⩭̸~ncup~⩂~ncy~н~neArr~⇗~nearhk~⤤~nearr~↗~nearrow~↗~nedot~≐̸~nequiv~≢~nesear~⤨~nesim~≂̸~nexist~∄~nexists~∄~nfr~𝔫~ngE~≧̸~nge~≱~ngeq~≱~ngeqq~≧̸~ngeqslant~⩾̸~nges~⩾̸~ngsim~≵~ngt~≯~ngtr~≯~nhArr~⇎~nharr~↮~nhpar~⫲~nis~⋼~nisd~⋺~niv~∋~njcy~њ~nlArr~⇍~nlE~≦̸~nlarr~↚~nldr~‥~nle~≰~nleftarrow~↚~nleftrightarrow~↮~nleq~≰~nleqq~≦̸~nleqslant~⩽̸~nles~⩽̸~nless~≮~nlsim~≴~nlt~≮~nltri~⋪~nltrie~⋬~nmid~∤~nopf~𝕟~notinE~⋹̸~notindot~⋵̸~notinva~∉~notinvb~⋷~notinvc~⋶~notni~∌~notniva~∌~notnivb~⋾~notnivc~⋽~npar~∦~nparallel~∦~nparsl~⫽⃥~npart~∂̸~npolint~⨔~npr~⊀~nprcue~⋠~npre~⪯̸~nprec~⊀~npreceq~⪯̸~nrArr~⇏~nrarr~↛~nrarrc~⤳̸~nrarrw~↝̸~nrightarrow~↛~nrtri~⋫~nrtrie~⋭~nsc~⊁~nsccue~⋡~nsce~⪰̸~nscr~𝓃~nshortmid~∤~nshortparallel~∦~nsim~≁~nsime~≄~nsimeq~≄~nsmid~∤~nspar~∦~nsqsube~⋢~nsqsupe~⋣~nsubE~⫅̸~nsube~⊈~nsubset~⊂⃒~nsubseteq~⊈~nsubseteqq~⫅̸~nsucc~⊁~nsucceq~⪰̸~nsup~⊅~nsupE~⫆̸~nsupe~⊉~nsupset~⊃⃒~nsupseteq~⊉~nsupseteqq~⫆̸~ntgl~≹~ntlg~≸~ntriangleleft~⋪~ntrianglelefteq~⋬~ntriangleright~⋫~ntrianglerighteq~⋭~num~#~numero~№~numsp~ ~nvDash~⊭~nvHarr~⤄~nvap~≍⃒~nvdash~⊬~nvge~≥⃒~nvgt~>⃒~nvinfin~⧞~nvlArr~⤂~nvle~≤⃒~nvlt~<⃒~nvltrie~⊴⃒~nvrArr~⤃~nvrtrie~⊵⃒~nvsim~∼⃒~nwArr~⇖~nwarhk~⤣~nwarr~↖~nwarrow~↖~nwnear~⤧~oS~Ⓢ~oast~⊛~ocir~⊚~ocy~о~odash~⊝~odblac~ő~odiv~⨸~odot~⊙~odsold~⦼~ofcir~⦿~ofr~𝔬~ogon~˛~ogt~⧁~ohbar~⦵~ohm~Ω~oint~∮~olarr~↺~olcir~⦾~olcross~⦻~olt~⧀~omacr~ō~omid~⦶~ominus~⊖~oopf~𝕠~opar~⦷~operp~⦹~orarr~↻~ord~⩝~order~ℴ~orderof~ℴ~origof~⊶~oror~⩖~orslope~⩗~orv~⩛~oscr~ℴ~osol~⊘~otimesas~⨶~ovbar~⌽~par~∥~parallel~∥~parsim~⫳~parsl~⫽~pcy~п~percnt~%~period~.~pertenk~‱~pfr~𝔭~phiv~ϕ~phmmat~ℳ~phone~☎~pitchfork~⋔~planck~ℏ~planckh~ℎ~plankv~ℏ~plus~+~plusacir~⨣~plusb~⊞~pluscir~⨢~plusdo~∔~plusdu~⨥~pluse~⩲~plussim~⨦~plustwo~⨧~pm~±~pointint~⨕~popf~𝕡~pr~≺~prE~⪳~prap~⪷~prcue~≼~pre~⪯~prec~≺~precapprox~⪷~preccurlyeq~≼~preceq~⪯~precnapprox~⪹~precneqq~⪵~precnsim~⋨~precsim~≾~primes~ℙ~prnE~⪵~prnap~⪹~prnsim~⋨~profalar~⌮~profline~⌒~profsurf~⌓~propto~∝~prsim~≾~prurel~⊰~pscr~𝓅~puncsp~ ~qfr~𝔮~qint~⨌~qopf~𝕢~qprime~⁗~qscr~𝓆~quaternions~ℍ~quatint~⨖~quest~?~questeq~≟~rAarr~⇛~rAtail~⤜~rBarr~⤏~rHar~⥤~race~∽̱~racute~ŕ~raemptyv~⦳~rangd~⦒~range~⦥~rangle~⟩~rarrap~⥵~rarrb~⇥~rarrbfs~⤠~rarrc~⤳~rarrfs~⤞~rarrhk~↪~rarrlp~↬~rarrpl~⥅~rarrsim~⥴~rarrtl~↣~rarrw~↝~ratail~⤚~ratio~∶~rationals~ℚ~rbarr~⤍~rbbrk~❳~rbrace~}~rbrack~]~rbrke~⦌~rbrksld~⦎~rbrkslu~⦐~rcaron~ř~rcedil~ŗ~rcub~}~rcy~р~rdca~⤷~rdldhar~⥩~rdquor~”~rdsh~↳~realine~ℛ~realpart~ℜ~reals~ℝ~rect~▭~rfisht~⥽~rfr~𝔯~rhard~⇁~rharu~⇀~rharul~⥬~rhov~ϱ~rightarrow~→~rightarrowtail~↣~rightharpoondown~⇁~rightharpoonup~⇀~rightleftarrows~⇄~rightleftharpoons~⇌~rightrightarrows~⇉~rightsquigarrow~↝~rightthreetimes~⋌~ring~˚~risingdotseq~≓~rlarr~⇄~rlhar~⇌~rmoust~⎱~rmoustache~⎱~rnmid~⫮~roang~⟭~roarr~⇾~robrk~⟧~ropar~⦆~ropf~𝕣~roplus~⨮~rotimes~⨵~rpar~)~rpargt~⦔~rppolint~⨒~rrarr~⇉~rscr~𝓇~rsh~↱~rsqb~]~rsquor~’~rthree~⋌~rtimes~⋊~rtri~▹~rtrie~⊵~rtrif~▸~rtriltri~⧎~ruluhar~⥨~rx~℞~sacute~ś~sc~≻~scE~⪴~scap~⪸~sccue~≽~sce~⪰~scedil~ş~scirc~ŝ~scnE~⪶~scnap~⪺~scnsim~⋩~scpolint~⨓~scsim~≿~scy~с~sdotb~⊡~sdote~⩦~seArr~⇘~searhk~⤥~searr~↘~searrow~↘~semi~;~seswar~⤩~setminus~∖~setmn~∖~sext~✶~sfr~𝔰~sfrown~⌢~sharp~♯~shchcy~щ~shcy~ш~shortmid~∣~shortparallel~∥~sigmav~ς~simdot~⩪~sime~≃~simeq~≃~simg~⪞~simgE~⪠~siml~⪝~simlE~⪟~simne~≆~simplus~⨤~simrarr~⥲~slarr~←~smallsetminus~∖~smashp~⨳~smeparsl~⧤~smid~∣~smile~⌣~smt~⪪~smte~⪬~smtes~⪬︀~softcy~ь~sol~/~solb~⧄~solbar~⌿~sopf~𝕤~spadesuit~♠~spar~∥~sqcap~⊓~sqcaps~⊓︀~sqcup~⊔~sqcups~⊔︀~sqsub~⊏~sqsube~⊑~sqsubset~⊏~sqsubseteq~⊑~sqsup~⊐~sqsupe~⊒~sqsupset~⊐~sqsupseteq~⊒~squ~□~square~□~squarf~▪~squf~▪~srarr~→~sscr~𝓈~ssetmn~∖~ssmile~⌣~sstarf~⋆~star~☆~starf~★~straightepsilon~ϵ~straightphi~ϕ~strns~¯~subE~⫅~subdot~⪽~subedot~⫃~submult~⫁~subnE~⫋~subne~⊊~subplus~⪿~subrarr~⥹~subset~⊂~subseteq~⊆~subseteqq~⫅~subsetneq~⊊~subsetneqq~⫋~subsim~⫇~subsub~⫕~subsup~⫓~succ~≻~succapprox~⪸~succcurlyeq~≽~succeq~⪰~succnapprox~⪺~succneqq~⪶~succnsim~⋩~succsim~≿~sung~♪~supE~⫆~supdot~⪾~supdsub~⫘~supedot~⫄~suphsol~⟉~suphsub~⫗~suplarr~⥻~supmult~⫂~supnE~⫌~supne~⊋~supplus~⫀~supset~⊃~supseteq~⊇~supseteqq~⫆~supsetneq~⊋~supsetneqq~⫌~supsim~⫈~supsub~⫔~supsup~⫖~swArr~⇙~swarhk~⤦~swarr~↙~swarrow~↙~swnwar~⤪~target~⌖~tbrk~⎴~tcaron~ť~tcedil~ţ~tcy~т~tdot~⃛~telrec~⌕~tfr~𝔱~therefore~∴~thetav~ϑ~thickapprox~≈~thicksim~∼~thkap~≈~thksim~∼~timesb~⊠~timesbar~⨱~timesd~⨰~tint~∭~toea~⤨~top~⊤~topbot~⌶~topcir~⫱~topf~𝕥~topfork~⫚~tosa~⤩~tprime~‴~triangle~▵~triangledown~▿~triangleleft~◃~trianglelefteq~⊴~triangleq~≜~triangleright~▹~trianglerighteq~⊵~tridot~◬~trie~≜~triminus~⨺~triplus~⨹~trisb~⧍~tritime~⨻~trpezium~⏢~tscr~𝓉~tscy~ц~tshcy~ћ~tstrok~ŧ~twixt~≬~twoheadleftarrow~↞~twoheadrightarrow~↠~uHar~⥣~ubrcy~ў~ubreve~ŭ~ucy~у~udarr~⇅~udblac~ű~udhar~⥮~ufisht~⥾~ufr~𝔲~uharl~↿~uharr~↾~uhblk~▀~ulcorn~⌜~ulcorner~⌜~ulcrop~⌏~ultri~◸~umacr~ū~uogon~ų~uopf~𝕦~uparrow~↑~updownarrow~↕~upharpoonleft~↿~upharpoonright~↾~uplus~⊎~upsi~υ~upuparrows~⇈~urcorn~⌝~urcorner~⌝~urcrop~⌎~uring~ů~urtri~◹~uscr~𝓊~utdot~⋰~utilde~ũ~utri~▵~utrif~▴~uuarr~⇈~uwangle~⦧~vArr~⇕~vBar~⫨~vBarv~⫩~vDash~⊨~vangrt~⦜~varepsilon~ϵ~varkappa~ϰ~varnothing~∅~varphi~ϕ~varpi~ϖ~varpropto~∝~varr~↕~varrho~ϱ~varsigma~ς~varsubsetneq~⊊︀~varsubsetneqq~⫋︀~varsupsetneq~⊋︀~varsupsetneqq~⫌︀~vartheta~ϑ~vartriangleleft~⊲~vartriangleright~⊳~vcy~в~vdash~⊢~vee~∨~veebar~⊻~veeeq~≚~vellip~⋮~verbar~|~vert~|~vfr~𝔳~vltri~⊲~vnsub~⊂⃒~vnsup~⊃⃒~vopf~𝕧~vprop~∝~vrtri~⊳~vscr~𝓋~vsubnE~⫋︀~vsubne~⊊︀~vsupnE~⫌︀~vsupne~⊋︀~vzigzag~⦚~wcirc~ŵ~wedbar~⩟~wedge~∧~wedgeq~≙~wfr~𝔴~wopf~𝕨~wp~℘~wr~≀~wreath~≀~wscr~𝓌~xcap~⋂~xcirc~◯~xcup~⋃~xdtri~▽~xfr~𝔵~xhArr~⟺~xharr~⟷~xlArr~⟸~xlarr~⟵~xmap~⟼~xnis~⋻~xodot~⨀~xopf~𝕩~xoplus~⨁~xotime~⨂~xrArr~⟹~xrarr~⟶~xscr~𝓍~xsqcup~⨆~xuplus~⨄~xutri~△~xvee~⋁~xwedge~⋀~yacy~я~ycirc~ŷ~ycy~ы~yfr~𝔶~yicy~ї~yopf~𝕪~yscr~𝓎~yucy~ю~zacute~ź~zcaron~ž~zcy~з~zdot~ż~zeetrf~ℨ~zfr~𝔷~zhcy~ж~zigrarr~⇝~zopf~𝕫~zscr~𝓏~~AMP~&~COPY~©~GT~>~LT~<~QUOT~"~REG~®', he.html4);
|
|
1845
1845
|
var za = {
|
|
1846
1846
|
0: 65533,
|
|
1847
1847
|
128: 8364,
|
|
@@ -1884,23 +1884,23 @@ var za = {
|
|
|
1884
1884
|
}, Va = de(de({}, he), { all: he.html5 }), Fa = {
|
|
1885
1885
|
scope: "body",
|
|
1886
1886
|
level: "all"
|
|
1887
|
-
},
|
|
1887
|
+
}, ft = /&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g, pt = /&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g, On = {
|
|
1888
1888
|
xml: {
|
|
1889
|
-
strict:
|
|
1890
|
-
attribute:
|
|
1891
|
-
body:
|
|
1889
|
+
strict: ft,
|
|
1890
|
+
attribute: pt,
|
|
1891
|
+
body: gt.xml
|
|
1892
1892
|
},
|
|
1893
1893
|
html4: {
|
|
1894
|
-
strict:
|
|
1895
|
-
attribute:
|
|
1896
|
-
body:
|
|
1894
|
+
strict: ft,
|
|
1895
|
+
attribute: pt,
|
|
1896
|
+
body: gt.html4
|
|
1897
1897
|
},
|
|
1898
1898
|
html5: {
|
|
1899
|
-
strict:
|
|
1900
|
-
attribute:
|
|
1901
|
-
body:
|
|
1899
|
+
strict: ft,
|
|
1900
|
+
attribute: pt,
|
|
1901
|
+
body: gt.html5
|
|
1902
1902
|
}
|
|
1903
|
-
}, Ha = de(de({},
|
|
1903
|
+
}, Ha = de(de({}, On), { all: On.html5 }), Sr = String.fromCharCode, Ma = Sr(65533);
|
|
1904
1904
|
function Ga(t, e, n, r) {
|
|
1905
1905
|
var i = t, s = t[t.length - 1];
|
|
1906
1906
|
if (n && s === "=")
|
|
@@ -1913,7 +1913,7 @@ function Ga(t, e, n, r) {
|
|
|
1913
1913
|
i = o;
|
|
1914
1914
|
else if (t[0] === "&" && t[1] === "#") {
|
|
1915
1915
|
var a = t[2], c = a == "x" || a == "X" ? parseInt(t.substr(3), 16) : parseInt(t.substr(2));
|
|
1916
|
-
i = c >= 1114111 ? Ma : c > 65535 ? ja(c) :
|
|
1916
|
+
i = c >= 1114111 ? Ma : c > 65535 ? ja(c) : Sr(za[c] || c);
|
|
1917
1917
|
}
|
|
1918
1918
|
}
|
|
1919
1919
|
return i;
|
|
@@ -1928,7 +1928,7 @@ function Tn(t, e) {
|
|
|
1928
1928
|
});
|
|
1929
1929
|
}
|
|
1930
1930
|
var Wa = { strictlyTwoElementsInRangeArrays: !1, progressFn: null };
|
|
1931
|
-
function
|
|
1931
|
+
function Je(t, e) {
|
|
1932
1932
|
if (!Array.isArray(t) || !t.length) return t;
|
|
1933
1933
|
let n = { ...Wa, ...e }, r, i;
|
|
1934
1934
|
if (n.strictlyTwoElementsInRangeArrays && !t.every((a, c) => !Array.isArray(a) || a.length !== 2 ? (r = c, i = a.length, !1) : !0)) throw new TypeError(`ranges-sort: [THROW_ID_03] The first argument should be an array and must consist of arrays which are natural number indexes representing TWO string index ranges. However, ${r}th range (${JSON.stringify(t[r], null, 4)}) has not two but ${i} elements!`);
|
|
@@ -1952,9 +1952,9 @@ function Ka(t, e) {
|
|
|
1952
1952
|
${JSON.stringify(e, null, 4)} (type ${typeof e})`);
|
|
1953
1953
|
else r = { ...Rn };
|
|
1954
1954
|
let i = t.filter((l) => Array.isArray(l)).map((l) => [...l]).filter((l) => l[2] !== void 0 || l[0] !== l[1]), s, o, a;
|
|
1955
|
-
r.progressFn ? s =
|
|
1955
|
+
r.progressFn ? s = Je(i, { progressFn: (l) => {
|
|
1956
1956
|
a = Math.floor(l / 5), a !== o && (o = a, r.progressFn(a));
|
|
1957
|
-
} }) : s =
|
|
1957
|
+
} }) : s = Je(i);
|
|
1958
1958
|
let c = s.length - 1;
|
|
1959
1959
|
for (let l = c; l > 0; l--) r.progressFn && (a = Math.floor((1 - l / c) * 78) + 21, a !== o && a > o && (o = a, r.progressFn(a))), (s[l][0] <= s[l - 1][0] || !r.joinRangesThatTouchEdges && s[l][0] < s[l - 1][1] || r.joinRangesThatTouchEdges && s[l][0] <= s[l - 1][1]) && (s[l - 1][0] = Math.min(s[l][0], s[l - 1][0]), s[l - 1][1] = Math.max(s[l][1], s[l - 1][1]), s[l][2] !== void 0 && (s[l - 1][0] >= s[l][0] || s[l - 1][1] <= s[l][1]) && s[l - 1][2] !== null && (s[l][2] === null && s[l - 1][2] !== null ? s[l - 1][2] = null : s[l - 1][2] != null ? +r.mergeType == 2 && s[l - 1][0] === s[l][0] ? s[l - 1][2] = s[l][2] : s[l - 1][2] += s[l][2] : s[l - 1][2] = s[l][2]), s.splice(l, 1), l = s.length);
|
|
1960
1960
|
return s.length ? s : null;
|
|
@@ -1998,7 +1998,7 @@ function Za(t, e, n) {
|
|
|
1998
1998
|
}
|
|
1999
1999
|
return t;
|
|
2000
2000
|
}
|
|
2001
|
-
function
|
|
2001
|
+
function mt(t, e = 1) {
|
|
2002
2002
|
let n = " ";
|
|
2003
2003
|
function r(s) {
|
|
2004
2004
|
return Array.from(s).reverse().join("");
|
|
@@ -2034,7 +2034,7 @@ function yt(t, e = 1) {
|
|
|
2034
2034
|
}
|
|
2035
2035
|
return t;
|
|
2036
2036
|
}
|
|
2037
|
-
var
|
|
2037
|
+
var In = { mergeType: 1, progressFn: null, joinRangesThatTouchEdges: !0 };
|
|
2038
2038
|
function Ya(t, e) {
|
|
2039
2039
|
function n(l) {
|
|
2040
2040
|
return !!l && typeof l == "object" && !Array.isArray(l);
|
|
@@ -2042,17 +2042,17 @@ function Ya(t, e) {
|
|
|
2042
2042
|
if (!Array.isArray(t) || !t.length) return null;
|
|
2043
2043
|
let r;
|
|
2044
2044
|
if (e) if (n(e)) {
|
|
2045
|
-
if (r = { ...
|
|
2045
|
+
if (r = { ...In, ...e }, r.progressFn && n(r.progressFn) && !Object.keys(r.progressFn).length) r.progressFn = null;
|
|
2046
2046
|
else if (r.progressFn && typeof r.progressFn != "function") throw new Error(`ranges-merge: [THROW_ID_01] resolvedOpts.progressFn must be a function! It was given of a type: "${typeof r.progressFn}", equal to ${JSON.stringify(r.progressFn, null, 4)}`);
|
|
2047
2047
|
if (![1, 2, "1", "2"].includes(r.mergeType)) throw new Error(`ranges-merge: [THROW_ID_02] resolvedOpts.mergeType was customised to a wrong thing! It was given of a type: "${typeof r.mergeType}", equal to ${JSON.stringify(r.mergeType, null, 4)}`);
|
|
2048
2048
|
if (typeof r.joinRangesThatTouchEdges != "boolean") throw new Error(`ranges-merge: [THROW_ID_04] resolvedOpts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "${typeof r.joinRangesThatTouchEdges}", equal to ${JSON.stringify(r.joinRangesThatTouchEdges, null, 4)}`);
|
|
2049
2049
|
} else throw new Error(`ranges-merge: [THROW_ID_03] the second input argument must be a plain object. It was given as:
|
|
2050
2050
|
${JSON.stringify(e, null, 4)} (type ${typeof e})`);
|
|
2051
|
-
else r = { ...
|
|
2051
|
+
else r = { ...In };
|
|
2052
2052
|
let i = t.filter((l) => Array.isArray(l)).map((l) => [...l]).filter((l) => l[2] !== void 0 || l[0] !== l[1]), s, o, a;
|
|
2053
|
-
r.progressFn ? s =
|
|
2053
|
+
r.progressFn ? s = Je(i, { progressFn: (l) => {
|
|
2054
2054
|
a = Math.floor(l / 5), a !== o && (o = a, r.progressFn != null && r.progressFn(a));
|
|
2055
|
-
} }) : s =
|
|
2055
|
+
} }) : s = Je(i);
|
|
2056
2056
|
let c = s.length - 1;
|
|
2057
2057
|
for (let l = c; l > 0; l--) r.progressFn && (a = Math.floor((1 - l / c) * 78) + 21, a !== o && a > o && (o = a, r.progressFn(a))), (s[l][0] <= s[l - 1][0] || !r.joinRangesThatTouchEdges && s[l][0] < s[l - 1][1] || r.joinRangesThatTouchEdges && s[l][0] <= s[l - 1][1]) && (s[l - 1][0] = Math.min(s[l][0], s[l - 1][0]), s[l - 1][1] = Math.max(s[l][1], s[l - 1][1]), s[l][2] !== void 0 && (s[l - 1][0] >= s[l][0] || s[l - 1][1] <= s[l][1]) && s[l - 1][2] !== null && (s[l][2] === null && s[l - 1][2] !== null ? s[l - 1][2] = null : s[l - 1][2] != null ? +(r || {})?.mergeType == 2 && s[l - 1][0] === s[l][0] ? s[l - 1][2] = s[l][2] : s[l - 1][2] += s[l][2] : s[l - 1][2] = s[l][2]), s.splice(l, 1), l = s.length);
|
|
2058
2058
|
return s.length ? s : null;
|
|
@@ -2060,8 +2060,8 @@ ${JSON.stringify(e, null, 4)} (type ${typeof e})`);
|
|
|
2060
2060
|
var eo = { limitToBeAddedWhitespace: !1, limitLinebreaksCount: 1, mergeType: 1 }, to = class {
|
|
2061
2061
|
constructor(e) {
|
|
2062
2062
|
let n = { ...eo, ...e };
|
|
2063
|
-
if (n.mergeType && n.mergeType !== 1 && n.mergeType !== 2) if (
|
|
2064
|
-
else if (
|
|
2063
|
+
if (n.mergeType && n.mergeType !== 1 && n.mergeType !== 2) if (ne(n.mergeType) && n.mergeType.trim() === "1") n.mergeType = 1;
|
|
2064
|
+
else if (ne(n.mergeType) && n.mergeType.trim() === "2") n.mergeType = 2;
|
|
2065
2065
|
else throw new Error(`ranges-push: [THROW_ID_02] opts.mergeType was customised to a wrong thing! It was given of a type: "${typeof n.mergeType}", equal to ${JSON.stringify(n.mergeType, null, 4)}`);
|
|
2066
2066
|
this.opts = n, this.ranges = [];
|
|
2067
2067
|
}
|
|
@@ -2078,39 +2078,39 @@ var eo = { limitToBeAddedWhitespace: !1, limitLinebreaksCount: 1, mergeType: 1 }
|
|
|
2078
2078
|
});
|
|
2079
2079
|
return;
|
|
2080
2080
|
}
|
|
2081
|
-
e.length &&
|
|
2081
|
+
e.length && Y(+e[0]) && Y(+e[1]) && this.add(...e);
|
|
2082
2082
|
}
|
|
2083
2083
|
return;
|
|
2084
2084
|
}
|
|
2085
2085
|
throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_12] the first input argument, "from" is set (${JSON.stringify(e, null, 0)}) but second-one, "to" is not (${JSON.stringify(n, null, 0)})`);
|
|
2086
2086
|
} else if (!G(e) && G(n)) throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_13] the second input argument, "to" is set (${JSON.stringify(n, null, 0)}) but first-one, "from" is not (${JSON.stringify(e, null, 0)})`);
|
|
2087
2087
|
let i = +e, s = +n;
|
|
2088
|
-
if (
|
|
2089
|
-
if (G(r) && !
|
|
2088
|
+
if (Y(i) && Y(s)) {
|
|
2089
|
+
if (G(r) && !ne(r) && !Ni(r)) throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_08] The third argument, the value to add, was given not as string but ${typeof r}, equal to:
|
|
2090
2090
|
${JSON.stringify(r, null, 4)}`);
|
|
2091
2091
|
if (G(this.ranges) && Array.isArray(this.last()) && i === this.last()[1]) {
|
|
2092
2092
|
if (this.last()[1] = s, this.last()[2], this.last()[2] !== null && G(r)) {
|
|
2093
2093
|
let o = this.last()[2] && this.last()[2].length && (!this.opts?.mergeType || this.opts.mergeType === 1) ? `${this.last()[2]}${r}` : r;
|
|
2094
|
-
this.opts.limitToBeAddedWhitespace && (o =
|
|
2094
|
+
this.opts.limitToBeAddedWhitespace && (o = mt(o, this.opts.limitLinebreaksCount)), ne(o) && !o.length || (this.last()[2] = o);
|
|
2095
2095
|
}
|
|
2096
2096
|
} else {
|
|
2097
2097
|
this.ranges || (this.ranges = []);
|
|
2098
|
-
let o = r !== void 0 && !(
|
|
2098
|
+
let o = r !== void 0 && !(ne(r) && !r.length) ? [i, s, r && this.opts.limitToBeAddedWhitespace ? mt(r, this.opts.limitLinebreaksCount) : r] : [i, s];
|
|
2099
2099
|
this.ranges.push(o);
|
|
2100
2100
|
}
|
|
2101
|
-
} else throw
|
|
2101
|
+
} else throw Y(i) && i >= 0 ? new TypeError(`ranges-push/Ranges/add(): [THROW_ID_10] "to" value, the second input argument, must be a natural number or zero! Currently it's of a type "${typeof s}" equal to: ${JSON.stringify(s, null, 4)}`) : new TypeError(`ranges-push/Ranges/add(): [THROW_ID_09] "from" value, the first input argument, must be a natural number or zero! Currently it's of a type "${typeof i}" equal to: ${JSON.stringify(i, null, 4)}`);
|
|
2102
2102
|
}
|
|
2103
2103
|
push(e, n, r) {
|
|
2104
2104
|
this.add(e, n, r);
|
|
2105
2105
|
}
|
|
2106
2106
|
current() {
|
|
2107
|
-
return Array.isArray(this.ranges) && this.ranges.length ? (this.ranges = Ya(this.ranges, { mergeType: this.opts.mergeType }), this.ranges && this.opts.limitToBeAddedWhitespace ? this.ranges.map((e) => G(e[2]) ? [e[0], e[1],
|
|
2107
|
+
return Array.isArray(this.ranges) && this.ranges.length ? (this.ranges = Ya(this.ranges, { mergeType: this.opts.mergeType }), this.ranges && this.opts.limitToBeAddedWhitespace ? this.ranges.map((e) => G(e[2]) ? [e[0], e[1], mt(e[2], this.opts.limitLinebreaksCount)] : e) : this.ranges) : null;
|
|
2108
2108
|
}
|
|
2109
2109
|
wipe() {
|
|
2110
2110
|
this.ranges = [];
|
|
2111
2111
|
}
|
|
2112
2112
|
replace(e) {
|
|
2113
|
-
if (Array.isArray(e) && e.length) if (Array.isArray(e[0]) &&
|
|
2113
|
+
if (Array.isArray(e) && e.length) if (Array.isArray(e[0]) && Y(e[0][0])) this.ranges = Array.from(e);
|
|
2114
2114
|
else throw new Error(`ranges-push/Ranges/replace(): [THROW_ID_11] Single range was given but we expected array of arrays! The first element, ${JSON.stringify(e[0], null, 4)} should be an array and its first element should be an integer, a string index.`);
|
|
2115
2115
|
else this.ranges = [];
|
|
2116
2116
|
}
|
|
@@ -2118,16 +2118,16 @@ ${JSON.stringify(r, null, 4)}`);
|
|
|
2118
2118
|
return Array.isArray(this.ranges) && this.ranges.length ? this.ranges[this.ranges.length - 1] : null;
|
|
2119
2119
|
}
|
|
2120
2120
|
};
|
|
2121
|
-
|
|
2122
|
-
var
|
|
2121
|
+
lr();
|
|
2122
|
+
var yt = " ";
|
|
2123
2123
|
function no({ str: t, idx: e = 0, stopAtNewlines: n = !1, stopAtRawNbsp: r = !1 }) {
|
|
2124
2124
|
if (typeof t != "string" || !t.length || ((!e || typeof e != "number") && (e = 0), !t[e + 1])) return null;
|
|
2125
2125
|
if (t[e + 1] && (t[e + 1].trim() || n && `
|
|
2126
|
-
\r`.includes(t[e + 1]) || r && t[e + 1] ===
|
|
2126
|
+
\r`.includes(t[e + 1]) || r && t[e + 1] === yt)) return e + 1;
|
|
2127
2127
|
if (t[e + 2] && (t[e + 2].trim() || n && `
|
|
2128
|
-
\r`.includes(t[e + 2]) || r && t[e + 2] ===
|
|
2128
|
+
\r`.includes(t[e + 2]) || r && t[e + 2] === yt)) return e + 2;
|
|
2129
2129
|
for (let i = e + 1, s = t.length; i < s; i++) if (t[i].trim() || n && `
|
|
2130
|
-
\r`.includes(t[i]) || r && t[i] ===
|
|
2130
|
+
\r`.includes(t[i]) || r && t[i] === yt) return i;
|
|
2131
2131
|
return null;
|
|
2132
2132
|
}
|
|
2133
2133
|
function B(t, e = 0) {
|
|
@@ -2136,13 +2136,13 @@ function B(t, e = 0) {
|
|
|
2136
2136
|
function ro(t) {
|
|
2137
2137
|
return /[-_A-Za-z0-9]/.test(t);
|
|
2138
2138
|
}
|
|
2139
|
-
function
|
|
2139
|
+
function Ln(t, e) {
|
|
2140
2140
|
if (!t) return [];
|
|
2141
2141
|
if (Array.isArray(t)) return t.filter((n) => typeof n == "string" && n.trim());
|
|
2142
2142
|
if (typeof t == "string") return t.trim() ? [t] : [];
|
|
2143
2143
|
throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_05] ${e} must be array containing zero or more strings or something falsey. Currently it's equal to: ${t}, that a type of ${typeof t}.`);
|
|
2144
2144
|
}
|
|
2145
|
-
function
|
|
2145
|
+
function $e(t, e, n, r) {
|
|
2146
2146
|
for (let i = e, s = t.length; i < s; i++) {
|
|
2147
2147
|
if (t.startsWith(n, i)) return !0;
|
|
2148
2148
|
if (t.startsWith(r, i)) return !1;
|
|
@@ -2150,13 +2150,13 @@ function De(t, e, n, r) {
|
|
|
2150
2150
|
return !1;
|
|
2151
2151
|
}
|
|
2152
2152
|
function Pn(t, e, n) {
|
|
2153
|
-
return t?.quotes, t?.quotes?.value &&
|
|
2153
|
+
return t?.quotes, t?.quotes?.value && $e(e, n + 1, t.quotes.value, ">"), t?.quotes?.next, $e(e, t?.quotes?.next - 1, t?.quotes?.value, ">"), !t?.quotes || !$e(e, n + 1, t.quotes.value, ">") && t?.quotes?.next !== -1 && $e(e, t?.quotes?.next - 1, t?.quotes?.value, ">");
|
|
2154
2154
|
}
|
|
2155
2155
|
function io(t, e) {
|
|
2156
2156
|
return (e.match(new RegExp(t, "g")) || []).length;
|
|
2157
2157
|
}
|
|
2158
|
-
var we = /* @__PURE__ */ new Set(["!doctype", "abbr", "address", "area", "article", "aside", "audio", "base", "bdi", "bdo", "blockquote", "body", "br", "button", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "doctype", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "iframe", "img", "input", "ins", "kbd", "keygen", "label", "legend", "li", "link", "main", "map", "mark", "math", "menu", "menuitem", "meta", "meter", "nav", "noscript", "object", "ol", "optgroup", "option", "output", "param", "picture", "pre", "progress", "rb", "rp", "rt", "rtc", "ruby", "samp", "script", "section", "select", "slot", "small", "source", "span", "strong", "style", "sub", "summary", "sup", "svg", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "ul", "var", "video", "wbr", "xml"]),
|
|
2159
|
-
function
|
|
2158
|
+
var we = /* @__PURE__ */ new Set(["!doctype", "abbr", "address", "area", "article", "aside", "audio", "base", "bdi", "bdo", "blockquote", "body", "br", "button", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "doctype", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "iframe", "img", "input", "ins", "kbd", "keygen", "label", "legend", "li", "link", "main", "map", "mark", "math", "menu", "menuitem", "meta", "meter", "nav", "noscript", "object", "ol", "optgroup", "option", "output", "param", "picture", "pre", "progress", "rb", "rp", "rt", "rtc", "ruby", "samp", "script", "section", "select", "slot", "small", "source", "span", "strong", "style", "sub", "summary", "sup", "svg", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "ul", "var", "video", "wbr", "xml"]), bt = /* @__PURE__ */ new Set(["a", "b", "i", "p", "q", "s", "u"]), vt = /* @__PURE__ */ new Set([".", ",", ";", "!", "?"]), qn = /* @__PURE__ */ new Set([".", ",", "?", ";", ")", "…", '"', "»"]), so = /* @__PURE__ */ new Set(["a", "abbr", "acronym", "audio", "b", "bdi", "bdo", "big", "button", "canvas", "cite", "code", "data", "datalist", "del", "dfn", "em", "embed", "i", "iframe", "input", "ins", "kbd", "label", "map", "mark", "meter", "noscript", "object", "output", "picture", "progress", "q", "ruby", "s", "samp", "select", "slot", "small", "span", "strong", "sub", "sup", "svg", "template", "textarea", "time", "u", "tt", "var", "video", "wbr"]), $n = { ignoreTags: [], ignoreTagsWithTheirContents: [], onlyStripTags: [], stripTogetherWithTheirContents: ["script", "style", "xml"], skipHtmlDecoding: !1, trimOnlySpaces: !1, stripRecognisedHTMLOnly: !1, dumpLinkHrefsNearby: { enabled: !1, putOnNewLine: !1, wrapHeads: "", wrapTails: "" }, ignoreIndentations: !1, cb: null, reportProgressFunc: null, reportProgressFuncFrom: 0, reportProgressFuncTo: 100 };
|
|
2159
|
+
function xr(t, e) {
|
|
2160
2160
|
let n = Date.now(), r = [], i = [], s = [], o = [], a = {};
|
|
2161
2161
|
function c() {
|
|
2162
2162
|
a = { attributes: [] };
|
|
@@ -2166,7 +2166,7 @@ function kr(t, e) {
|
|
|
2166
2166
|
function C(h, v, x) {
|
|
2167
2167
|
if (Array.isArray(v.stripTogetherWithTheirContents) && (v.stripTogetherWithTheirContents.includes(a.name) || v.stripTogetherWithTheirContents.includes("*"))) if (a.slashPresent && Array.isArray(r) && r.some((S) => S.name === a.name)) {
|
|
2168
2168
|
for (let S = r.length; S--; ) if (r[S].name === a.name) {
|
|
2169
|
-
o = o.filter(([T,
|
|
2169
|
+
o = o.filter(([T, I]) => (T < r[S].lastOpeningBracketAt || T >= h + 1) && (I <= r[S].lastOpeningBracketAt || I > h + 1));
|
|
2170
2170
|
let R = h + 1;
|
|
2171
2171
|
a.lastClosingBracketAt && (R = a.lastClosingBracketAt + 1), o.push([r[S].lastOpeningBracketAt, R]), qn.has(t[h]) && v.cb ? v.cb({ tag: a, deleteFrom: r[S].lastOpeningBracketAt, deleteTo: h + 1, insert: null, rangesArr: x, proposedReturn: [r[S].lastOpeningBracketAt, h, null] }) : v.cb && v.cb({ tag: a, deleteFrom: r[S].lastOpeningBracketAt, deleteTo: h, insert: "", rangesArr: x, proposedReturn: [r[S].lastOpeningBracketAt, h, ""] }), r.splice(S, 1);
|
|
2172
2172
|
break;
|
|
@@ -2175,17 +2175,17 @@ function kr(t, e) {
|
|
|
2175
2175
|
else Array.isArray(v.ignoreTagsWithTheirContents) && pe(h, v, a) && (E = !1);
|
|
2176
2176
|
}
|
|
2177
2177
|
function N(h, v, x, S, R, T) {
|
|
2178
|
-
if (Array.isArray(
|
|
2178
|
+
if (Array.isArray(O.current()) && typeof x == "number" && O.current()[0][0] === 0 && O.current()[0][1] >= x) return "";
|
|
2179
2179
|
if (t.length === S && T && !b?.dumpLinkHrefsNearby?.enabled) return null;
|
|
2180
|
-
let
|
|
2181
|
-
if (Number.isInteger(x) && x < R && (
|
|
2180
|
+
let I = "";
|
|
2181
|
+
if (Number.isInteger(x) && x < R && (I += h.slice(x, R)), Number.isInteger(S) && S > T + 1) {
|
|
2182
2182
|
let z = h.slice(T + 1, S);
|
|
2183
2183
|
S && !B(t, S - 1) && (z = z.trimEnd()), z.includes(`
|
|
2184
|
-
`) && P(S, h) ?
|
|
2184
|
+
`) && P(S, h) ? I += " " : I += z;
|
|
2185
2185
|
}
|
|
2186
|
-
let
|
|
2187
|
-
if ((
|
|
2188
|
-
let z =
|
|
2186
|
+
let Z = !qn.has(h[v]), un = h[S - 1] !== ">" || !h[x].trim(), hn = !['"', "("].includes(h[R - 1]), ti = ![";", ".", ":", "!"].includes(h[v]);
|
|
2187
|
+
if ((Z || un && hn && ti) && (un || hn) && h[v] !== "!" && (!so.has(a.name) || typeof x == "number" && x < R || typeof S == "number" && S > T + 1)) {
|
|
2188
|
+
let z = I.match(/\n/g);
|
|
2189
2189
|
return Array.isArray(z) && z.length ? z.length === 1 ? `
|
|
2190
2190
|
` : z.length === 2 ? `
|
|
2191
2191
|
|
|
@@ -2196,7 +2196,7 @@ function kr(t, e) {
|
|
|
2196
2196
|
}
|
|
2197
2197
|
return "";
|
|
2198
2198
|
}
|
|
2199
|
-
function
|
|
2199
|
+
function L(h, v) {
|
|
2200
2200
|
if (h.dumpLinkHrefsNearby?.enabled && y.tagName && y.tagName === a.name && a.lastOpeningBracketAt && (y.openingTagEnds && a.lastOpeningBracketAt > y.openingTagEnds || !y.openingTagEnds) && (m = !0), m) {
|
|
2201
2201
|
let x = h.dumpLinkHrefsNearby?.putOnNewLine ? `
|
|
2202
2202
|
|
|
@@ -2217,7 +2217,7 @@ function kr(t, e) {
|
|
|
2217
2217
|
}
|
|
2218
2218
|
if (typeof t != "string") throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_01] Input must be string! Currently it's: ${(typeof t).toLowerCase()}, equal to:
|
|
2219
2219
|
${JSON.stringify(t, null, 4)}`);
|
|
2220
|
-
if (e) if (
|
|
2220
|
+
if (e) if (Pt(e)) {
|
|
2221
2221
|
if (e.reportProgressFunc && typeof e.reportProgressFunc != "function") throw new Error(`string-strip-html/stripHtml(): [THROW_ID_03] The Optional Options Object's key reportProgressFunc, callback function, should be a function but it was given as type ${typeof e.reportProgressFunc}, equal to ${JSON.stringify(e.reportProgressFunc, null, 4)}`);
|
|
2222
2222
|
if (typeof e.dumpLinkHrefsNearby == "boolean" && e.dumpLinkHrefsNearby != null) throw new Error(`string-strip-html/stripHtml(): [THROW_ID_04] The Optional Options Object's key should be a plain object but it was given as type ${typeof e.dumpLinkHrefsNearby}, equal to ${JSON.stringify(e.dumpLinkHrefsNearby, null, 4)}`);
|
|
2223
2223
|
} else throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_02] Optional Options Object must be a plain object! Currently it's: ${(typeof e).toLowerCase()}, equal to:
|
|
@@ -2226,12 +2226,12 @@ ${JSON.stringify(e, null, 4)}`);
|
|
|
2226
2226
|
m && (y = { tagName: "", hrefValue: "", openingTagEnds: void 0 }, m = !1);
|
|
2227
2227
|
}
|
|
2228
2228
|
let b = { ...$n, ...e, dumpLinkHrefsNearby: Object.assign({}, $n.dumpLinkHrefsNearby, e?.dumpLinkHrefsNearby) };
|
|
2229
|
-
if (
|
|
2229
|
+
if (Ii(b, "returnRangesOnly")) throw new TypeError("string-strip-html/stripHtml(): [THROW_ID_05] The Optional Options Object's key returnRangesOnly has been removed from the API since v.5 release.");
|
|
2230
2230
|
if (b.reportProgressFunc) {
|
|
2231
2231
|
if (typeof b.reportProgressFuncFrom != "number") throw new Error(`string-strip-html/stripHtml(): [THROW_ID_06] The Optional Options Object's key reportProgressFuncFrom, callback function's "from" range, should be a number but it was given as type ${typeof b.reportProgressFuncFrom}, equal to ${JSON.stringify(b.reportProgressFuncFrom, null, 4)}`);
|
|
2232
2232
|
if (typeof b.reportProgressFuncTo != "number") throw new Error(`string-strip-html/stripHtml(): [THROW_ID_07] The Optional Options Object's key reportProgressFuncTo, callback function's "to" range, should be a number but it was given as type ${typeof b.reportProgressFuncTo}, equal to ${JSON.stringify(b.reportProgressFuncTo, null, 4)}`);
|
|
2233
2233
|
}
|
|
2234
|
-
b.ignoreTags =
|
|
2234
|
+
b.ignoreTags = Ln(b.ignoreTags, "resolvedOpts.ignoreTags"), b.onlyStripTags = Ln(b.onlyStripTags, "resolvedOpts.onlyStripTags");
|
|
2235
2235
|
let ln = !!b.onlyStripTags.length;
|
|
2236
2236
|
b.onlyStripTags.length && b.ignoreTags.length && (b.onlyStripTags = _a(b.onlyStripTags, ...b.ignoreTags)), b.stripTogetherWithTheirContents ? typeof b.stripTogetherWithTheirContents == "string" && b.stripTogetherWithTheirContents.length && (b.stripTogetherWithTheirContents = [b.stripTogetherWithTheirContents]) : b.stripTogetherWithTheirContents = [];
|
|
2237
2237
|
let ye = {};
|
|
@@ -2239,11 +2239,11 @@ ${JSON.stringify(e, null, 4)}`);
|
|
|
2239
2239
|
b.cb || (b.cb = ({ rangesArr: h, proposedReturn: v }) => {
|
|
2240
2240
|
v && h.push(...v);
|
|
2241
2241
|
});
|
|
2242
|
-
let
|
|
2242
|
+
let O = new to({ limitToBeAddedWhitespace: !0, limitLinebreaksCount: 2 });
|
|
2243
2243
|
if (!b.skipHtmlDecoding) for (; t !== Tn(t, { scope: "strict" }); ) t = Tn(t, { scope: "strict" });
|
|
2244
|
-
let J = !1, H = !1,
|
|
2244
|
+
let J = !1, H = !1, Pe = 0, cn = 0, $ = t.length, ei = Math.floor($ / 2);
|
|
2245
2245
|
for (let h = 0; h < $; h++) {
|
|
2246
|
-
if (b.reportProgressFunc && ($ > 1e3 && $ < 2e3 ? h === ei && b.reportProgressFunc(Math.floor((b.reportProgressFuncTo - b.reportProgressFuncFrom) / 2)) : $ >= 2e3 && (
|
|
2246
|
+
if (b.reportProgressFunc && ($ > 1e3 && $ < 2e3 ? h === ei && b.reportProgressFunc(Math.floor((b.reportProgressFuncTo - b.reportProgressFuncFrom) / 2)) : $ >= 2e3 && (Pe = b.reportProgressFuncFrom + Math.floor(h / $ * (b.reportProgressFuncTo - b.reportProgressFuncFrom)), Pe !== cn && (cn = Pe, b.reportProgressFunc(Pe)))), Object.keys(a).length > 1 && a.lastClosingBracketAt && a.lastClosingBracketAt < h && t[h] !== " " && w === null && (w = h), !J && t[h] === "%" && t[h - 1] === "{" && t.includes("%}", h + 1)) {
|
|
2247
2247
|
u = null;
|
|
2248
2248
|
let v = t.indexOf("%}", h) - 1;
|
|
2249
2249
|
if (v > h) {
|
|
@@ -2254,16 +2254,16 @@ ${JSON.stringify(e, null, 4)}`);
|
|
|
2254
2254
|
if (!J && _(h) && (!a || Object.keys(a).length < 2) && h > 1) {
|
|
2255
2255
|
for (let v = h; v--; ) if (t[v - 1] === void 0 || _(v)) {
|
|
2256
2256
|
let x = t[v - 1] === void 0 ? v : v + 1, S = t.slice(x, h + 1) || "";
|
|
2257
|
-
if ((S.includes("/>") || S.includes("/ >") || S.includes('="') || S.includes("='")) && t !== `<${
|
|
2257
|
+
if ((S.includes("/>") || S.includes("/ >") || S.includes('="') || S.includes("='")) && t !== `<${An(S.trim(), "/>")}>` && [...we].some((R) => An(S.trim().split(/\s+/).filter((T) => T.trim()).filter((T, I) => I === 0), "/>").toLowerCase() === R) && xr(`<${S.trim()}>`, b).result === "") {
|
|
2258
2258
|
(!s.length || s[s.length - 1][0] !== a.lastOpeningBracketAt) && s.push([x, h + 1]), (!o.length || o[o.length - 1][0] !== a.lastOpeningBracketAt) && o.push([x, h + 1]);
|
|
2259
2259
|
let R = N(t, h, x, h + 1, x, h + 1), T = h + 1;
|
|
2260
2260
|
if (t[T] && !t[T].trim()) {
|
|
2261
|
-
for (let
|
|
2262
|
-
T =
|
|
2261
|
+
for (let I = T; I < $; I++) if (t[I].trim()) {
|
|
2262
|
+
T = I;
|
|
2263
2263
|
break;
|
|
2264
2264
|
}
|
|
2265
2265
|
}
|
|
2266
|
-
b.cb({ tag: a, deleteFrom: x, deleteTo: T, insert: R, rangesArr:
|
|
2266
|
+
b.cb({ tag: a, deleteFrom: x, deleteTo: T, insert: R, rangesArr: O, proposedReturn: [x, T, R] });
|
|
2267
2267
|
}
|
|
2268
2268
|
break;
|
|
2269
2269
|
}
|
|
@@ -2283,9 +2283,9 @@ ${JSON.stringify(e, null, 4)}`);
|
|
|
2283
2283
|
continue;
|
|
2284
2284
|
}
|
|
2285
2285
|
if (typeof a.name == "string" && a.name.toLowerCase() === "doctype" && (H = !0), P(h)) {
|
|
2286
|
-
|
|
2286
|
+
L(b);
|
|
2287
2287
|
let v = N(t, h, a.leftOuterWhitespace, h, a.lastOpeningBracketAt, h);
|
|
2288
|
-
(b.stripTogetherWithTheirContents.includes(a.name) || b.stripTogetherWithTheirContents.includes("*")) && (o = o.filter(([x, S]) => !(x === a.leftOuterWhitespace && S === h))), b.cb({ tag: a, deleteFrom: a.leftOuterWhitespace, deleteTo: h, insert: `${v}${p}${v}`, rangesArr:
|
|
2288
|
+
(b.stripTogetherWithTheirContents.includes(a.name) || b.stripTogetherWithTheirContents.includes("*")) && (o = o.filter(([x, S]) => !(x === a.leftOuterWhitespace && S === h))), b.cb({ tag: a, deleteFrom: a.leftOuterWhitespace, deleteTo: h, insert: `${v}${p}${v}`, rangesArr: O, proposedReturn: [a.leftOuterWhitespace, h, `${v}${p}${v}`] }), me(), C(h, b, O);
|
|
2289
2289
|
}
|
|
2290
2290
|
}
|
|
2291
2291
|
if (a.quotes?.start && a.quotes.start < h && !a.quotes.end && f.nameEnds && f.equalsAt && !f.valueStarts && (f.valueStarts = h), !a.quotes && f.nameEnds && t[h] === "=" && !f.valueStarts && !f.equalsAt && (f.equalsAt = h), !a.quotes && f.nameStarts && f.nameEnds && !f.valueStarts && t[h].trim() && t[h] !== "=" && (a.attributes.push(f), f = {}), !a.quotes && f.nameStarts && !f.nameEnds && (H && `'"`.includes(t[f.nameStarts]) ? f.nameStarts < h && t[h] === t[f.nameStarts] && (f.nameEnds = h + 1, f.name = t.slice(f.nameStarts, f.nameEnds)) : t[h].trim() ? t[h] === "=" ? f.equalsAt || (f.nameEnds = h, f.equalsAt = h, f.name = t.slice(f.nameStarts, f.nameEnds)) : t[h] === "/" || _(h) ? (f.nameEnds = h, f.name = t.slice(f.nameStarts, f.nameEnds), a.attributes.push(f), f = {}) : P(h) && (f.nameEnds = h, f.name = t.slice(f.nameStarts, f.nameEnds), a.attributes.push(f), f = {}) : (f.nameEnds = h, f.name = t.slice(f.nameStarts, f.nameEnds))), !a.quotes && a.nameEnds < h && !t[h - 1].trim() && t[h].trim() && !"<>/!".includes(t[h]) && !f.nameStarts && !a.lastClosingBracketAt && (f.nameStarts = h), a.lastOpeningBracketAt !== null && a.lastOpeningBracketAt < h && t[h] === "/" && a.onlyPlausible && (a.onlyPlausible = !1), a.lastOpeningBracketAt !== null && a.lastOpeningBracketAt < h && t[h] !== "/" && (a.onlyPlausible === void 0 && ((!t[h].trim() || P(h)) && !a.slashPresent ? a.onlyPlausible = !0 : a.onlyPlausible = !1), t[h].trim() && a.nameStarts === void 0 && !P(h) && t[h] !== "/" && !_(h) && t[h] !== "!" && (a.nameStarts = h, a.nameContainsLetters = !1)), a.nameStarts && !a.quotes && typeof t[h] == "string" && t[h].toLowerCase() !== t[h].toUpperCase() && (a.nameContainsLetters = !0), _(h) && (Pn(a, t, h) || a.quotes.value && typeof a.lastOpeningBracketAt == "number" && io(a.quotes.value, t.slice(a.lastOpeningBracketAt, h)) % 2 === 1 && !t.slice(a.lastOpeningBracketAt + 1, h).includes("<") && !t.slice(a.lastOpeningBracketAt + 1, h).includes(">")) && a.lastOpeningBracketAt !== void 0 && (a.lastClosingBracketAt = h, w = null, Object.keys(f).length && (a.attributes.push(f), f = {}), b.dumpLinkHrefsNearby?.enabled && y.tagName && !y.openingTagEnds && (y.openingTagEnds = h)), (!H || t[h] === ">") && a.lastOpeningBracketAt !== void 0) {
|
|
@@ -2295,12 +2295,12 @@ ${JSON.stringify(e, null, 4)}`);
|
|
|
2295
2295
|
a = {}, f = {};
|
|
2296
2296
|
continue;
|
|
2297
2297
|
}
|
|
2298
|
-
if ((we.has(a.name) ||
|
|
2299
|
-
|
|
2298
|
+
if ((we.has(a.name) || bt.has(a.name)) && (a.onlyPlausible === !1 || a.onlyPlausible === !0 && a.attributes.length) || t[h + 1] === void 0) {
|
|
2299
|
+
L(b);
|
|
2300
2300
|
let v = N(t, h, a.leftOuterWhitespace, h + 1, a.lastOpeningBracketAt, a.lastClosingBracketAt);
|
|
2301
2301
|
J && a.name === "script" && a.slashPresent && (J = !1);
|
|
2302
2302
|
let x;
|
|
2303
|
-
v === null || p === null ? x = null : x = `${v}${p}${v}`, b.cb({ tag: a, deleteFrom: a.leftOuterWhitespace, deleteTo: h + 1, insert: x, rangesArr:
|
|
2303
|
+
v === null || p === null ? x = null : x = `${v}${p}${v}`, b.cb({ tag: a, deleteFrom: a.leftOuterWhitespace, deleteTo: h + 1, insert: x, rangesArr: O, proposedReturn: [a.leftOuterWhitespace, h + 1, x] }), me(), C(h, b, O);
|
|
2304
2304
|
}
|
|
2305
2305
|
if (!o.length || o[o.length - 1][0] !== a.lastOpeningBracketAt && o[o.length - 1][1] !== h + 1) if (b.stripTogetherWithTheirContents.includes(a.name) || b.stripTogetherWithTheirContents.includes("*")) {
|
|
2306
2306
|
let v;
|
|
@@ -2313,7 +2313,7 @@ ${JSON.stringify(e, null, 4)}`);
|
|
|
2313
2313
|
let v = a.lastClosingBracketAt === h ? h + 1 : h;
|
|
2314
2314
|
b.trimOnlySpaces && v === $ - 1 && w !== null && w < h && (v = w), (!s.length || s[s.length - 1][0] !== a.lastOpeningBracketAt) && s.push([a.lastOpeningBracketAt, a.lastClosingBracketAt + 1]);
|
|
2315
2315
|
let x = b.ignoreTags.includes(a.name), S = pe(h, b, a);
|
|
2316
|
-
if (!E || b.stripRecognisedHTMLOnly && typeof a.name == "string" && !we.has(a.name.toLowerCase()) && !
|
|
2316
|
+
if (!E || b.stripRecognisedHTMLOnly && typeof a.name == "string" && !we.has(a.name.toLowerCase()) && !bt.has(a.name.toLowerCase()) || !ln && (x || S) || ln && !b.onlyStripTags.includes(a.name) || b.ignoreTagsWithTheirContents.includes(a.name)) {
|
|
2317
2317
|
if (S) if (a.slashPresent) {
|
|
2318
2318
|
for (let R = i.length; R--; ) if (i[R].name === a.name) {
|
|
2319
2319
|
i.splice(R, 1);
|
|
@@ -2321,24 +2321,24 @@ ${JSON.stringify(e, null, 4)}`);
|
|
|
2321
2321
|
}
|
|
2322
2322
|
i.length || (E = !0);
|
|
2323
2323
|
} else E && (E = !1), i.push(a);
|
|
2324
|
-
b.cb({ tag: a, deleteFrom: null, deleteTo: null, insert: null, rangesArr:
|
|
2325
|
-
} else if (!a.onlyPlausible || a.attributes.length === 0 && a.name && (we.has(a.name.toLowerCase()) ||
|
|
2324
|
+
b.cb({ tag: a, deleteFrom: null, deleteTo: null, insert: null, rangesArr: O, proposedReturn: null }), a = {}, f = {};
|
|
2325
|
+
} else if (!a.onlyPlausible || a.attributes.length === 0 && a.name && (we.has(a.name.toLowerCase()) || bt.has(a.name.toLowerCase())) || a.attributes?.some((R) => R.equalsAt)) {
|
|
2326
2326
|
(!o.length || o[o.length - 1][0] !== a.lastOpeningBracketAt) && o.push([a.lastOpeningBracketAt, a.lastClosingBracketAt + 1]);
|
|
2327
2327
|
let R = N(t, h, a.leftOuterWhitespace, v, a.lastOpeningBracketAt, a.lastClosingBracketAt);
|
|
2328
|
-
p = "", m = !1,
|
|
2328
|
+
p = "", m = !1, L(b, v);
|
|
2329
2329
|
let T;
|
|
2330
2330
|
typeof p == "string" && p.length ? (T = `${R}${p}${R === `
|
|
2331
2331
|
|
|
2332
2332
|
` ? `
|
|
2333
|
-
` : R}`, v === a.lastClosingBracketAt + 1 && (!t[v] || !
|
|
2334
|
-
let
|
|
2335
|
-
if (m &&
|
|
2333
|
+
` : R}`, v === a.lastClosingBracketAt + 1 && (!t[v] || !vt.has(t[v])) && (T += " "), a.leftOuterWhitespace === a.lastOpeningBracketAt && O.last() && O.last()[1] < a.lastOpeningBracketAt && (!b?.dumpLinkHrefsNearby?.putOnNewLine || !vt.has(t[v])) && (T = " " + T)) : T = R, T !== null && (a.leftOuterWhitespace === 0 || !B(t, v - 1)) && (!b.dumpLinkHrefsNearby?.enabled || a.name !== "a") && (T = void 0);
|
|
2334
|
+
let I = 0;
|
|
2335
|
+
if (m && vt.has(t[v])) {
|
|
2336
2336
|
b.dumpLinkHrefsNearby?.putOnNewLine && (T = `${t[v]}${T || ""}`);
|
|
2337
|
-
let
|
|
2338
|
-
|
|
2339
|
-
`) ?
|
|
2337
|
+
let Z = B(t, v);
|
|
2338
|
+
Z && T?.endsWith(`
|
|
2339
|
+
`) ? I += Z - h : (!Z || Z > h) && I++;
|
|
2340
2340
|
}
|
|
2341
|
-
b.cb({ tag: a, deleteFrom: a.leftOuterWhitespace, deleteTo: v +
|
|
2341
|
+
b.cb({ tag: a, deleteFrom: a.leftOuterWhitespace, deleteTo: v + I, insert: T, rangesArr: O, proposedReturn: [a.leftOuterWhitespace, v + I, T] }), me(), C(h, b, O);
|
|
2342
2342
|
} else a = {};
|
|
2343
2343
|
_(h) || (a = {});
|
|
2344
2344
|
}
|
|
@@ -2348,7 +2348,7 @@ ${JSON.stringify(e, null, 4)}`);
|
|
|
2348
2348
|
if (_(B(t, h))) continue;
|
|
2349
2349
|
if (a.nameEnds && a.nameEnds < h && !a.lastClosingBracketAt && (a.onlyPlausible === !0 && a.attributes?.length || a.onlyPlausible === !1)) {
|
|
2350
2350
|
let v = N(t, h, a.leftOuterWhitespace, h, a.lastOpeningBracketAt, h);
|
|
2351
|
-
b.cb({ tag: a, deleteFrom: a.leftOuterWhitespace, deleteTo: h, insert: v, rangesArr:
|
|
2351
|
+
b.cb({ tag: a, deleteFrom: a.leftOuterWhitespace, deleteTo: h, insert: v, rangesArr: O, proposedReturn: [a.leftOuterWhitespace, h, v] }), C(h, b, O), a = {}, f = {};
|
|
2352
2352
|
}
|
|
2353
2353
|
if (a.lastOpeningBracketAt !== void 0 && a.onlyPlausible && a.name && !a.quotes && (a.lastOpeningBracketAt = void 0, a.name = void 0, a.onlyPlausible = !1), (a.lastOpeningBracketAt === void 0 || !a.onlyPlausible) && !a.quotes && (a.lastOpeningBracketAt = h, a.slashPresent = !1, a.attributes = [], l === null ? a.leftOuterWhitespace = h : b.trimOnlySpaces && l === 0 ? a.leftOuterWhitespace = d || h : a.leftOuterWhitespace = l, `${t[h + 1]}${t[h + 2]}${t[h + 3]}` == "!--" || `${t[h + 1]}${t[h + 2]}${t[h + 3]}${t[h + 4]}${t[h + 5]}${t[h + 6]}${t[h + 7]}${t[h + 8]}` == "![CDATA[")) {
|
|
2354
2354
|
let v = !0;
|
|
@@ -2358,32 +2358,32 @@ ${JSON.stringify(e, null, 4)}`);
|
|
|
2358
2358
|
let R = S;
|
|
2359
2359
|
(t[S + 1] === void 0 && !t[S].trim() || t[S] === ">") && (R += 1), (!s.length || s[s.length - 1][0] !== a.lastOpeningBracketAt) && s.push([a.lastOpeningBracketAt, x + 1]), (!o.length || o[o.length - 1][0] !== a.lastOpeningBracketAt) && o.push([a.lastOpeningBracketAt, x + 1]);
|
|
2360
2360
|
let T = N(t, S, a.leftOuterWhitespace, R, a.lastOpeningBracketAt, x);
|
|
2361
|
-
b.cb({ tag: a, deleteFrom: a.leftOuterWhitespace, deleteTo: R, insert: T, rangesArr:
|
|
2361
|
+
b.cb({ tag: a, deleteFrom: a.leftOuterWhitespace, deleteTo: R, insert: T, rangesArr: O, proposedReturn: [a.leftOuterWhitespace, R, T] }), h = S - 1, t[S] === ">" && (h = S), a = {}, f = {};
|
|
2362
2362
|
break;
|
|
2363
2363
|
}
|
|
2364
2364
|
}
|
|
2365
2365
|
}
|
|
2366
2366
|
!t[h].trim() || t[h].charCodeAt(0) === 847 ? (l === null && (l = h, a.lastOpeningBracketAt !== void 0 && a.lastOpeningBracketAt < h && a.nameStarts && a.nameStarts < a.lastOpeningBracketAt && h === a.lastOpeningBracketAt + 1 && !r.some((v) => v.name === a.name) && (a.onlyPlausible = !0, a.name = void 0, a.nameStarts = void 0)), (t[h] === `
|
|
2367
|
-
` || t[h] === "\r") && (u = h, g && (g = !1))) : (l !== null && (!a.quotes && f.equalsAt > l - 1 && f.nameEnds && f.equalsAt > f.nameEnds && t[h] !== '"' && t[h] !== "'" && (
|
|
2367
|
+
` || t[h] === "\r") && (u = h, g && (g = !1))) : (l !== null && (!a.quotes && f.equalsAt > l - 1 && f.nameEnds && f.equalsAt > f.nameEnds && t[h] !== '"' && t[h] !== "'" && (Pt(f) && a.attributes.push(f), f = {}, a.equalsSpottedAt = void 0), l = null), g || (g = !0, E && !J && typeof u == "number" && h && u < h - 1 && (t.slice(u + 1, h).trim() ? u = null : b.ignoreIndentations || O.push([u + 1, h])))), t[h] === " " ? d === null && (d = h) : d !== null && (d = null), a.name === "script" && (J = !a.slashPresent);
|
|
2368
2368
|
}
|
|
2369
2369
|
if (t && !b.ignoreIndentations && (b.trimOnlySpaces && t[0] === " " || !b.trimOnlySpaces && !t[0].trim())) for (let h = 0; h < $; h++) if (b.trimOnlySpaces && t[h] !== " " || !b.trimOnlySpaces && t[h].trim()) {
|
|
2370
|
-
|
|
2370
|
+
O.push([0, h]);
|
|
2371
2371
|
break;
|
|
2372
|
-
} else t[h + 1] ||
|
|
2372
|
+
} else t[h + 1] || O.push([0, h + 1]);
|
|
2373
2373
|
if (t && (b.trimOnlySpaces && t[~-t.length] === " " || !b.trimOnlySpaces && !t[~-t.length].trim())) {
|
|
2374
2374
|
for (let h = t.length; h--; ) if (b.trimOnlySpaces && t[h] !== " " || !b.trimOnlySpaces && t[h].trim()) {
|
|
2375
|
-
|
|
2375
|
+
O.push([h + 1, $]);
|
|
2376
2376
|
break;
|
|
2377
2377
|
}
|
|
2378
2378
|
}
|
|
2379
|
-
let M =
|
|
2380
|
-
if (!e?.cb && M && (M[0] && !M[0][0] && (M[0][1],
|
|
2381
|
-
let h =
|
|
2379
|
+
let M = O.current();
|
|
2380
|
+
if (!e?.cb && M && (M[0] && !M[0][0] && (M[0][1], O.ranges[0] = [O.ranges[0][0], O.ranges[0][1]]), M[M.length - 1]?.[1] === t.length && (M[M.length - 1][0], O.ranges))) {
|
|
2381
|
+
let h = O.ranges[O.ranges.length - 1][0];
|
|
2382
2382
|
t[h - 1] && (b.trimOnlySpaces && t[h - 1] === " " || !b.trimOnlySpaces && !t[h - 1].trim()) && (h -= 1);
|
|
2383
|
-
let v =
|
|
2384
|
-
|
|
2383
|
+
let v = O.ranges[O.ranges.length - 1][2];
|
|
2384
|
+
O.ranges[O.ranges.length - 1] = [h, O.ranges[O.ranges.length - 1][1]], v?.trim() && O.ranges[O.ranges.length - 1].push(v.trimEnd());
|
|
2385
2385
|
}
|
|
2386
|
-
return { log: { timeTakenInMilliseconds: Date.now() - n }, result: Za(t,
|
|
2386
|
+
return { log: { timeTakenInMilliseconds: Date.now() - n }, result: Za(t, O.current()), ranges: O.current(), allTagLocations: s, filteredTagLocations: o };
|
|
2387
2387
|
}
|
|
2388
2388
|
class Dn {
|
|
2389
2389
|
speechSynthesis;
|
|
@@ -2419,7 +2419,7 @@ class Dn {
|
|
|
2419
2419
|
features;
|
|
2420
2420
|
patches;
|
|
2421
2421
|
constructor() {
|
|
2422
|
-
if (this.features = Ei(), this.patches =
|
|
2422
|
+
if (this.features = Ei(), this.patches = Ai(), !this.features.speechSynthesis || !this.features.speechSynthesisUtterance)
|
|
2423
2423
|
throw new Error("Web Speech API is not available in this environment");
|
|
2424
2424
|
this.speechSynthesis = this.features.speechSynthesis, this.speechSynthesisUtterance = this.features.speechSynthesisUtterance;
|
|
2425
2425
|
}
|
|
@@ -2526,7 +2526,7 @@ class Dn {
|
|
|
2526
2526
|
toPlainText(e) {
|
|
2527
2527
|
return e.map((n) => ({
|
|
2528
2528
|
...n,
|
|
2529
|
-
plain: n.plain ?? (n.ssml ?
|
|
2529
|
+
plain: n.plain ?? (n.ssml ? xr(n.ssml).result : "")
|
|
2530
2530
|
}));
|
|
2531
2531
|
}
|
|
2532
2532
|
// Queue Management
|
|
@@ -2719,7 +2719,7 @@ class Dn {
|
|
|
2719
2719
|
this.stop(), this.stopResumeInfinity(), this.eventListeners.clear(), this.currentUtterances = [], this.currentVoice = null, this.voices = [], this.defaultVoice = null, this.languageVoiceCache.clear(), this.warmingLanguages.clear(), this.initialized = !1;
|
|
2720
2720
|
}
|
|
2721
2721
|
}
|
|
2722
|
-
class
|
|
2722
|
+
class gc {
|
|
2723
2723
|
id = "webspeech";
|
|
2724
2724
|
name = "Web Speech API";
|
|
2725
2725
|
voiceEngine = null;
|
|
@@ -2734,14 +2734,14 @@ class dc {
|
|
|
2734
2734
|
this.voiceEngine && (await this.voiceEngine.destroy(), this.voiceEngine = null);
|
|
2735
2735
|
}
|
|
2736
2736
|
}
|
|
2737
|
-
const
|
|
2738
|
-
function
|
|
2737
|
+
const oe = "\\p{Pe}\\p{Pf}.,;:!?,。、;:!?،؛؟", Dt = "\\p{Ps}\\p{Pi}¿¡", ao = new RegExp(`^[${oe}]`, "u"), oo = new RegExp(`^[${Dt}]`, "u");
|
|
2738
|
+
function ot(t) {
|
|
2739
2739
|
return ao.test(t);
|
|
2740
2740
|
}
|
|
2741
2741
|
function lo(t) {
|
|
2742
2742
|
return oo.test(t);
|
|
2743
2743
|
}
|
|
2744
|
-
function
|
|
2744
|
+
function kr(t, e) {
|
|
2745
2745
|
const n = [];
|
|
2746
2746
|
let r = -1, i = -1;
|
|
2747
2747
|
const s = () => {
|
|
@@ -2762,22 +2762,22 @@ function co(t, e, n) {
|
|
|
2762
2762
|
const r = t[e], i = t[n];
|
|
2763
2763
|
return r === i ? r.text : t.slice(e, n + 1).map((s) => s.text).join("");
|
|
2764
2764
|
}
|
|
2765
|
-
const
|
|
2766
|
-
`[^${
|
|
2765
|
+
const Cr = new RegExp(
|
|
2766
|
+
`[^${oe}]*[${oe}]+\\s*|[^${oe}]+$`,
|
|
2767
2767
|
"gu"
|
|
2768
2768
|
), uo = /\S+\s*|\s+/g;
|
|
2769
|
-
function
|
|
2769
|
+
function Xt(t, e, n) {
|
|
2770
2770
|
const r = [];
|
|
2771
2771
|
for (const i of t.matchAll(n))
|
|
2772
2772
|
i[0].length !== 0 && r.push({ text: i[0], offset: e + i.index, atomic: !1 });
|
|
2773
2773
|
return r;
|
|
2774
2774
|
}
|
|
2775
|
-
function
|
|
2775
|
+
function Zt(t, e) {
|
|
2776
2776
|
if (t.text.length <= e || t.atomic)
|
|
2777
2777
|
return [t];
|
|
2778
|
-
const n =
|
|
2778
|
+
const n = Xt(t.text, t.offset, uo);
|
|
2779
2779
|
if (n.length > 1)
|
|
2780
|
-
return n.flatMap((o) =>
|
|
2780
|
+
return n.flatMap((o) => Zt(o, e));
|
|
2781
2781
|
const r = [];
|
|
2782
2782
|
let i = t.offset, s = "";
|
|
2783
2783
|
for (const o of t.text)
|
|
@@ -2787,8 +2787,8 @@ function Yt(t, e) {
|
|
|
2787
2787
|
function ho(t, e) {
|
|
2788
2788
|
if (t.length <= e)
|
|
2789
2789
|
return [{ text: t, offset: 0 }];
|
|
2790
|
-
const r =
|
|
2791
|
-
return
|
|
2790
|
+
const r = Xt(t, 0, Cr).flatMap((i) => Zt(i, e));
|
|
2791
|
+
return kr(r, e);
|
|
2792
2792
|
}
|
|
2793
2793
|
const go = /<([a-zA-Z][\w-]*)\b[^>]*>[\s\S]*?<\/\1>|<[a-zA-Z][\w-]*\b[^>]*\/>|[^<]+/g;
|
|
2794
2794
|
function fo(t, e) {
|
|
@@ -2796,9 +2796,9 @@ function fo(t, e) {
|
|
|
2796
2796
|
return [{ text: t, offset: 0 }];
|
|
2797
2797
|
const n = [];
|
|
2798
2798
|
for (const i of t.matchAll(go))
|
|
2799
|
-
i[0][0] === "<" ? n.push({ text: i[0], offset: i.index, atomic: !0 }) : n.push(...
|
|
2800
|
-
const r = n.flatMap((i) =>
|
|
2801
|
-
return
|
|
2799
|
+
i[0][0] === "<" ? n.push({ text: i[0], offset: i.index, atomic: !0 }) : n.push(...Xt(i[0], i.index, Cr));
|
|
2800
|
+
const r = n.flatMap((i) => Zt(i, e));
|
|
2801
|
+
return kr(r, e);
|
|
2802
2802
|
}
|
|
2803
2803
|
const po = {
|
|
2804
2804
|
wav: "audio/wav",
|
|
@@ -2834,7 +2834,7 @@ const wo = /* @__PURE__ */ new Set(["wav", "flac"]), So = {
|
|
|
2834
2834
|
function xo(t, e, n) {
|
|
2835
2835
|
return wo.has(t) || !e || !n ? void 0 : n.saveData === !0 || /2g/.test(n.effectiveType ?? "") ? So[t] : void 0;
|
|
2836
2836
|
}
|
|
2837
|
-
function
|
|
2837
|
+
function Er(t) {
|
|
2838
2838
|
return {
|
|
2839
2839
|
source: "server",
|
|
2840
2840
|
label: t.name,
|
|
@@ -2849,7 +2849,7 @@ function Or(t) {
|
|
|
2849
2849
|
controls: t.controls
|
|
2850
2850
|
};
|
|
2851
2851
|
}
|
|
2852
|
-
class
|
|
2852
|
+
class Qe extends Error {
|
|
2853
2853
|
status;
|
|
2854
2854
|
type;
|
|
2855
2855
|
title;
|
|
@@ -2858,11 +2858,11 @@ class Xe extends Error {
|
|
|
2858
2858
|
super(e), this.name = "SpeechServerError", this.status = n.status, this.type = n.type, this.title = n.title, this.instance = n.instance;
|
|
2859
2859
|
}
|
|
2860
2860
|
}
|
|
2861
|
-
async function
|
|
2861
|
+
async function Ge(t) {
|
|
2862
2862
|
if ((t.headers.get("content-type") ?? "").includes("application/problem+json"))
|
|
2863
2863
|
try {
|
|
2864
2864
|
const n = await t.json();
|
|
2865
|
-
return new
|
|
2865
|
+
return new Qe(n.detail || n.title || `Request failed with status ${t.status}`, {
|
|
2866
2866
|
status: n.status ?? t.status,
|
|
2867
2867
|
type: n.type,
|
|
2868
2868
|
title: n.title,
|
|
@@ -2870,7 +2870,7 @@ async function We(t) {
|
|
|
2870
2870
|
});
|
|
2871
2871
|
} catch {
|
|
2872
2872
|
}
|
|
2873
|
-
return new
|
|
2873
|
+
return new Qe(`Request failed with status ${t.status}`, { status: t.status });
|
|
2874
2874
|
}
|
|
2875
2875
|
const ko = 3, Co = 400;
|
|
2876
2876
|
function Eo(t) {
|
|
@@ -2879,16 +2879,16 @@ function Eo(t) {
|
|
|
2879
2879
|
n[r] = e.charCodeAt(r);
|
|
2880
2880
|
return n.buffer;
|
|
2881
2881
|
}
|
|
2882
|
-
function
|
|
2882
|
+
function Ao(t) {
|
|
2883
2883
|
return Math.max(0.25, Math.min(4, t));
|
|
2884
2884
|
}
|
|
2885
|
-
function
|
|
2885
|
+
function De(t) {
|
|
2886
2886
|
return t?.plain ?? t?.ssml ?? void 0;
|
|
2887
2887
|
}
|
|
2888
2888
|
function _n(t) {
|
|
2889
|
-
return t instanceof
|
|
2889
|
+
return t instanceof Qe ? { message: t.message, status: t.status, type: t.type, title: t.title, instance: t.instance } : t instanceof Error ? { message: t.message } : { message: String(t) };
|
|
2890
2890
|
}
|
|
2891
|
-
class
|
|
2891
|
+
class Oo {
|
|
2892
2892
|
endpoints;
|
|
2893
2893
|
fetchImpl;
|
|
2894
2894
|
currentVoice = null;
|
|
@@ -2947,7 +2947,7 @@ class Ao {
|
|
|
2947
2947
|
return -1;
|
|
2948
2948
|
let n = 0;
|
|
2949
2949
|
for (let r = 0; r < this.currentUtterances.length; r++)
|
|
2950
|
-
if (n += (
|
|
2950
|
+
if (n += (De(this.currentUtterances[r]) ?? "").length, n >= e)
|
|
2951
2951
|
return r;
|
|
2952
2952
|
return this.currentUtterances.length - 1;
|
|
2953
2953
|
}
|
|
@@ -2980,9 +2980,9 @@ class Ao {
|
|
|
2980
2980
|
return this.voices;
|
|
2981
2981
|
const e = await this.fetchImpl(this.endpoints.voices);
|
|
2982
2982
|
if (!e.ok)
|
|
2983
|
-
throw await
|
|
2983
|
+
throw await Ge(e);
|
|
2984
2984
|
const n = await e.json();
|
|
2985
|
-
return this.voices = n.map(
|
|
2985
|
+
return this.voices = n.map(Er), this.voices;
|
|
2986
2986
|
}
|
|
2987
2987
|
// Cached after the first successful fetch; a failed fetch isn't cached, so the next
|
|
2988
2988
|
// synthesize() call retries rather than being stuck on a transient network error.
|
|
@@ -2994,7 +2994,7 @@ class Ao {
|
|
|
2994
2994
|
async fetchServiceInfo() {
|
|
2995
2995
|
const e = await this.fetchImpl(this.endpoints.service);
|
|
2996
2996
|
if (!e.ok)
|
|
2997
|
-
throw await
|
|
2997
|
+
throw await Ge(e);
|
|
2998
2998
|
return e.json();
|
|
2999
2999
|
}
|
|
3000
3000
|
setSpeakInContentLanguage(e) {
|
|
@@ -3070,11 +3070,11 @@ class Ao {
|
|
|
3070
3070
|
this.prefetchCache.clear();
|
|
3071
3071
|
}
|
|
3072
3072
|
async synthesizeStream(e) {
|
|
3073
|
-
const n = this.currentUtterances[e], r = !n.plain && !!n.ssml, i = this.speakInContentLanguage ? n.language : void 0, s =
|
|
3073
|
+
const n = this.currentUtterances[e], r = !n.plain && !!n.ssml, i = this.speakInContentLanguage ? n.language : void 0, s = De(n) ?? "", o = De(this.currentUtterances[e - 1]), a = De(this.currentUtterances[e + 1]), c = await this.getServiceInfo(), l = vo(c.output, this.formatOptions, this.canPlayType), d = navigator.connection, u = xo(l, this.formatOptions.adaptBitrateToNetwork ?? !1, d);
|
|
3074
3074
|
if (s.length <= c.limits.maxTextLength)
|
|
3075
3075
|
return [this.synthesizeChunk(n, s, 0, r, i, o, a, l, u)];
|
|
3076
3076
|
if (this.overLengthText === "error")
|
|
3077
|
-
throw new
|
|
3077
|
+
throw new Qe(
|
|
3078
3078
|
`Text exceeds this server's maximum length of ${c.limits.maxTextLength} characters`,
|
|
3079
3079
|
{
|
|
3080
3080
|
status: 413,
|
|
@@ -3109,7 +3109,7 @@ class Ao {
|
|
|
3109
3109
|
})
|
|
3110
3110
|
});
|
|
3111
3111
|
if (!d.ok)
|
|
3112
|
-
throw await
|
|
3112
|
+
throw await Ge(d);
|
|
3113
3113
|
const u = await d.json(), g = Eo(u.audio);
|
|
3114
3114
|
let f;
|
|
3115
3115
|
try {
|
|
@@ -3130,7 +3130,7 @@ class Ao {
|
|
|
3130
3130
|
const r = await e[0];
|
|
3131
3131
|
if (n !== this.speakGeneration)
|
|
3132
3132
|
return;
|
|
3133
|
-
const i = this.ensureAudioContext(), s = this.masterGain, a = this.currentVoice?.controls?.speed === !0 ? 1 :
|
|
3133
|
+
const i = this.ensureAudioContext(), s = this.masterGain, a = this.currentVoice?.controls?.speed === !0 ? 1 : Ao(this.rate);
|
|
3134
3134
|
this.scheduledChunks = [], this.setState("playing"), this.emitEvent({ type: "start" });
|
|
3135
3135
|
let c = i.currentTime, l = null;
|
|
3136
3136
|
const d = (u) => {
|
|
@@ -3276,7 +3276,7 @@ class Ao {
|
|
|
3276
3276
|
this.stop(), await this.audioContext?.close(), this.audioContext = null, this.masterGain = null, this.eventListeners.clear(), this.currentUtterances = [], this.currentVoice = null, this.voices = [];
|
|
3277
3277
|
}
|
|
3278
3278
|
}
|
|
3279
|
-
class
|
|
3279
|
+
class fc {
|
|
3280
3280
|
id = "speech-server";
|
|
3281
3281
|
name = "Readium Speech Server";
|
|
3282
3282
|
options;
|
|
@@ -3290,12 +3290,12 @@ class gc {
|
|
|
3290
3290
|
return this.voices;
|
|
3291
3291
|
const e = await this.fetchImpl(this.options.endpoints.voices);
|
|
3292
3292
|
if (!e.ok)
|
|
3293
|
-
throw await
|
|
3293
|
+
throw await Ge(e);
|
|
3294
3294
|
const n = await e.json();
|
|
3295
|
-
return this.voices = n.map(
|
|
3295
|
+
return this.voices = n.map(Er), this.voices;
|
|
3296
3296
|
}
|
|
3297
3297
|
async createEngine(e) {
|
|
3298
|
-
const n = new
|
|
3298
|
+
const n = new Oo(this.options);
|
|
3299
3299
|
return this.voices.length > 0 && n.setAvailableVoices(this.voices), e && n.setVoice(e), n;
|
|
3300
3300
|
}
|
|
3301
3301
|
async destroy() {
|
|
@@ -3322,16 +3322,16 @@ function Se(t) {
|
|
|
3322
3322
|
function Bn(t, e) {
|
|
3323
3323
|
return t.document.documentElement.style.getPropertyValue(e);
|
|
3324
3324
|
}
|
|
3325
|
-
function
|
|
3325
|
+
function Io(t) {
|
|
3326
3326
|
return t && Array.isArray(t) ? t : void 0;
|
|
3327
3327
|
}
|
|
3328
|
-
function
|
|
3329
|
-
return t && typeof t == "string" ? [t] :
|
|
3328
|
+
function Lo(t) {
|
|
3329
|
+
return t && typeof t == "string" ? [t] : Io(t);
|
|
3330
3330
|
}
|
|
3331
|
-
function
|
|
3331
|
+
function wt(t) {
|
|
3332
3332
|
return isNaN(t) ? void 0 : t;
|
|
3333
3333
|
}
|
|
3334
|
-
function
|
|
3334
|
+
function _e(t) {
|
|
3335
3335
|
return t.otherLocations?.get("cssSelector");
|
|
3336
3336
|
}
|
|
3337
3337
|
let xe = class Ar {
|
|
@@ -3340,27 +3340,27 @@ let xe = class Ar {
|
|
|
3340
3340
|
}
|
|
3341
3341
|
static deserialize(e) {
|
|
3342
3342
|
if (!e) return;
|
|
3343
|
-
const n =
|
|
3343
|
+
const n = wt(e.progression), r = wt(e.totalProgression), i = wt(e.position), s = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Set(["fragment", "fragments", "progression", "totalProgression", "position", "otherLocations"]);
|
|
3344
3344
|
return Object.entries(e).forEach(([a, c]) => {
|
|
3345
3345
|
o.has(a) || s.set(a, c);
|
|
3346
|
-
}), e.otherLocations instanceof Map && e.otherLocations.forEach((a, c) => s.set(c, a)), new Ar({ fragments:
|
|
3346
|
+
}), e.otherLocations instanceof Map && e.otherLocations.forEach((a, c) => s.set(c, a)), new Ar({ fragments: Lo(e.fragments || e.fragment), progression: n !== void 0 && n >= 0 && n <= 1 ? n : void 0, totalProgression: r !== void 0 && r >= 0 && r <= 1 ? r : void 0, position: i !== void 0 && i > 0 ? i : void 0, otherLocations: s.size === 0 ? void 0 : s });
|
|
3347
3347
|
}
|
|
3348
3348
|
serialize() {
|
|
3349
3349
|
const e = {};
|
|
3350
3350
|
return this.fragments && (e.fragments = this.fragments), this.progression !== void 0 && (e.progression = this.progression), this.totalProgression !== void 0 && (e.totalProgression = this.totalProgression), this.position !== void 0 && (e.position = this.position), this.otherLocations && this.otherLocations.forEach((n, r) => e[r] = n), e;
|
|
3351
3351
|
}
|
|
3352
|
-
}, Po = class
|
|
3352
|
+
}, Po = class Or {
|
|
3353
3353
|
constructor(e) {
|
|
3354
3354
|
this.after = e.after, this.before = e.before, this.highlight = e.highlight;
|
|
3355
3355
|
}
|
|
3356
3356
|
static deserialize(e) {
|
|
3357
|
-
if (e) return new
|
|
3357
|
+
if (e) return new Or({ after: e.after, before: e.before, highlight: e.highlight });
|
|
3358
3358
|
}
|
|
3359
3359
|
serialize() {
|
|
3360
3360
|
const e = {};
|
|
3361
3361
|
return this.after !== void 0 && (e.after = this.after), this.before !== void 0 && (e.before = this.before), this.highlight !== void 0 && (e.highlight = this.highlight), e;
|
|
3362
3362
|
}
|
|
3363
|
-
}, qo = class
|
|
3363
|
+
}, qo = class _t {
|
|
3364
3364
|
constructor(e) {
|
|
3365
3365
|
const n = e.href.indexOf("#"), r = n >= 0 ? e.href.slice(n + 1) : void 0;
|
|
3366
3366
|
this.href = n >= 0 ? e.href.slice(0, n) : e.href, this.type = e.type, this.title = e.title;
|
|
@@ -3368,14 +3368,14 @@ let xe = class Ar {
|
|
|
3368
3368
|
this.locations = e.locations ? s ? new xe({ ...e.locations, fragments: [r] }) : e.locations : r ? new xe({ fragments: [r] }) : new xe({}), this.text = e.text;
|
|
3369
3369
|
}
|
|
3370
3370
|
static deserialize(e) {
|
|
3371
|
-
if (e && e.href && e.type) return new
|
|
3371
|
+
if (e && e.href && e.type) return new _t({ href: e.href, type: e.type, title: e.title, locations: xe.deserialize(e.locations), text: Po.deserialize(e.text) });
|
|
3372
3372
|
}
|
|
3373
3373
|
serialize() {
|
|
3374
3374
|
const e = { href: this.href, type: this.type };
|
|
3375
3375
|
return this.title !== void 0 && (e.title = this.title), this.locations && (e.locations = this.locations.serialize()), this.text && (e.text = this.text.serialize()), e;
|
|
3376
3376
|
}
|
|
3377
3377
|
copyWithLocations(e) {
|
|
3378
|
-
return new
|
|
3378
|
+
return new _t({ href: this.href, type: this.type, title: this.title, text: this.text, locations: new xe({ ...this.locations, ...e }) });
|
|
3379
3379
|
}
|
|
3380
3380
|
};
|
|
3381
3381
|
function Un(t) {
|
|
@@ -3385,20 +3385,20 @@ function $o(t, e, n) {
|
|
|
3385
3385
|
const r = Un(e);
|
|
3386
3386
|
return n.map((i) => {
|
|
3387
3387
|
const s = Math.max(0, i.end - e.length - i.errors), o = Un(t.slice(s, i.end));
|
|
3388
|
-
return { start:
|
|
3388
|
+
return { start: Tr(o, r, i.errors).reduce((a, c) => i.end - c.end < a ? i.end - c.end : a, i.end), end: i.end, errors: i.errors };
|
|
3389
3389
|
});
|
|
3390
3390
|
}
|
|
3391
|
-
function
|
|
3391
|
+
function St(t) {
|
|
3392
3392
|
return (t | -t) >> 31 & 1;
|
|
3393
3393
|
}
|
|
3394
3394
|
function zn(t, e, n, r) {
|
|
3395
3395
|
let i = t.P[n], s = t.M[n];
|
|
3396
3396
|
const o = r >>> 31, a = e[n] | o, c = a | s, l = (a & i) + i ^ i | a;
|
|
3397
3397
|
let d = s | ~(l | i), u = i & l;
|
|
3398
|
-
const g =
|
|
3399
|
-
return d <<= 1, u <<= 1, u |= o, d |=
|
|
3398
|
+
const g = St(d & t.lastRowMask[n]) - St(u & t.lastRowMask[n]);
|
|
3399
|
+
return d <<= 1, u <<= 1, u |= o, d |= St(r) - o, i = u | ~(c | d), s = d & c, t.P[n] = i, t.M[n] = s, g;
|
|
3400
3400
|
}
|
|
3401
|
-
function
|
|
3401
|
+
function Tr(t, e, n) {
|
|
3402
3402
|
if (e.length === 0) return [];
|
|
3403
3403
|
n = Math.min(n, e.length);
|
|
3404
3404
|
const r = [], i = 32, s = Math.ceil(e.length / i) - 1, o = { P: new Uint32Array(s + 1), M: new Uint32Array(s + 1), lastRowMask: new Uint32Array(s + 1) };
|
|
@@ -3443,21 +3443,21 @@ function Rr(t, e, n) {
|
|
|
3443
3443
|
return r;
|
|
3444
3444
|
}
|
|
3445
3445
|
function Do(t, e, n) {
|
|
3446
|
-
const r =
|
|
3446
|
+
const r = Tr(t, e, n);
|
|
3447
3447
|
return $o(t, e, r);
|
|
3448
3448
|
}
|
|
3449
|
-
function
|
|
3449
|
+
function Rr(t, e, n) {
|
|
3450
3450
|
let r = 0;
|
|
3451
3451
|
const i = [];
|
|
3452
3452
|
for (; r !== -1; ) r = t.indexOf(e, r), r !== -1 && (i.push({ start: r, end: r + e.length, errors: 0 }), r += 1);
|
|
3453
3453
|
return i.length > 0 ? i : Do(t, e, n);
|
|
3454
3454
|
}
|
|
3455
3455
|
function jn(t, e) {
|
|
3456
|
-
return e.length === 0 || t.length === 0 ? 0 : 1 -
|
|
3456
|
+
return e.length === 0 || t.length === 0 ? 0 : 1 - Rr(t, e, e.length)[0].errors / e.length;
|
|
3457
3457
|
}
|
|
3458
3458
|
function _o(t, e, n = {}) {
|
|
3459
3459
|
if (e.length === 0) return null;
|
|
3460
|
-
const r = Math.min(256, e.length / 2), i =
|
|
3460
|
+
const r = Math.min(256, e.length / 2), i = Rr(t, e, r);
|
|
3461
3461
|
if (i.length === 0) return null;
|
|
3462
3462
|
const s = (a) => {
|
|
3463
3463
|
const c = 1 - a.errors / e.length, l = n.prefix ? jn(t.slice(Math.max(0, a.start - n.prefix.length), a.start), n.prefix) : 1, d = n.suffix ? jn(t.slice(a.end, a.end + n.suffix.length), n.suffix) : 1;
|
|
@@ -3466,7 +3466,7 @@ function _o(t, e, n = {}) {
|
|
|
3466
3466
|
}, o = i.map((a) => ({ start: a.start, end: a.end, score: s(a) }));
|
|
3467
3467
|
return o.sort((a, c) => c.score - a.score), o[0];
|
|
3468
3468
|
}
|
|
3469
|
-
function
|
|
3469
|
+
function Bt(t, e, n) {
|
|
3470
3470
|
const r = n === 1 ? e : e - 1;
|
|
3471
3471
|
if (t.charAt(r).trim() !== "") return e;
|
|
3472
3472
|
let i, s;
|
|
@@ -3483,7 +3483,7 @@ function Vn(t, e) {
|
|
|
3483
3483
|
const a = () => {
|
|
3484
3484
|
if (s = e === 1 ? n.nextNode() : n.previousNode(), s) {
|
|
3485
3485
|
const c = s.textContent, l = e === 1 ? 0 : c.length;
|
|
3486
|
-
o =
|
|
3486
|
+
o = Bt(c, l, e);
|
|
3487
3487
|
}
|
|
3488
3488
|
};
|
|
3489
3489
|
for (; s && o === -1 && s !== i; ) a();
|
|
@@ -3496,7 +3496,7 @@ function Bo(t) {
|
|
|
3496
3496
|
if (t.endContainer.nodeType !== Node.TEXT_NODE) throw new RangeError("Range endContainer is not a text node");
|
|
3497
3497
|
const e = t.cloneRange();
|
|
3498
3498
|
let n = !1, r = !1;
|
|
3499
|
-
const i = { start:
|
|
3499
|
+
const i = { start: Bt(t.startContainer.textContent, t.startOffset, 1), end: Bt(t.endContainer.textContent, t.endOffset, 2) };
|
|
3500
3500
|
if (i.start >= 0 && (e.setStart(t.startContainer, i.start), n = !0), i.end > 0 && (e.setEnd(t.endContainer, i.end), r = !0), n && r) return e;
|
|
3501
3501
|
if (!n) {
|
|
3502
3502
|
const { node: s, offset: o } = Vn(e, 1);
|
|
@@ -3508,7 +3508,7 @@ function Bo(t) {
|
|
|
3508
3508
|
}
|
|
3509
3509
|
return e;
|
|
3510
3510
|
}
|
|
3511
|
-
function
|
|
3511
|
+
function Nr(t) {
|
|
3512
3512
|
switch (t.nodeType) {
|
|
3513
3513
|
case Node.ELEMENT_NODE:
|
|
3514
3514
|
case Node.TEXT_NODE:
|
|
@@ -3519,7 +3519,7 @@ function Lr(t) {
|
|
|
3519
3519
|
}
|
|
3520
3520
|
function Fn(t) {
|
|
3521
3521
|
let e = t.previousSibling, n = 0;
|
|
3522
|
-
for (; e; ) n +=
|
|
3522
|
+
for (; e; ) n += Nr(e), e = e.previousSibling;
|
|
3523
3523
|
return n;
|
|
3524
3524
|
}
|
|
3525
3525
|
function Ir(t, ...e) {
|
|
@@ -3531,7 +3531,7 @@ function Ir(t, ...e) {
|
|
|
3531
3531
|
if (n !== void 0) throw new RangeError("Offset exceeds text length");
|
|
3532
3532
|
return i;
|
|
3533
3533
|
}
|
|
3534
|
-
let
|
|
3534
|
+
let Be = class re {
|
|
3535
3535
|
constructor(e, n) {
|
|
3536
3536
|
if (n < 0) throw new Error("Offset is invalid");
|
|
3537
3537
|
this.element = e, this.offset = n;
|
|
@@ -3540,7 +3540,7 @@ let Ue = class ie {
|
|
|
3540
3540
|
if (!e.contains(this.element)) throw new Error("Parent is not an ancestor of current element");
|
|
3541
3541
|
let n = this.element, r = this.offset;
|
|
3542
3542
|
for (; n !== e; ) r += Fn(n), n = n.parentElement;
|
|
3543
|
-
return new
|
|
3543
|
+
return new re(n, r);
|
|
3544
3544
|
}
|
|
3545
3545
|
resolve(e = {}) {
|
|
3546
3546
|
try {
|
|
@@ -3558,9 +3558,9 @@ let Ue = class ie {
|
|
|
3558
3558
|
static fromCharOffset(e, n) {
|
|
3559
3559
|
switch (e.nodeType) {
|
|
3560
3560
|
case Node.TEXT_NODE:
|
|
3561
|
-
return
|
|
3561
|
+
return re.fromPoint(e, n);
|
|
3562
3562
|
case Node.ELEMENT_NODE:
|
|
3563
|
-
return new
|
|
3563
|
+
return new re(e, n);
|
|
3564
3564
|
default:
|
|
3565
3565
|
throw new Error("Node is not an element or text node");
|
|
3566
3566
|
}
|
|
@@ -3571,19 +3571,19 @@ let Ue = class ie {
|
|
|
3571
3571
|
if (n < 0 || n > e.data.length) throw new Error("Text node offset is out of range");
|
|
3572
3572
|
if (!e.parentElement) throw new Error("Text node has no parent");
|
|
3573
3573
|
const r = Fn(e) + n;
|
|
3574
|
-
return new
|
|
3574
|
+
return new re(e.parentElement, r);
|
|
3575
3575
|
}
|
|
3576
3576
|
case Node.ELEMENT_NODE: {
|
|
3577
3577
|
if (n < 0 || n > e.childNodes.length) throw new Error("Child node offset is out of range");
|
|
3578
3578
|
let r = 0;
|
|
3579
|
-
for (let i = 0; i < n; i++) r +=
|
|
3580
|
-
return new
|
|
3579
|
+
for (let i = 0; i < n; i++) r += Nr(e.childNodes[i]);
|
|
3580
|
+
return new re(e, r);
|
|
3581
3581
|
}
|
|
3582
3582
|
default:
|
|
3583
3583
|
throw new Error("Point is not in an element or text node");
|
|
3584
3584
|
}
|
|
3585
3585
|
}
|
|
3586
|
-
},
|
|
3586
|
+
}, Ut = class Ce {
|
|
3587
3587
|
constructor(e, n) {
|
|
3588
3588
|
this.start = e, this.end = n;
|
|
3589
3589
|
}
|
|
@@ -3597,43 +3597,43 @@ let Ue = class ie {
|
|
|
3597
3597
|
return r.setStart(e.node, e.offset), r.setEnd(n.node, n.offset), r;
|
|
3598
3598
|
}
|
|
3599
3599
|
static fromRange(e) {
|
|
3600
|
-
const n =
|
|
3600
|
+
const n = Be.fromPoint(e.startContainer, e.startOffset), r = Be.fromPoint(e.endContainer, e.endOffset);
|
|
3601
3601
|
return new Ce(n, r);
|
|
3602
3602
|
}
|
|
3603
3603
|
static fromOffsets(e, n, r) {
|
|
3604
|
-
return new Ce(new
|
|
3604
|
+
return new Ce(new Be(e, n), new Be(e, r));
|
|
3605
3605
|
}
|
|
3606
3606
|
static trimmedRange(e) {
|
|
3607
3607
|
return Bo(Ce.fromRange(e).toRange());
|
|
3608
3608
|
}
|
|
3609
|
-
}, Uo = class
|
|
3609
|
+
}, Uo = class zt {
|
|
3610
3610
|
constructor(e, n, r) {
|
|
3611
3611
|
this.root = e, this.start = n, this.end = r;
|
|
3612
3612
|
}
|
|
3613
3613
|
static fromRange(e, n) {
|
|
3614
|
-
const r =
|
|
3615
|
-
return new
|
|
3614
|
+
const r = Ut.fromRange(n).relativeTo(e);
|
|
3615
|
+
return new zt(e, r.start.offset, r.end.offset);
|
|
3616
3616
|
}
|
|
3617
3617
|
static fromSelector(e, n) {
|
|
3618
|
-
return new
|
|
3618
|
+
return new zt(e, n.start, n.end);
|
|
3619
3619
|
}
|
|
3620
3620
|
toSelector() {
|
|
3621
3621
|
return { type: "TextPositionSelector", start: this.start, end: this.end };
|
|
3622
3622
|
}
|
|
3623
3623
|
toRange() {
|
|
3624
|
-
return
|
|
3624
|
+
return Ut.fromOffsets(this.root, this.start, this.end).toRange();
|
|
3625
3625
|
}
|
|
3626
|
-
}, zo = class
|
|
3626
|
+
}, zo = class jt {
|
|
3627
3627
|
constructor(e, n, r = {}) {
|
|
3628
3628
|
this.root = e, this.exact = n, this.context = r;
|
|
3629
3629
|
}
|
|
3630
3630
|
static fromRange(e, n) {
|
|
3631
|
-
const r = e.textContent, i =
|
|
3632
|
-
return new
|
|
3631
|
+
const r = e.textContent, i = Ut.fromRange(n).relativeTo(e), s = i.start.offset, o = i.end.offset, a = 32;
|
|
3632
|
+
return new jt(e, r.slice(s, o), { prefix: r.slice(Math.max(0, s - a), s), suffix: r.slice(o, Math.min(r.length, o + a)) });
|
|
3633
3633
|
}
|
|
3634
3634
|
static fromSelector(e, n) {
|
|
3635
3635
|
const { prefix: r, suffix: i } = n;
|
|
3636
|
-
return new
|
|
3636
|
+
return new jt(e, n.exact, { prefix: r, suffix: i });
|
|
3637
3637
|
}
|
|
3638
3638
|
toSelector() {
|
|
3639
3639
|
return { type: "TextQuoteSelector", exact: this.exact, prefix: this.context.prefix, suffix: this.context.suffix };
|
|
@@ -3656,7 +3656,7 @@ function Vo(t, e) {
|
|
|
3656
3656
|
const n = e.locations, r = e.text;
|
|
3657
3657
|
if (r && r.highlight) {
|
|
3658
3658
|
let i;
|
|
3659
|
-
n &&
|
|
3659
|
+
n && _e(n) && (i = t.querySelector(_e(n))), i || (i = t.body);
|
|
3660
3660
|
const s = new zo(i, r.highlight, { prefix: r.before, suffix: r.after });
|
|
3661
3661
|
try {
|
|
3662
3662
|
return s.toRange();
|
|
@@ -3666,7 +3666,7 @@ function Vo(t, e) {
|
|
|
3666
3666
|
}
|
|
3667
3667
|
if (n) {
|
|
3668
3668
|
let i = null;
|
|
3669
|
-
if (!i &&
|
|
3669
|
+
if (!i && _e(n) && (i = t.querySelector(_e(n))), !i && n.fragments) {
|
|
3670
3670
|
for (const s of n.fragments) if (i = t.getElementById(s), i) break;
|
|
3671
3671
|
}
|
|
3672
3672
|
if (i) {
|
|
@@ -3702,7 +3702,7 @@ function Fo(t, e) {
|
|
|
3702
3702
|
}
|
|
3703
3703
|
return r;
|
|
3704
3704
|
}
|
|
3705
|
-
function
|
|
3705
|
+
function Ue(t, e, n = !1, r = 0) {
|
|
3706
3706
|
let i;
|
|
3707
3707
|
if (Array.isArray(t)) i = t;
|
|
3708
3708
|
else {
|
|
@@ -3711,7 +3711,7 @@ function ze(t, e, n = !1, r = 0) {
|
|
|
3711
3711
|
for (const d of l) i.push({ bottom: d.bottom, height: d.height, left: d.left, right: d.right, top: d.top, width: d.width });
|
|
3712
3712
|
}
|
|
3713
3713
|
if (r) for (const l of i) l.left -= r, l.top -= r, l.right += r, l.bottom += r, l.width += r * 2, l.height += r * 2;
|
|
3714
|
-
const s =
|
|
3714
|
+
const s = Lr(i, 1, e, n), o = Mo(s, 1), a = Pr(o), c = 4;
|
|
3715
3715
|
for (let l = a.length - 1; l >= 0; l--) {
|
|
3716
3716
|
const d = a[l];
|
|
3717
3717
|
if (!(d.width * d.height > c)) if (a.length > 1) a.splice(l, 1);
|
|
@@ -3719,14 +3719,14 @@ function ze(t, e, n = !1, r = 0) {
|
|
|
3719
3719
|
}
|
|
3720
3720
|
return a;
|
|
3721
3721
|
}
|
|
3722
|
-
function
|
|
3722
|
+
function Lr(t, e, n, r = !1) {
|
|
3723
3723
|
for (let i = 0; i < t.length; i++) for (let s = i + 1; s < t.length; s++) {
|
|
3724
3724
|
const o = t[i], a = t[s];
|
|
3725
3725
|
if (o === a) continue;
|
|
3726
3726
|
const c = q(o.top, a.top, e) && q(o.bottom, a.bottom, e), l = q(o.left, a.left, e) && q(o.right, a.right, e);
|
|
3727
|
-
if ((l && !n && !r || c && !l) &&
|
|
3727
|
+
if ((l && !n && !r || c && !l) && qr(o, a, e)) {
|
|
3728
3728
|
const d = t.filter((g) => g !== o && g !== a), u = Ho(o, a);
|
|
3729
|
-
return d.push(u),
|
|
3729
|
+
return d.push(u), Lr(d, e, n, r);
|
|
3730
3730
|
}
|
|
3731
3731
|
}
|
|
3732
3732
|
return t;
|
|
@@ -3755,10 +3755,10 @@ function Go(t, e, n) {
|
|
|
3755
3755
|
function K(t, e, n, r) {
|
|
3756
3756
|
return (t.left < e || q(t.left, e, r)) && (t.right > e || q(t.right, e, r)) && (t.top < n || q(t.top, n, r)) && (t.bottom > n || q(t.bottom, n, r));
|
|
3757
3757
|
}
|
|
3758
|
-
function
|
|
3758
|
+
function Pr(t) {
|
|
3759
3759
|
for (let e = 0; e < t.length; e++) for (let n = e + 1; n < t.length; n++) {
|
|
3760
3760
|
const r = t[e], i = t[n];
|
|
3761
|
-
if (r !== i &&
|
|
3761
|
+
if (r !== i && qr(r, i, -1)) {
|
|
3762
3762
|
let s = [], o;
|
|
3763
3763
|
const a = Hn(r, i);
|
|
3764
3764
|
if (a.length === 1) s = a, o = r;
|
|
@@ -3767,7 +3767,7 @@ function qr(t) {
|
|
|
3767
3767
|
a.length < l.length ? (s = a, o = r) : (s = l, o = i);
|
|
3768
3768
|
}
|
|
3769
3769
|
const c = t.filter((l) => l !== o);
|
|
3770
|
-
return Array.prototype.push.apply(c, s),
|
|
3770
|
+
return Array.prototype.push.apply(c, s), Pr(c);
|
|
3771
3771
|
}
|
|
3772
3772
|
}
|
|
3773
3773
|
return t;
|
|
@@ -3798,32 +3798,32 @@ function Wo(t, e) {
|
|
|
3798
3798
|
const n = Math.max(t.left, e.left), r = Math.min(t.right, e.right), i = Math.max(t.top, e.top), s = Math.min(t.bottom, e.bottom);
|
|
3799
3799
|
return { bottom: s, height: Math.max(0, s - i), left: n, right: r, top: i, width: Math.max(0, r - n) };
|
|
3800
3800
|
}
|
|
3801
|
-
function
|
|
3801
|
+
function qr(t, e, n) {
|
|
3802
3802
|
return (t.left < e.right || n >= 0 && q(t.left, e.right, n)) && (e.left < t.right || n >= 0 && q(e.left, t.right, n)) && (t.top < e.bottom || n >= 0 && q(t.top, e.bottom, n)) && (e.top < t.bottom || n >= 0 && q(e.top, t.bottom, n));
|
|
3803
3803
|
}
|
|
3804
3804
|
function q(t, e, n) {
|
|
3805
3805
|
return Math.abs(t - e) <= n;
|
|
3806
3806
|
}
|
|
3807
|
-
let
|
|
3808
|
-
const
|
|
3809
|
-
if (!
|
|
3807
|
+
let ze = null, xt = null, ke = 0;
|
|
3808
|
+
const ie = { r: 255, g: 255, b: 255, a: 1 }, ee = /* @__PURE__ */ new Map(), Ko = () => {
|
|
3809
|
+
if (!ze) if (typeof OffscreenCanvas < "u") ze = new OffscreenCanvas(5, 5), xt = ze.getContext("2d", { willReadFrequently: !0, desynchronized: !0 });
|
|
3810
3810
|
else {
|
|
3811
3811
|
const t = document.createElement("canvas");
|
|
3812
|
-
t.width = 5, t.height = 5,
|
|
3812
|
+
t.width = 5, t.height = 5, ze = t, xt = t.getContext("2d", { willReadFrequently: !0, desynchronized: !0 });
|
|
3813
3813
|
}
|
|
3814
|
-
return
|
|
3814
|
+
return xt;
|
|
3815
3815
|
}, Jo = (t) => {
|
|
3816
3816
|
if (!t) return !0;
|
|
3817
3817
|
const e = t.trim().toLowerCase();
|
|
3818
3818
|
return e.startsWith("var(") || ["transparent", "currentcolor", "inherit", "initial", "revert", "unset", "revert-layer"].includes(e) ? !0 : ["linear-gradient", "radial-gradient", "conic-gradient", "repeating-linear-gradient", "repeating-radial-gradient", "repeating-conic-gradient"].some((n) => e.includes(n));
|
|
3819
|
-
},
|
|
3820
|
-
console.warn(`[Decorator] Could not parse color: "${t}". ${e} Falling back to ${JSON.stringify(
|
|
3821
|
-
},
|
|
3822
|
-
const n = e ? `${t}|${e}` : t, r =
|
|
3823
|
-
if (r !== void 0) return r ??
|
|
3824
|
-
if (Jo(t)) return
|
|
3819
|
+
}, je = (t, e) => {
|
|
3820
|
+
console.warn(`[Decorator] Could not parse color: "${t}". ${e} Falling back to ${JSON.stringify(ie)} to compute contrast. Please use a CSS color value that can be computed to RGB(A).`);
|
|
3821
|
+
}, X = (t, e = null) => {
|
|
3822
|
+
const n = e ? `${t}|${e}` : t, r = ee.get(n);
|
|
3823
|
+
if (r !== void 0) return r ?? ie;
|
|
3824
|
+
if (Jo(t)) return je(t, "Unsupported color format or special value."), ee.set(n, null), ie;
|
|
3825
3825
|
const i = Ko();
|
|
3826
|
-
if (!i) return
|
|
3826
|
+
if (!i) return je(t, "Could not get canvas context."), ee.set(n, null), ie;
|
|
3827
3827
|
try {
|
|
3828
3828
|
ke === 0 && i.clearRect(0, 0, 5, 5);
|
|
3829
3829
|
const s = ke % 5, o = Math.floor(ke / 5);
|
|
@@ -3831,40 +3831,40 @@ const se = { r: 255, g: 255, b: 255, a: 1 }, te = /* @__PURE__ */ new Map(), Ko
|
|
|
3831
3831
|
const a = i.getImageData(s, o, 1, 1);
|
|
3832
3832
|
ke = (ke + 1) % 25;
|
|
3833
3833
|
const [c, l, d, u] = a.data;
|
|
3834
|
-
if (u === 0) return
|
|
3834
|
+
if (u === 0) return je(t, "Fully transparent color."), ee.set(n, null), ie;
|
|
3835
3835
|
const g = { r: c, g: l, b: d, a: u / 255 };
|
|
3836
|
-
return
|
|
3836
|
+
return ee.set(n, g), g;
|
|
3837
3837
|
} catch (s) {
|
|
3838
|
-
return
|
|
3838
|
+
return je(t, `Error: ${s instanceof Error ? s.message : String(s)}`), ee.set(n, null), ie;
|
|
3839
3839
|
}
|
|
3840
|
-
},
|
|
3840
|
+
}, kt = (t) => {
|
|
3841
3841
|
const e = t / 255;
|
|
3842
3842
|
return e <= 0.03928 ? e / 12.92 : Math.pow((e + 0.055) / 1.055, 2.4);
|
|
3843
|
-
},
|
|
3844
|
-
const e =
|
|
3843
|
+
}, Vt = (t) => {
|
|
3844
|
+
const e = kt(t.r), n = kt(t.g), r = kt(t.b);
|
|
3845
3845
|
return 0.2126 * e + 0.7152 * n + 0.0722 * r;
|
|
3846
|
-
},
|
|
3847
|
-
const n = typeof t == "string" ?
|
|
3846
|
+
}, Xe = (t, e) => {
|
|
3847
|
+
const n = typeof t == "string" ? X(t) : t, r = typeof e == "string" ? X(e) : e, i = Vt(n), s = Vt(r), o = Math.max(i, s), a = Math.min(i, s);
|
|
3848
3848
|
return (o + 0.05) / (a + 0.05);
|
|
3849
|
-
},
|
|
3850
|
-
const n =
|
|
3849
|
+
}, $r = (t, e = null) => {
|
|
3850
|
+
const n = X(t, e), r = Xe(n, { r: 255, g: 255, b: 255, a: 1 }), i = Xe(n, { r: 0, g: 0, b: 0, a: 1 });
|
|
3851
3851
|
return r > i;
|
|
3852
|
-
}, Mn = (t, e = null) =>
|
|
3852
|
+
}, Mn = (t, e = null) => $r(t, e) ? "white" : "black", Qo = (t) => {
|
|
3853
3853
|
const e = t.a !== void 0 ? t.a : 1;
|
|
3854
3854
|
return `rgba(${Math.round(t.r)}, ${Math.round(t.g)}, ${Math.round(t.b)}, ${e})`;
|
|
3855
|
-
}, Xo = (t, e) => ({ r: Math.min(255, t.r + (255 - t.r) * e), g: Math.min(255, t.g + (255 - t.g) * e), b: Math.min(255, t.b + (255 - t.b) * e), a: t.a ?? 1 }), Zo = (t, e) => ({ r: Math.max(0, t.r * (1 - e)), g: Math.max(0, t.g * (1 - e)), b: Math.max(0, t.b * (1 - e)), a: t.a ?? 1 }),
|
|
3856
|
-
const r =
|
|
3857
|
-
let s =
|
|
3855
|
+
}, Xo = (t, e) => ({ r: Math.min(255, t.r + (255 - t.r) * e), g: Math.min(255, t.g + (255 - t.g) * e), b: Math.min(255, t.b + (255 - t.b) * e), a: t.a ?? 1 }), Zo = (t, e) => ({ r: Math.max(0, t.r * (1 - e)), g: Math.max(0, t.g * (1 - e)), b: Math.max(0, t.b * (1 - e)), a: t.a ?? 1 }), te = (t, e = null, n = 3) => {
|
|
3856
|
+
const r = X(t), i = e ? X(e) : { r: 255, g: 255, b: 255, a: 1 };
|
|
3857
|
+
let s = Xe(r, i);
|
|
3858
3858
|
if (s >= n) return t;
|
|
3859
|
-
const o =
|
|
3859
|
+
const o = Vt(i) < 0.5;
|
|
3860
3860
|
let a = { ...r, a: r.a ?? 1 };
|
|
3861
3861
|
const c = 20, l = 0.1;
|
|
3862
|
-
for (let d = 0; d < c && (o ? a = Xo(a, l) : a = Zo(a, l), s =
|
|
3862
|
+
for (let d = 0; d < c && (o ? a = Xo(a, l) : a = Zo(a, l), s = Xe(a, i), !(s >= n)); d++) ;
|
|
3863
3863
|
return Qo(a);
|
|
3864
|
-
},
|
|
3865
|
-
let
|
|
3864
|
+
}, Dr = () => typeof navigator > "u" ? "" : navigator.userAgent || "", _r = () => typeof navigator > "u" ? void 0 : navigator.userAgentData || void 0;
|
|
3865
|
+
let Br = class {
|
|
3866
3866
|
constructor() {
|
|
3867
|
-
const e =
|
|
3867
|
+
const e = _r(), n = Dr(), r = (s) => (typeof s == "string" || typeof s == "number") && s ? String(s).replace(/_/g, ".").split(".").map((o) => parseInt(o) || 0) : [], i = (s = "") => {
|
|
3868
3868
|
if (!s) return [];
|
|
3869
3869
|
const o = new RegExp("^.*" + s + "[ :\\/]?(\\d+([\\._]\\d+)*).*$");
|
|
3870
3870
|
return o.test(n) ? r(n.replace(o, "$1")) : [];
|
|
@@ -3895,14 +3895,14 @@ let Ur = class {
|
|
|
3895
3895
|
}, []) };
|
|
3896
3896
|
}
|
|
3897
3897
|
};
|
|
3898
|
-
class Yo extends
|
|
3898
|
+
class Yo extends Br {
|
|
3899
3899
|
get iOSRequest() {
|
|
3900
|
-
const e =
|
|
3900
|
+
const e = _r(), n = Dr();
|
|
3901
3901
|
if (this.OS.iOS && !this.OS.iPadOS) return "mobile";
|
|
3902
3902
|
if (this.OS.iPadOS) return /\(iPad;/.test(n) || e && /^iPad(OS)?$/.test(e.platform) ? "mobile" : "desktop";
|
|
3903
3903
|
}
|
|
3904
3904
|
}
|
|
3905
|
-
const el = new
|
|
3905
|
+
const el = new Br();
|
|
3906
3906
|
new Yo();
|
|
3907
3907
|
const Gn = ["div", "span", "p", "br", "hr", "b", "i", "em", "strong", "s", "u", "mark", "small", "sub", "sup", "abbr", "cite", "code", "data", "dfn", "kbd", "q", "samp", "time", "var", "blockquote", "pre", "svg", "g", "path", "circle", "ellipse", "rect", "line", "polygon", "polyline", "text", "tspan", "defs", "use"], tl = /^on/i, nl = /* @__PURE__ */ new Set(["href", "src", "action", "formaction", "xlink:href"]), rl = /^\s*(javascript|data):/i;
|
|
3908
3908
|
function il(t, e) {
|
|
@@ -3926,18 +3926,18 @@ function sl(t, e) {
|
|
|
3926
3926
|
for (const { name: i, value: s } of Array.from(r.attributes)) (tl.test(i) || nl.has(i) && rl.test(s)) && r.removeAttribute(i);
|
|
3927
3927
|
}
|
|
3928
3928
|
}
|
|
3929
|
-
function
|
|
3929
|
+
function Ct(t) {
|
|
3930
3930
|
switch (t) {
|
|
3931
|
-
case
|
|
3931
|
+
case A.Mask:
|
|
3932
3932
|
return "rgba(255, 255, 255, 0.5)";
|
|
3933
|
-
case
|
|
3934
|
-
case
|
|
3933
|
+
case A.Highlight:
|
|
3934
|
+
case A.HighlightUnderline:
|
|
3935
3935
|
return "#FFFF00";
|
|
3936
3936
|
default:
|
|
3937
3937
|
return "#FF0000";
|
|
3938
3938
|
}
|
|
3939
3939
|
}
|
|
3940
|
-
const
|
|
3940
|
+
const A = { Highlight: "highlight", HighlightUnderline: "highlightUnderline", Underline: "underline", Strikethrough: "strikethrough", Outline: "outline", TextColor: "textColor", Mask: "mask", Template: "template" };
|
|
3941
3941
|
var al = ((t) => (t.Wrap = "wrap", t.Viewport = "viewport", t.Bounds = "bounds", t.Page = "page", t))(al || {}), ol = ((t) => (t.Boxes = "boxes", t.Bounds = "bounds", t))(ol || {});
|
|
3942
3942
|
const ll = () => "Highlight" in window, Wn = ["IMG", "IMAGE", "AUDIO", "VIDEO", "SVG"];
|
|
3943
3943
|
class cl {
|
|
@@ -3978,15 +3978,15 @@ class cl {
|
|
|
3978
3978
|
}
|
|
3979
3979
|
if (this.experimentalHighlights) {
|
|
3980
3980
|
const { type: o } = e.style, { layout: a, width: c, expand: l } = e.style;
|
|
3981
|
-
o !==
|
|
3981
|
+
o !== A.TextColor && (o === A.Outline || o === A.Template || o === A.Mask || a !== void 0 && a !== "boxes" || c !== void 0 && c !== "wrap" || l) && this.notTextFlag?.set(n, !0);
|
|
3982
3982
|
}
|
|
3983
3983
|
const s = { decoration: e, id: n, range: r, hitRects: [], clickableElements: void 0, container: void 0 };
|
|
3984
|
-
this.items.push(s), this.layout(s), s.hitRects = this.clientRectsToDocCoords(
|
|
3984
|
+
this.items.push(s), this.layout(s), s.hitRects = this.clientRectsToDocCoords(Ue(s.range, !1, !1, (s.decoration.style.expand ?? 0) + this.hitGap())), this.renderLayout([s]);
|
|
3985
3985
|
}
|
|
3986
3986
|
remove(e) {
|
|
3987
3987
|
const n = this.items.findIndex((s) => s.decoration.id === e);
|
|
3988
3988
|
if (n < 0) return;
|
|
3989
|
-
const r = this.items[n], i = r.decoration.style?.type ===
|
|
3989
|
+
const r = this.items[n], i = r.decoration.style?.type === A.Mask;
|
|
3990
3990
|
if (this.items.splice(n, 1), r.clickableElements = void 0, r.container && (r.container.remove(), r.container = void 0), this.experimentalHighlights && !this.notTextFlag?.has(r.id) && r.highlightSubKey) {
|
|
3991
3991
|
const s = this.wnd.CSS.highlights;
|
|
3992
3992
|
s.get(r.highlightSubKey)?.delete(r.range), this.items.some((a) => a.highlightSubKey === r.highlightSubKey) || s.delete(r.highlightSubKey);
|
|
@@ -4025,7 +4025,7 @@ class cl {
|
|
|
4025
4025
|
const { docX: n, docY: r } = this.pointerToDocCoords(e), i = this.wnd.devicePixelRatio;
|
|
4026
4026
|
for (const s of this.items) {
|
|
4027
4027
|
let o;
|
|
4028
|
-
if (s.decoration.style.type ===
|
|
4028
|
+
if (s.decoration.style.type === A.Template) for (const a of s.clickableElements ?? []) {
|
|
4029
4029
|
const c = a.getBoundingClientRect();
|
|
4030
4030
|
if (K(c, e.clientX, e.clientY, 0)) {
|
|
4031
4031
|
o = c;
|
|
@@ -4047,7 +4047,7 @@ class cl {
|
|
|
4047
4047
|
const { docX: n, docY: r } = this.pointerToDocCoords(e), i = this.wnd.devicePixelRatio;
|
|
4048
4048
|
let s, o;
|
|
4049
4049
|
for (const a of this.items) {
|
|
4050
|
-
if (a.decoration.style.type ===
|
|
4050
|
+
if (a.decoration.style.type === A.Template) for (const c of a.clickableElements ?? []) {
|
|
4051
4051
|
const l = c.getBoundingClientRect();
|
|
4052
4052
|
if (K(l, e.clientX, e.clientY, 0)) {
|
|
4053
4053
|
s = a, o = l;
|
|
@@ -4072,18 +4072,18 @@ class cl {
|
|
|
4072
4072
|
this.wnd.cancelAnimationFrame(this.currentRender), this.clearContainer(), this.wnd.document.fonts.ready.then(() => {
|
|
4073
4073
|
this.currentRender = this.wnd.requestAnimationFrame(() => {
|
|
4074
4074
|
this.items.forEach((e) => {
|
|
4075
|
-
this.layout(e), e.hitRects = this.clientRectsToDocCoords(
|
|
4075
|
+
this.layout(e), e.hitRects = this.clientRectsToDocCoords(Ue(e.range, !1, !1, (e.decoration.style.expand ?? 0) + this.hitGap()));
|
|
4076
4076
|
}), this.renderLayout(this.items), this.updateSharedMask();
|
|
4077
4077
|
});
|
|
4078
4078
|
});
|
|
4079
4079
|
}
|
|
4080
4080
|
experimentalLayout(e) {
|
|
4081
|
-
const n = this.requireContainer(!0), r = this.wnd.CSS.highlights, i = e.decoration.style, s = i.type ??
|
|
4081
|
+
const n = this.requireContainer(!0), r = this.wnd.CSS.highlights, i = e.decoration.style, s = i.type ?? A.Highlight, o = i.tint ?? Ct(s), a = i.width, c = i.layout, l = this._getSubKey(s, o);
|
|
4082
4082
|
e.highlightSubKey && (r.get(e.highlightSubKey)?.delete(e.range), e.highlightSubKey !== l && !this.items.some((p) => p !== e && p.highlightSubKey === e.highlightSubKey) && r.delete(e.highlightSubKey)), e.highlightSubKey = l;
|
|
4083
4083
|
let d;
|
|
4084
4084
|
r.has(l) ? d = r.get(l) : (d = new this.wnd.Highlight(), r.set(l, d));
|
|
4085
4085
|
const u = (p, m) => this.wnd.document.caretPositionFromPoint?.(p, m) ?? null;
|
|
4086
|
-
if (s ===
|
|
4086
|
+
if (s === A.TextColor && (c === "bounds" || a === "bounds" || a === "page")) {
|
|
4087
4087
|
const p = Se(this.wnd);
|
|
4088
4088
|
if (p.isVertical) console.warn("Vertical writing detected: caretPositionFromPoint has known bugs, falling back to original range"), d.add(e.range);
|
|
4089
4089
|
else {
|
|
@@ -4092,41 +4092,41 @@ class cl {
|
|
|
4092
4092
|
a === "page" ? (w = Math.floor(p.inlineStart(m) / p.pageInlineSize) * p.pageInlineSize, E = p.pageInlineSize) : (w = p.inlineStart(m), E = p.inlineSize(m));
|
|
4093
4093
|
const C = u(w, p.blockStart(m) + 1), N = u(w + E, p.blockStart(m) + p.blockSize(m) - 1);
|
|
4094
4094
|
if (C && N) {
|
|
4095
|
-
const
|
|
4096
|
-
|
|
4095
|
+
const L = this.wnd.document.createRange();
|
|
4096
|
+
L.setStart(C.offsetNode, C.offset), L.setEnd(N.offsetNode, N.offset), d.add(L), e.range = L;
|
|
4097
4097
|
} else d.add(e.range);
|
|
4098
4098
|
}
|
|
4099
4099
|
} else d.add(e.range);
|
|
4100
|
-
const g = this.getBackgroundColor(), f = i.enforceContrast !== !1 ?
|
|
4100
|
+
const g = this.getBackgroundColor(), f = i.enforceContrast !== !1 ? te(o, g) : o;
|
|
4101
4101
|
let y;
|
|
4102
4102
|
switch (s) {
|
|
4103
|
-
case
|
|
4103
|
+
case A.Underline:
|
|
4104
4104
|
y = `::highlight(${l}) {
|
|
4105
4105
|
text-decoration: underline;
|
|
4106
4106
|
text-decoration-color: ${f};
|
|
4107
4107
|
text-decoration-thickness: 0.1em;
|
|
4108
4108
|
}`;
|
|
4109
4109
|
break;
|
|
4110
|
-
case
|
|
4110
|
+
case A.Strikethrough:
|
|
4111
4111
|
y = `::highlight(${l}) {
|
|
4112
4112
|
text-decoration: line-through;
|
|
4113
4113
|
text-decoration-color: ${f};
|
|
4114
4114
|
text-decoration-thickness: 0.1em;
|
|
4115
4115
|
}`;
|
|
4116
4116
|
break;
|
|
4117
|
-
case
|
|
4117
|
+
case A.Outline:
|
|
4118
4118
|
y = `::highlight(${l}) {
|
|
4119
4119
|
outline: 2px solid ${f};
|
|
4120
4120
|
outline-offset: 1px;
|
|
4121
4121
|
}`;
|
|
4122
4122
|
break;
|
|
4123
|
-
case
|
|
4123
|
+
case A.TextColor:
|
|
4124
4124
|
y = `::highlight(${l}) {
|
|
4125
4125
|
color: ${f};
|
|
4126
4126
|
}`;
|
|
4127
4127
|
break;
|
|
4128
|
-
case
|
|
4129
|
-
const { r: p, g: m, b: w } =
|
|
4128
|
+
case A.HighlightUnderline: {
|
|
4129
|
+
const { r: p, g: m, b: w } = X(f), E = `rgba(${p}, ${m}, ${w}, 0.3)`;
|
|
4130
4130
|
y = `::highlight(${l}) {
|
|
4131
4131
|
color: ${Mn(f, g)};
|
|
4132
4132
|
background-color: ${E};
|
|
@@ -4136,7 +4136,7 @@ class cl {
|
|
|
4136
4136
|
}`;
|
|
4137
4137
|
break;
|
|
4138
4138
|
}
|
|
4139
|
-
case
|
|
4139
|
+
case A.Highlight:
|
|
4140
4140
|
default:
|
|
4141
4141
|
y = `::highlight(${l}) {
|
|
4142
4142
|
color: ${Mn(f, g)};
|
|
@@ -4181,12 +4181,12 @@ class cl {
|
|
|
4181
4181
|
r.applyPosition(u, r.inlineStart(m) + r.inlineScrollOffset, r.blockStart(m) + r.blockScrollOffset, r.inlineSize(m), r.blockSize(m), i);
|
|
4182
4182
|
}
|
|
4183
4183
|
}, a = e.range.getBoundingClientRect(), c = e.decoration.style, l = (() => {
|
|
4184
|
-
if (c.type !==
|
|
4184
|
+
if (c.type !== A.Outline) return 0;
|
|
4185
4185
|
const u = c.width;
|
|
4186
4186
|
return u === "page" || u === "viewport" ? 3 : 0;
|
|
4187
4187
|
})();
|
|
4188
4188
|
let d;
|
|
4189
|
-
if (c.type ===
|
|
4189
|
+
if (c.type === A.Template) {
|
|
4190
4190
|
c.stylesheet && this.injectCustomStylesheet(c.stylesheet);
|
|
4191
4191
|
const u = il(this.wnd, c.element);
|
|
4192
4192
|
if (!u) {
|
|
@@ -4195,34 +4195,34 @@ class cl {
|
|
|
4195
4195
|
}
|
|
4196
4196
|
u.style.setProperty("pointer-events", "none"), d = u;
|
|
4197
4197
|
} else {
|
|
4198
|
-
const u = c, g = u.type ??
|
|
4199
|
-
if (g ===
|
|
4198
|
+
const u = c, g = u.type ?? A.Highlight, f = u.tint ?? Ct(g);
|
|
4199
|
+
if (g === A.TextColor) {
|
|
4200
4200
|
e.container = n, e.clickableElements = [];
|
|
4201
4201
|
return;
|
|
4202
4202
|
}
|
|
4203
|
-
if (g ===
|
|
4203
|
+
if (g === A.Mask) {
|
|
4204
4204
|
e.container = n, e.clickableElements = [], this.updateSharedMask();
|
|
4205
4205
|
return;
|
|
4206
4206
|
}
|
|
4207
4207
|
const y = this.getCurrentDarkMode(), p = this.getBackgroundColor(), m = u.enforceContrast !== !1, w = (() => {
|
|
4208
4208
|
switch (g) {
|
|
4209
|
-
case
|
|
4210
|
-
const C = m ?
|
|
4211
|
-
return [N ? `${P}: 0.1em solid ${C} !important` : null, `${
|
|
4209
|
+
case A.Underline: {
|
|
4210
|
+
const C = m ? te(f, p) : f, N = u.layout === "bounds", [L, P] = r.isVertical ? ["border-right", "border-left"] : ["border-bottom", "border-top"];
|
|
4211
|
+
return [N ? `${P}: 0.1em solid ${C} !important` : null, `${L}: 0.1em solid ${C} !important`, "background-color: transparent !important", "box-sizing: border-box !important"].filter(Boolean).join("; ");
|
|
4212
4212
|
}
|
|
4213
|
-
case
|
|
4214
|
-
const C = m ?
|
|
4213
|
+
case A.Strikethrough: {
|
|
4214
|
+
const C = m ? te(f, p) : f;
|
|
4215
4215
|
return u.layout === "bounds" ? [`background: repeating-linear-gradient(-45deg, transparent, transparent 19px, ${C} 19px, ${C} 20px) !important`, "background-color: transparent !important", "box-sizing: border-box !important"].join("; ") : [`background-color: ${C} !important`, "box-sizing: border-box !important"].join("; ");
|
|
4216
4216
|
}
|
|
4217
|
-
case
|
|
4218
|
-
return [`outline: 2px solid ${m ?
|
|
4219
|
-
case
|
|
4220
|
-
const C = m ?
|
|
4217
|
+
case A.Outline:
|
|
4218
|
+
return [`outline: 2px solid ${m ? te(f, p) : f} !important`, "outline-offset: 1px !important", "background-color: transparent !important", "box-sizing: border-box !important"].join("; ");
|
|
4219
|
+
case A.HighlightUnderline: {
|
|
4220
|
+
const C = m ? te(f, p) : f, { r: N, g: L, b: P } = X(C), _ = `rgba(${N}, ${L}, ${P}, 0.3)`, pe = u.layout === "bounds", [me, b] = r.isVertical ? ["border-right", "border-left"] : ["border-bottom", "border-top"];
|
|
4221
4221
|
return [`background-color: ${_} !important`, pe ? `${b}: 0.1em solid ${C} !important` : null, `${me}: 0.1em solid ${C} !important`, "box-sizing: border-box !important"].filter(Boolean).join("; ");
|
|
4222
4222
|
}
|
|
4223
|
-
case
|
|
4223
|
+
case A.Highlight:
|
|
4224
4224
|
default:
|
|
4225
|
-
return [`background-color: ${m ?
|
|
4225
|
+
return [`background-color: ${m ? te(f, p) : f} !important`, `mix-blend-mode: ${y ? "exclusion" : "multiply"} !important`, "opacity: 1 !important", "box-sizing: border-box !important"].join("; ");
|
|
4226
4226
|
}
|
|
4227
4227
|
})(), E = this.wnd.document.createElement("template");
|
|
4228
4228
|
E.innerHTML = `<div data-readium="true" class="readium-${g}" style="${w}"></div>`.trim(), d = E.content.firstElementChild;
|
|
@@ -4233,8 +4233,8 @@ class cl {
|
|
|
4233
4233
|
const g = s ? { left: a.left - s, right: a.right + s, top: a.top - s, bottom: a.bottom + s, width: a.width + s * 2, height: a.height + s * 2 } : a;
|
|
4234
4234
|
o(u, g, a, l), n.append(u);
|
|
4235
4235
|
} else {
|
|
4236
|
-
const u = c.type, g = u ===
|
|
4237
|
-
let p =
|
|
4236
|
+
const u = c.type, g = u === A.Underline || u === A.Strikethrough, f = u === A.Strikethrough, y = g ? Fo(e.range, ["rt", "rp"]) : e.range;
|
|
4237
|
+
let p = Ue(y, !0, r.isVertical, g ? 0 : s);
|
|
4238
4238
|
p = p.sort((m, w) => r.isVertical ? (r.isVertLR ? 1 : -1) * (m.left - w.left) : m.top - w.top);
|
|
4239
4239
|
for (let m of p) {
|
|
4240
4240
|
const w = d.cloneNode(!0);
|
|
@@ -4262,31 +4262,31 @@ class cl {
|
|
|
4262
4262
|
return this.container || (this.shadowRoot || (this.shadowHost = this.wnd.document.createElement("div"), this.shadowHost.style.cssText = "position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none", this.wnd.document.body.appendChild(this.shadowHost), this.shadowRoot = this.shadowHost.attachShadow({ mode: "open" })), this.container = this.wnd.document.createElement("div"), this.container.setAttribute("id", this.id), this.container.dataset.group = this.name, this.container.dataset.readium = "true", this.container.style.setProperty("pointer-events", "none"), this.container.style.display = "contents", this.shadowRoot.appendChild(this.container)), this.container;
|
|
4263
4263
|
}
|
|
4264
4264
|
getCurrentDarkMode() {
|
|
4265
|
-
return Bn(this.wnd, "--USER__appearance") === "readium-night-on" ||
|
|
4265
|
+
return Bn(this.wnd, "--USER__appearance") === "readium-night-on" || $r(this.getBackgroundColor());
|
|
4266
4266
|
}
|
|
4267
4267
|
getBackgroundColor() {
|
|
4268
4268
|
return Bn(this.wnd, "--USER__backgroundColor") || this.wnd.getComputedStyle(this.wnd.document.documentElement).getPropertyValue("background-color");
|
|
4269
4269
|
}
|
|
4270
4270
|
updateSharedMask() {
|
|
4271
|
-
const e = this.items.filter((g) => g.decoration.style?.type ===
|
|
4271
|
+
const e = this.items.filter((g) => g.decoration.style?.type === A.Mask);
|
|
4272
4272
|
if (e.length === 0) {
|
|
4273
4273
|
this.maskSvg && (this.maskSvg.remove(), this.maskSvg = void 0), this.shadowRoot && (this.shadowRoot.innerHTML = "");
|
|
4274
4274
|
return;
|
|
4275
4275
|
}
|
|
4276
4276
|
const n = Se(this.wnd), r = 1 / this.effectiveZoom(), i = this.wnd.document.documentElement, s = i.scrollWidth, o = i.scrollHeight, a = [];
|
|
4277
4277
|
for (const g of e) {
|
|
4278
|
-
const f = g.decoration.style, y = f.layout ?? "boxes", p = f.width ?? "wrap", m = f.expand ?? 0, w = g.range.getBoundingClientRect(), E = y === "bounds" ? [m ? { left: w.left - m, top: w.top - m, right: w.right + m, bottom: w.bottom + m, width: w.width + m * 2, height: w.height + m * 2 } : w] :
|
|
4278
|
+
const f = g.decoration.style, y = f.layout ?? "boxes", p = f.width ?? "wrap", m = f.expand ?? 0, w = g.range.getBoundingClientRect(), E = y === "bounds" ? [m ? { left: w.left - m, top: w.top - m, right: w.right + m, bottom: w.bottom + m, width: w.width + m * 2, height: w.height + m * 2 } : w] : Ue(g.range, !1, !1, m);
|
|
4279
4279
|
for (const C of E) {
|
|
4280
4280
|
let N;
|
|
4281
4281
|
switch (p) {
|
|
4282
4282
|
case "viewport": {
|
|
4283
|
-
const
|
|
4284
|
-
N = n.toRect(
|
|
4283
|
+
const L = Math.floor(n.inlineStart(C) / n.viewportInlineSize) * n.viewportInlineSize;
|
|
4284
|
+
N = n.toRect(L, n.blockStart(C), n.viewportInlineSize, n.blockSize(C));
|
|
4285
4285
|
break;
|
|
4286
4286
|
}
|
|
4287
4287
|
case "page": {
|
|
4288
|
-
const
|
|
4289
|
-
N = n.toRect(
|
|
4288
|
+
const L = Math.floor(n.inlineStart(C) / n.pageInlineSize) * n.pageInlineSize;
|
|
4289
|
+
N = n.toRect(L, n.blockStart(C), n.pageInlineSize, n.blockSize(C));
|
|
4290
4290
|
break;
|
|
4291
4291
|
}
|
|
4292
4292
|
case "bounds": {
|
|
@@ -4317,7 +4317,7 @@ class cl {
|
|
|
4317
4317
|
d && d.setAttribute("d", c);
|
|
4318
4318
|
const u = this.maskSvg.querySelector("rect");
|
|
4319
4319
|
if (u) {
|
|
4320
|
-
const g = e[0].decoration.style.tint, f = g ?? this.getBackgroundColor() ??
|
|
4320
|
+
const g = e[0].decoration.style.tint, f = g ?? this.getBackgroundColor() ?? Ct(A.Mask), y = g ? "1" : "0.5";
|
|
4321
4321
|
u.setAttribute("x", "0"), u.setAttribute("y", "0"), u.setAttribute("width", String(s)), u.setAttribute("height", String(o)), u.setAttribute("fill", f), u.setAttribute("fill-opacity", y);
|
|
4322
4322
|
}
|
|
4323
4323
|
}
|
|
@@ -4335,7 +4335,7 @@ class cl {
|
|
|
4335
4335
|
this.wnd.document.getElementById(`${this.id}-custom-style`)?.remove(), this.container && (this.container.remove(), this.container = void 0);
|
|
4336
4336
|
}
|
|
4337
4337
|
}
|
|
4338
|
-
const
|
|
4338
|
+
const Ur = class Ee extends To {
|
|
4339
4339
|
constructor() {
|
|
4340
4340
|
super(...arguments), this.resizeFrame = 0, this.lastGroupId = 0, this.groups = /* @__PURE__ */ new Map(), this.handleResizer = this.handleResize.bind(this);
|
|
4341
4341
|
}
|
|
@@ -4388,21 +4388,21 @@ const zr = class Ee extends To {
|
|
|
4388
4388
|
return e.removeEventListener("orientationchange", this.handleResizer), e.removeEventListener("resize", this.handleResizer), n.unregisterAll(Ee.moduleName), this.resizeObserver.disconnect(), this.styleObserver.disconnect(), this.cleanup(), n.log("Decorator Unmounted"), !0;
|
|
4389
4389
|
}
|
|
4390
4390
|
};
|
|
4391
|
-
|
|
4392
|
-
let ul =
|
|
4393
|
-
const hl = new Set(Object.values(
|
|
4391
|
+
Ur.moduleName = "decorator";
|
|
4392
|
+
let ul = Ur;
|
|
4393
|
+
const hl = new Set(Object.values(A));
|
|
4394
4394
|
function dl(t, e) {
|
|
4395
|
-
return t ===
|
|
4395
|
+
return t === A.TextColor ? typeof window < "u" && "Highlight" in window : hl.has(t) ? !0 : !!e?.[t];
|
|
4396
4396
|
}
|
|
4397
4397
|
function Kn(t, e) {
|
|
4398
4398
|
const { style: n } = t;
|
|
4399
|
-
if (n.type ===
|
|
4399
|
+
if (n.type === A.Template) {
|
|
4400
4400
|
const r = n;
|
|
4401
4401
|
return { ...t, style: { ...r, element: Jn(r, t) } };
|
|
4402
4402
|
}
|
|
4403
4403
|
if (n.type && e?.[n.type]) {
|
|
4404
4404
|
const r = e[n.type];
|
|
4405
|
-
return { ...t, style: { type:
|
|
4405
|
+
return { ...t, style: { type: A.Template, layout: r.layout, width: r.width, stylesheet: r.stylesheet, element: Jn(r, t) } };
|
|
4406
4406
|
}
|
|
4407
4407
|
return t;
|
|
4408
4408
|
}
|
|
@@ -4411,7 +4411,7 @@ function Jn(t, e) {
|
|
|
4411
4411
|
}
|
|
4412
4412
|
function gl(t, e) {
|
|
4413
4413
|
if (t.type !== e.type) return !1;
|
|
4414
|
-
if (t.type ===
|
|
4414
|
+
if (t.type === A.Template) {
|
|
4415
4415
|
const i = t, s = e;
|
|
4416
4416
|
return i.layout === s.layout && i.width === s.width && i.stylesheet === s.stylesheet;
|
|
4417
4417
|
}
|
|
@@ -4421,7 +4421,7 @@ function gl(t, e) {
|
|
|
4421
4421
|
function fl(t, e) {
|
|
4422
4422
|
return t.locator.href === e.locator.href && JSON.stringify(t.locator.locations?.serialize?.() ?? t.locator.locations) === JSON.stringify(e.locator.locations?.serialize?.() ?? e.locator.locations) && JSON.stringify(t.locator.text ?? null) === JSON.stringify(e.locator.text ?? null) && gl(t.style, e.style) && JSON.stringify(t.extras ?? null) === JSON.stringify(e.extras ?? null);
|
|
4423
4423
|
}
|
|
4424
|
-
let
|
|
4424
|
+
let zr = class {
|
|
4425
4425
|
constructor() {
|
|
4426
4426
|
this.queue = [], this.channel = typeof MessageChannel < "u" ? new MessageChannel() : void 0, this.channel && (this.channel.port1.onmessage = () => this.flush());
|
|
4427
4427
|
}
|
|
@@ -4444,7 +4444,7 @@ class pl {
|
|
|
4444
4444
|
}
|
|
4445
4445
|
let ml = class {
|
|
4446
4446
|
constructor(e) {
|
|
4447
|
-
this.channel = e, this.registrar = /* @__PURE__ */ new Map(), this.outbox = new
|
|
4447
|
+
this.channel = e, this.registrar = /* @__PURE__ */ new Map(), this.outbox = new zr(), this.ready = !0;
|
|
4448
4448
|
}
|
|
4449
4449
|
register(e, n, r) {
|
|
4450
4450
|
(Array.isArray(e) ? e : [e]).forEach((i) => {
|
|
@@ -4484,7 +4484,7 @@ let ml = class {
|
|
|
4484
4484
|
};
|
|
4485
4485
|
class yl {
|
|
4486
4486
|
constructor(e) {
|
|
4487
|
-
this.channel = e, this.listeners = /* @__PURE__ */ new Map(), this.outbox = new
|
|
4487
|
+
this.channel = e, this.listeners = /* @__PURE__ */ new Map(), this.outbox = new zr(), this.ready = !0;
|
|
4488
4488
|
}
|
|
4489
4489
|
send(e, n, r) {
|
|
4490
4490
|
this.outbox.push(() => this.channel.frame._dispatch(e, n, r ?? (() => {
|
|
@@ -4554,7 +4554,7 @@ function vl(t) {
|
|
|
4554
4554
|
function wl(t) {
|
|
4555
4555
|
return t && typeof t == "string" ? [t] : vl(t);
|
|
4556
4556
|
}
|
|
4557
|
-
function
|
|
4557
|
+
function Et(t) {
|
|
4558
4558
|
return isNaN(t) ? void 0 : t;
|
|
4559
4559
|
}
|
|
4560
4560
|
class W {
|
|
@@ -4563,7 +4563,7 @@ class W {
|
|
|
4563
4563
|
}
|
|
4564
4564
|
static deserialize(e) {
|
|
4565
4565
|
if (!e) return;
|
|
4566
|
-
const n =
|
|
4566
|
+
const n = Et(e.progression), r = Et(e.totalProgression), i = Et(e.position), s = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Set(["fragment", "fragments", "progression", "totalProgression", "position", "otherLocations"]);
|
|
4567
4567
|
return Object.entries(e).forEach(([a, c]) => {
|
|
4568
4568
|
o.has(a) || s.set(a, c);
|
|
4569
4569
|
}), e.otherLocations instanceof Map && e.otherLocations.forEach((a, c) => s.set(c, a)), new W({ fragments: wl(e.fragments || e.fragment), progression: n !== void 0 && n >= 0 && n <= 1 ? n : void 0, totalProgression: r !== void 0 && r >= 0 && r <= 1 ? r : void 0, position: i !== void 0 && i > 0 ? i : void 0, otherLocations: s.size === 0 ? void 0 : s });
|
|
@@ -4573,19 +4573,19 @@ class W {
|
|
|
4573
4573
|
return this.fragments && (e.fragments = this.fragments), this.progression !== void 0 && (e.progression = this.progression), this.totalProgression !== void 0 && (e.totalProgression = this.totalProgression), this.position !== void 0 && (e.position = this.position), this.otherLocations && this.otherLocations.forEach((n, r) => e[r] = n), e;
|
|
4574
4574
|
}
|
|
4575
4575
|
}
|
|
4576
|
-
class
|
|
4576
|
+
class lt {
|
|
4577
4577
|
constructor(e) {
|
|
4578
4578
|
this.after = e.after, this.before = e.before, this.highlight = e.highlight;
|
|
4579
4579
|
}
|
|
4580
4580
|
static deserialize(e) {
|
|
4581
|
-
if (e) return new
|
|
4581
|
+
if (e) return new lt({ after: e.after, before: e.before, highlight: e.highlight });
|
|
4582
4582
|
}
|
|
4583
4583
|
serialize() {
|
|
4584
4584
|
const e = {};
|
|
4585
4585
|
return this.after !== void 0 && (e.after = this.after), this.before !== void 0 && (e.before = this.before), this.highlight !== void 0 && (e.highlight = this.highlight), e;
|
|
4586
4586
|
}
|
|
4587
4587
|
}
|
|
4588
|
-
class
|
|
4588
|
+
class Ze {
|
|
4589
4589
|
constructor(e) {
|
|
4590
4590
|
const n = e.href.indexOf("#"), r = n >= 0 ? e.href.slice(n + 1) : void 0;
|
|
4591
4591
|
this.href = n >= 0 ? e.href.slice(0, n) : e.href, this.type = e.type, this.title = e.title;
|
|
@@ -4593,22 +4593,22 @@ class Ye {
|
|
|
4593
4593
|
this.locations = e.locations ? s ? new W({ ...e.locations, fragments: [r] }) : e.locations : r ? new W({ fragments: [r] }) : new W({}), this.text = e.text;
|
|
4594
4594
|
}
|
|
4595
4595
|
static deserialize(e) {
|
|
4596
|
-
if (e && e.href && e.type) return new
|
|
4596
|
+
if (e && e.href && e.type) return new Ze({ href: e.href, type: e.type, title: e.title, locations: W.deserialize(e.locations), text: lt.deserialize(e.text) });
|
|
4597
4597
|
}
|
|
4598
4598
|
serialize() {
|
|
4599
4599
|
const e = { href: this.href, type: this.type };
|
|
4600
4600
|
return this.title !== void 0 && (e.title = this.title), this.locations && (e.locations = this.locations.serialize()), this.text && (e.text = this.text.serialize()), e;
|
|
4601
4601
|
}
|
|
4602
4602
|
copyWithLocations(e) {
|
|
4603
|
-
return new
|
|
4603
|
+
return new Ze({ href: this.href, type: this.type, title: this.title, text: this.text, locations: new W({ ...this.locations, ...e }) });
|
|
4604
4604
|
}
|
|
4605
4605
|
}
|
|
4606
4606
|
function Sl(t, e = window) {
|
|
4607
|
-
const { highlight: n, before: r, after: i, selector: s, fragment: o } = t, c = n !== void 0 || r !== void 0 || i !== void 0 ? new
|
|
4607
|
+
const { highlight: n, before: r, after: i, selector: s, fragment: o } = t, c = n !== void 0 || r !== void 0 || i !== void 0 ? new lt({ highlight: n, before: r, after: i }) : void 0, l = s ? /* @__PURE__ */ new Map([["cssSelector", s]]) : void 0, u = l !== void 0 || o !== void 0 ? new W({
|
|
4608
4608
|
fragments: o ? [o] : void 0,
|
|
4609
4609
|
otherLocations: l
|
|
4610
4610
|
}) : void 0;
|
|
4611
|
-
return new
|
|
4611
|
+
return new Ze({
|
|
4612
4612
|
href: e.location.href,
|
|
4613
4613
|
type: "text/html",
|
|
4614
4614
|
text: c,
|
|
@@ -4637,11 +4637,11 @@ class xl extends bl {
|
|
|
4637
4637
|
super.destroy(), this.decorator.unmount(this.wnd, this.channel.frame), this.channel.frame.destroy();
|
|
4638
4638
|
}
|
|
4639
4639
|
}
|
|
4640
|
-
function
|
|
4640
|
+
function vc(t = window, e = {}) {
|
|
4641
4641
|
const n = new pl(), r = new ul();
|
|
4642
4642
|
return r.mount(t, n.frame), new xl(n, t, r, e);
|
|
4643
4643
|
}
|
|
4644
|
-
class
|
|
4644
|
+
class wc {
|
|
4645
4645
|
providers = /* @__PURE__ */ new Map();
|
|
4646
4646
|
register(e) {
|
|
4647
4647
|
if (this.providers.has(e.id))
|
|
@@ -4681,7 +4681,7 @@ class vc {
|
|
|
4681
4681
|
return n;
|
|
4682
4682
|
}
|
|
4683
4683
|
}
|
|
4684
|
-
const
|
|
4684
|
+
const Ye = { range: [0, 5e3], step: 100 }, et = { range: [0.1, 10], step: 0.1 }, tt = { range: [0, 2], step: 0.1 }, nt = { range: [0, 1], step: 0.05 }, Yt = ["none", "few", "some", "most", "custom"], en = ["none", "block-level", "always"], tn = ["plain", "ssml"], nn = ["none", "utterance", "block"], Qn = [
|
|
4685
4685
|
"format",
|
|
4686
4686
|
"inlineContextualization",
|
|
4687
4687
|
"verbosity",
|
|
@@ -4689,7 +4689,7 @@ const et = { range: [0, 5e3], step: 100 }, tt = { range: [0.1, 10], step: 0.1 },
|
|
|
4689
4689
|
"contextualize",
|
|
4690
4690
|
"language"
|
|
4691
4691
|
];
|
|
4692
|
-
function
|
|
4692
|
+
function rn(t) {
|
|
4693
4693
|
return t == null || typeof t == "boolean" ? t : void 0;
|
|
4694
4694
|
}
|
|
4695
4695
|
function V(t, e) {
|
|
@@ -4701,7 +4701,7 @@ function F(t, e) {
|
|
|
4701
4701
|
const n = Math.min(...e), r = Math.max(...e);
|
|
4702
4702
|
return t >= n && t <= r ? t : void 0;
|
|
4703
4703
|
}
|
|
4704
|
-
function
|
|
4704
|
+
function Te(t) {
|
|
4705
4705
|
return t == null || Array.isArray(t) && t.every((e) => typeof e == "string") ? t : void 0;
|
|
4706
4706
|
}
|
|
4707
4707
|
class kl {
|
|
@@ -4712,16 +4712,15 @@ class kl {
|
|
|
4712
4712
|
contextualize;
|
|
4713
4713
|
language;
|
|
4714
4714
|
pauseDuration;
|
|
4715
|
-
|
|
4716
|
-
automaticPausesAtPageOrSpreadEnd;
|
|
4715
|
+
autoPause;
|
|
4717
4716
|
rate;
|
|
4718
4717
|
pitch;
|
|
4719
4718
|
volume;
|
|
4720
4719
|
constructor(e = {}) {
|
|
4721
|
-
this.format = V(e.format,
|
|
4720
|
+
this.format = V(e.format, tn) ?? "plain", this.inlineContextualization = rn(e.inlineContextualization) ?? !1, this.verbosity = V(e.verbosity, Yt) ?? "few", this.skip = Te(e.skip) ?? [], this.contextualize = Te(e.contextualize) ?? [], this.language = V(e.language, en) ?? "block-level", this.pauseDuration = F(e.pauseDuration, Ye.range) ?? 300, this.autoPause = V(e.autoPause, nn) ?? "none", this.rate = F(e.rate, et.range) ?? 1, this.pitch = F(e.pitch, tt.range) ?? 1, this.volume = F(e.volume, nt.range) ?? 1;
|
|
4722
4721
|
}
|
|
4723
4722
|
}
|
|
4724
|
-
class
|
|
4723
|
+
class Re {
|
|
4725
4724
|
format;
|
|
4726
4725
|
inlineContextualization;
|
|
4727
4726
|
verbosity;
|
|
@@ -4729,22 +4728,21 @@ class Ne {
|
|
|
4729
4728
|
contextualize;
|
|
4730
4729
|
language;
|
|
4731
4730
|
pauseDuration;
|
|
4732
|
-
|
|
4733
|
-
automaticPausesAtPageOrSpreadEnd;
|
|
4731
|
+
autoPause;
|
|
4734
4732
|
rate;
|
|
4735
4733
|
pitch;
|
|
4736
4734
|
volume;
|
|
4737
4735
|
constructor(e = {}) {
|
|
4738
|
-
this.format = V(e.format,
|
|
4736
|
+
this.format = V(e.format, tn), this.inlineContextualization = rn(e.inlineContextualization), this.verbosity = V(e.verbosity, Yt), this.skip = Te(e.skip), this.contextualize = Te(e.contextualize), this.language = V(e.language, en), this.pauseDuration = F(e.pauseDuration, Ye.range), this.autoPause = V(e.autoPause, nn), this.rate = F(e.rate, et.range), this.pitch = F(e.pitch, tt.range), this.volume = F(e.volume, nt.range);
|
|
4739
4737
|
}
|
|
4740
4738
|
merging(e) {
|
|
4741
4739
|
const n = { ...this };
|
|
4742
4740
|
for (const r of Object.keys(e))
|
|
4743
4741
|
e[r] !== void 0 && (n[r] = e[r]);
|
|
4744
|
-
return new
|
|
4742
|
+
return new Re(n);
|
|
4745
4743
|
}
|
|
4746
4744
|
}
|
|
4747
|
-
class
|
|
4745
|
+
class ct {
|
|
4748
4746
|
_value;
|
|
4749
4747
|
_effectiveValue;
|
|
4750
4748
|
_isEffective;
|
|
@@ -4773,7 +4771,7 @@ class ut {
|
|
|
4773
4771
|
this._value = null, this._onChange(this._value);
|
|
4774
4772
|
}
|
|
4775
4773
|
}
|
|
4776
|
-
class
|
|
4774
|
+
class Ve extends ct {
|
|
4777
4775
|
_supportedValues;
|
|
4778
4776
|
constructor({
|
|
4779
4777
|
initialValue: e = null,
|
|
@@ -4796,9 +4794,9 @@ class Fe extends ut {
|
|
|
4796
4794
|
return this._supportedValues;
|
|
4797
4795
|
}
|
|
4798
4796
|
}
|
|
4799
|
-
class
|
|
4797
|
+
class Cl extends ct {
|
|
4800
4798
|
set value(e) {
|
|
4801
|
-
if (e != null &&
|
|
4799
|
+
if (e != null && rn(e) === void 0)
|
|
4802
4800
|
throw new Error(`Value '${String(e)}' is not a boolean.`);
|
|
4803
4801
|
this._value = e, this._onChange(this._value);
|
|
4804
4802
|
}
|
|
@@ -4806,9 +4804,9 @@ class Xn extends ut {
|
|
|
4806
4804
|
return this._value;
|
|
4807
4805
|
}
|
|
4808
4806
|
}
|
|
4809
|
-
class
|
|
4807
|
+
class Xn extends ct {
|
|
4810
4808
|
set value(e) {
|
|
4811
|
-
if (e != null &&
|
|
4809
|
+
if (e != null && Te(e) === void 0)
|
|
4812
4810
|
throw new Error(`Value '${String(e)}' is not an array of strings.`);
|
|
4813
4811
|
this._value = e, this._onChange(this._value);
|
|
4814
4812
|
}
|
|
@@ -4816,7 +4814,7 @@ class Zn extends ut {
|
|
|
4816
4814
|
return this._value;
|
|
4817
4815
|
}
|
|
4818
4816
|
}
|
|
4819
|
-
class
|
|
4817
|
+
class Fe extends ct {
|
|
4820
4818
|
_supportedRange;
|
|
4821
4819
|
_step;
|
|
4822
4820
|
_decimals;
|
|
@@ -4860,7 +4858,7 @@ class He extends ut {
|
|
|
4860
4858
|
return e.toString();
|
|
4861
4859
|
}
|
|
4862
4860
|
}
|
|
4863
|
-
class
|
|
4861
|
+
class Zn {
|
|
4864
4862
|
preferences;
|
|
4865
4863
|
settings;
|
|
4866
4864
|
// Cloned rather than aliased: edits made through this editor's setters
|
|
@@ -4868,12 +4866,12 @@ class Yn {
|
|
|
4868
4866
|
// once explicitly passed to submitPreferences() — discarding the editor
|
|
4869
4867
|
// without submitting must leave the navigator untouched.
|
|
4870
4868
|
constructor(e, n) {
|
|
4871
|
-
this.preferences = new
|
|
4869
|
+
this.preferences = new Re({ ...e }), this.settings = n;
|
|
4872
4870
|
}
|
|
4873
4871
|
// Explicit `null`s, not `undefined` — merging() skips `undefined` fields,
|
|
4874
4872
|
// so only `null` actually clears them once submitted.
|
|
4875
4873
|
clear() {
|
|
4876
|
-
this.preferences = new
|
|
4874
|
+
this.preferences = new Re({
|
|
4877
4875
|
format: null,
|
|
4878
4876
|
inlineContextualization: null,
|
|
4879
4877
|
verbosity: null,
|
|
@@ -4881,8 +4879,7 @@ class Yn {
|
|
|
4881
4879
|
contextualize: null,
|
|
4882
4880
|
language: null,
|
|
4883
4881
|
pauseDuration: null,
|
|
4884
|
-
|
|
4885
|
-
automaticPausesAtPageOrSpreadEnd: null,
|
|
4882
|
+
autoPause: null,
|
|
4886
4883
|
rate: null,
|
|
4887
4884
|
pitch: null,
|
|
4888
4885
|
volume: null
|
|
@@ -4892,16 +4889,16 @@ class Yn {
|
|
|
4892
4889
|
this.preferences[e] = n;
|
|
4893
4890
|
}
|
|
4894
4891
|
get format() {
|
|
4895
|
-
return new
|
|
4892
|
+
return new Ve({
|
|
4896
4893
|
initialValue: this.preferences.format,
|
|
4897
4894
|
effectiveValue: this.settings.format,
|
|
4898
4895
|
isEffective: this.preferences.format != null,
|
|
4899
4896
|
onChange: (e) => this.updatePreference("format", e ?? null),
|
|
4900
|
-
supportedValues:
|
|
4897
|
+
supportedValues: tn
|
|
4901
4898
|
});
|
|
4902
4899
|
}
|
|
4903
4900
|
get inlineContextualization() {
|
|
4904
|
-
return new
|
|
4901
|
+
return new Cl({
|
|
4905
4902
|
initialValue: this.preferences.inlineContextualization,
|
|
4906
4903
|
effectiveValue: this.settings.inlineContextualization,
|
|
4907
4904
|
isEffective: this.preferences.inlineContextualization != null,
|
|
@@ -4909,16 +4906,16 @@ class Yn {
|
|
|
4909
4906
|
});
|
|
4910
4907
|
}
|
|
4911
4908
|
get verbosity() {
|
|
4912
|
-
return new
|
|
4909
|
+
return new Ve({
|
|
4913
4910
|
initialValue: this.preferences.verbosity,
|
|
4914
4911
|
effectiveValue: this.settings.verbosity,
|
|
4915
4912
|
isEffective: this.preferences.verbosity != null,
|
|
4916
4913
|
onChange: (e) => this.updatePreference("verbosity", e ?? null),
|
|
4917
|
-
supportedValues:
|
|
4914
|
+
supportedValues: Yt
|
|
4918
4915
|
});
|
|
4919
4916
|
}
|
|
4920
4917
|
get skip() {
|
|
4921
|
-
return new
|
|
4918
|
+
return new Xn({
|
|
4922
4919
|
initialValue: this.preferences.skip,
|
|
4923
4920
|
effectiveValue: this.settings.skip,
|
|
4924
4921
|
isEffective: this.preferences.skip != null,
|
|
@@ -4926,7 +4923,7 @@ class Yn {
|
|
|
4926
4923
|
});
|
|
4927
4924
|
}
|
|
4928
4925
|
get contextualize() {
|
|
4929
|
-
return new
|
|
4926
|
+
return new Xn({
|
|
4930
4927
|
initialValue: this.preferences.contextualize,
|
|
4931
4928
|
effectiveValue: this.settings.contextualize,
|
|
4932
4929
|
isEffective: this.preferences.contextualize != null,
|
|
@@ -4934,76 +4931,66 @@ class Yn {
|
|
|
4934
4931
|
});
|
|
4935
4932
|
}
|
|
4936
4933
|
get language() {
|
|
4937
|
-
return new
|
|
4934
|
+
return new Ve({
|
|
4938
4935
|
initialValue: this.preferences.language,
|
|
4939
4936
|
effectiveValue: this.settings.language,
|
|
4940
4937
|
isEffective: this.preferences.language != null,
|
|
4941
4938
|
onChange: (e) => this.updatePreference("language", e ?? null),
|
|
4942
|
-
supportedValues:
|
|
4939
|
+
supportedValues: en
|
|
4943
4940
|
});
|
|
4944
4941
|
}
|
|
4945
4942
|
get pauseDuration() {
|
|
4946
|
-
return new
|
|
4943
|
+
return new Fe({
|
|
4947
4944
|
initialValue: this.preferences.pauseDuration,
|
|
4948
4945
|
effectiveValue: this.settings.pauseDuration,
|
|
4949
4946
|
isEffective: this.preferences.pauseDuration != null,
|
|
4950
4947
|
onChange: (e) => this.updatePreference("pauseDuration", e ?? null),
|
|
4951
|
-
supportedRange:
|
|
4952
|
-
step:
|
|
4953
|
-
});
|
|
4954
|
-
}
|
|
4955
|
-
get pauseScope() {
|
|
4956
|
-
return new Fe({
|
|
4957
|
-
initialValue: this.preferences.pauseScope,
|
|
4958
|
-
effectiveValue: this.settings.pauseScope,
|
|
4959
|
-
isEffective: this.preferences.pauseScope != null,
|
|
4960
|
-
onChange: (e) => this.updatePreference("pauseScope", e ?? null),
|
|
4961
|
-
supportedValues: rn
|
|
4948
|
+
supportedRange: Ye.range,
|
|
4949
|
+
step: Ye.step
|
|
4962
4950
|
});
|
|
4963
4951
|
}
|
|
4964
|
-
|
|
4965
|
-
|
|
4966
|
-
|
|
4967
|
-
|
|
4968
|
-
|
|
4969
|
-
|
|
4970
|
-
|
|
4971
|
-
onChange: (e) => this.updatePreference("automaticPausesAtPageOrSpreadEnd", e ?? null)
|
|
4952
|
+
get autoPause() {
|
|
4953
|
+
return new Ve({
|
|
4954
|
+
initialValue: this.preferences.autoPause,
|
|
4955
|
+
effectiveValue: this.settings.autoPause,
|
|
4956
|
+
isEffective: this.preferences.autoPause != null,
|
|
4957
|
+
onChange: (e) => this.updatePreference("autoPause", e ?? null),
|
|
4958
|
+
supportedValues: nn
|
|
4972
4959
|
});
|
|
4973
4960
|
}
|
|
4974
4961
|
get rate() {
|
|
4975
|
-
return new
|
|
4962
|
+
return new Fe({
|
|
4976
4963
|
initialValue: this.preferences.rate,
|
|
4977
4964
|
effectiveValue: this.settings.rate,
|
|
4978
4965
|
isEffective: this.preferences.rate != null,
|
|
4979
4966
|
onChange: (e) => this.updatePreference("rate", e ?? null),
|
|
4980
|
-
supportedRange:
|
|
4981
|
-
step:
|
|
4967
|
+
supportedRange: et.range,
|
|
4968
|
+
step: et.step
|
|
4982
4969
|
});
|
|
4983
4970
|
}
|
|
4984
4971
|
get pitch() {
|
|
4985
|
-
return new
|
|
4972
|
+
return new Fe({
|
|
4986
4973
|
initialValue: this.preferences.pitch,
|
|
4987
4974
|
effectiveValue: this.settings.pitch,
|
|
4988
4975
|
isEffective: this.preferences.pitch != null,
|
|
4989
4976
|
onChange: (e) => this.updatePreference("pitch", e ?? null),
|
|
4990
|
-
supportedRange:
|
|
4991
|
-
step:
|
|
4977
|
+
supportedRange: tt.range,
|
|
4978
|
+
step: tt.step
|
|
4992
4979
|
});
|
|
4993
4980
|
}
|
|
4994
4981
|
get volume() {
|
|
4995
|
-
return new
|
|
4982
|
+
return new Fe({
|
|
4996
4983
|
initialValue: this.preferences.volume,
|
|
4997
4984
|
effectiveValue: this.settings.volume,
|
|
4998
4985
|
isEffective: this.preferences.volume != null,
|
|
4999
4986
|
onChange: (e) => this.updatePreference("volume", e ?? null),
|
|
5000
|
-
supportedRange:
|
|
5001
|
-
step:
|
|
4987
|
+
supportedRange: nt.range,
|
|
4988
|
+
step: nt.step
|
|
5002
4989
|
});
|
|
5003
4990
|
}
|
|
5004
4991
|
}
|
|
5005
|
-
const
|
|
5006
|
-
...
|
|
4992
|
+
const jr = ["audio", "figure", "image", "math", "table", "video"], Vr = [
|
|
4993
|
+
...jr,
|
|
5007
4994
|
"blockquote",
|
|
5008
4995
|
"cell",
|
|
5009
4996
|
"chapter",
|
|
@@ -5018,8 +5005,8 @@ const Vr = ["audio", "figure", "image", "math", "table", "video"], Fr = [
|
|
|
5018
5005
|
"rowheader",
|
|
5019
5006
|
"subtitle",
|
|
5020
5007
|
"tip"
|
|
5021
|
-
],
|
|
5022
|
-
...
|
|
5008
|
+
], El = [
|
|
5009
|
+
...Vr,
|
|
5023
5010
|
"abstract",
|
|
5024
5011
|
"acknowledgments",
|
|
5025
5012
|
"afterword",
|
|
@@ -5060,7 +5047,7 @@ const Vr = ["audio", "figure", "image", "math", "table", "video"], Fr = [
|
|
|
5060
5047
|
"separator",
|
|
5061
5048
|
"summary",
|
|
5062
5049
|
"term"
|
|
5063
|
-
],
|
|
5050
|
+
], Al = {
|
|
5064
5051
|
none: /* @__PURE__ */ new Set([
|
|
5065
5052
|
"aside",
|
|
5066
5053
|
"bibliography",
|
|
@@ -5124,11 +5111,11 @@ const Vr = ["audio", "figure", "image", "math", "table", "video"], Fr = [
|
|
|
5124
5111
|
most: /* @__PURE__ */ new Set(["landmarks", "loa", "loi", "lot", "lov", "toc"])
|
|
5125
5112
|
}, Ol = {
|
|
5126
5113
|
none: /* @__PURE__ */ new Set(),
|
|
5127
|
-
few: new Set(
|
|
5128
|
-
some: new Set(
|
|
5129
|
-
most: new Set(
|
|
5114
|
+
few: new Set(jr),
|
|
5115
|
+
some: new Set(Vr),
|
|
5116
|
+
most: new Set(El)
|
|
5130
5117
|
};
|
|
5131
|
-
class
|
|
5118
|
+
class Yn {
|
|
5132
5119
|
format;
|
|
5133
5120
|
inlineContextualization;
|
|
5134
5121
|
verbosity;
|
|
@@ -5136,37 +5123,36 @@ class er {
|
|
|
5136
5123
|
contextualize;
|
|
5137
5124
|
language;
|
|
5138
5125
|
pauseDuration;
|
|
5139
|
-
|
|
5140
|
-
automaticPausesAtPageOrSpreadEnd;
|
|
5126
|
+
autoPause;
|
|
5141
5127
|
rate;
|
|
5142
5128
|
pitch;
|
|
5143
5129
|
volume;
|
|
5144
5130
|
constructor(e, n) {
|
|
5145
|
-
this.format = e.format ?? n.format, this.inlineContextualization = e.inlineContextualization ?? n.inlineContextualization, this.verbosity = e.verbosity ?? n.verbosity, this.verbosity === "custom" ? (this.skip = e.skip ?? n.skip, this.contextualize = e.contextualize ?? n.contextualize) : (this.skip = [...
|
|
5131
|
+
this.format = e.format ?? n.format, this.inlineContextualization = e.inlineContextualization ?? n.inlineContextualization, this.verbosity = e.verbosity ?? n.verbosity, this.verbosity === "custom" ? (this.skip = e.skip ?? n.skip, this.contextualize = e.contextualize ?? n.contextualize) : (this.skip = [...Al[this.verbosity]], this.contextualize = [...Ol[this.verbosity]]), this.language = e.language ?? n.language, this.pauseDuration = e.pauseDuration ?? n.pauseDuration, this.autoPause = e.autoPause ?? n.autoPause, this.rate = e.rate ?? n.rate, this.pitch = e.pitch ?? n.pitch, this.volume = e.volume ?? n.volume;
|
|
5146
5132
|
}
|
|
5147
5133
|
}
|
|
5148
|
-
function
|
|
5134
|
+
function Le(t) {
|
|
5149
5135
|
return t.plain === "" && t.ssml === "" && t.language === "";
|
|
5150
5136
|
}
|
|
5151
|
-
function
|
|
5152
|
-
if (!t ||
|
|
5137
|
+
function Tl(t) {
|
|
5138
|
+
if (!t || Le(t)) return;
|
|
5153
5139
|
if (t.ssml === "" && t.language === "") return t.plain;
|
|
5154
5140
|
const e = { language: t.language };
|
|
5155
5141
|
return t.plain !== "" && (e.plain = t.plain), t.ssml !== "" && (e.ssml = t.ssml), e;
|
|
5156
5142
|
}
|
|
5157
|
-
function
|
|
5143
|
+
function Rl(t, e) {
|
|
5158
5144
|
if (t.lang !== e.lang || t.tag !== e.tag) return !1;
|
|
5159
5145
|
const n = Object.entries(t.attrs ?? {}), r = Object.entries(e.attrs ?? {});
|
|
5160
5146
|
return n.length !== r.length ? !1 : n.every(([i, s]) => e.attrs?.[i] === s);
|
|
5161
5147
|
}
|
|
5162
|
-
const
|
|
5163
|
-
function
|
|
5164
|
-
return
|
|
5148
|
+
const rt = (t) => t.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"), At = (t) => t.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """), Nl = /[\u00A0\u2007\u202F]/;
|
|
5149
|
+
function Il(t) {
|
|
5150
|
+
return Nl.test(t);
|
|
5165
5151
|
}
|
|
5166
|
-
function
|
|
5152
|
+
function Ne(t, e) {
|
|
5167
5153
|
let n = "", r = !1, i = !1;
|
|
5168
5154
|
for (const s of t)
|
|
5169
|
-
if (
|
|
5155
|
+
if (Il(s))
|
|
5170
5156
|
n += s, r = !1, i = !0;
|
|
5171
5157
|
else if (/\s/.test(s)) {
|
|
5172
5158
|
if (e && !i || r) continue;
|
|
@@ -5240,51 +5226,51 @@ const Ll = {
|
|
|
5240
5226
|
term: "Term.",
|
|
5241
5227
|
summary: "Summary.",
|
|
5242
5228
|
separator: "Separator."
|
|
5243
|
-
},
|
|
5244
|
-
function
|
|
5245
|
-
return t.replace(
|
|
5229
|
+
}, Pl = /<lang xml:lang="[^"]*">([\s\S]*?)<\/lang>/g;
|
|
5230
|
+
function Fr(t) {
|
|
5231
|
+
return t.replace(Pl, "$1");
|
|
5246
5232
|
}
|
|
5247
|
-
const
|
|
5248
|
-
function
|
|
5249
|
-
return t.replace(
|
|
5233
|
+
const ql = /\s*<readium:[a-zA-Z][\w-]*\s+id="[^"]*"\s*\/>\s*/g;
|
|
5234
|
+
function $l(t) {
|
|
5235
|
+
return t.replace(ql, (n, r, i) => {
|
|
5250
5236
|
const s = i.slice(r + n.length);
|
|
5251
|
-
return s.length === 0 ||
|
|
5237
|
+
return s.length === 0 || ot(s) ? "" : " ";
|
|
5252
5238
|
}).replace(/ {2,}/g, " ").trim();
|
|
5253
5239
|
}
|
|
5254
|
-
function
|
|
5240
|
+
function Dl(t) {
|
|
5255
5241
|
return t.includes("<");
|
|
5256
5242
|
}
|
|
5257
|
-
function
|
|
5243
|
+
function Hr(t) {
|
|
5258
5244
|
if (t === void 0) return;
|
|
5259
5245
|
if (typeof t == "string") return { plain: t };
|
|
5260
5246
|
const e = { language: t.language };
|
|
5261
5247
|
if (t.ssml) {
|
|
5262
|
-
const n =
|
|
5263
|
-
|
|
5248
|
+
const n = $l(t.ssml);
|
|
5249
|
+
Dl(n) && (e.ssml = n);
|
|
5264
5250
|
}
|
|
5265
5251
|
return t.plain && (e.plain = t.plain), e.plain || e.ssml ? e : void 0;
|
|
5266
5252
|
}
|
|
5267
5253
|
function sn(t) {
|
|
5268
5254
|
return t.replace(/<[^>]+>/g, "").replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&").replace(/ {2,}/g, " ").trim();
|
|
5269
5255
|
}
|
|
5270
|
-
const
|
|
5271
|
-
function
|
|
5272
|
-
return new RegExp(
|
|
5256
|
+
const Mr = /<lang xml:lang="([^"]*)">([\s\S]*?)<\/lang>/g;
|
|
5257
|
+
function Gr(t) {
|
|
5258
|
+
return new RegExp(Mr).test(t);
|
|
5273
5259
|
}
|
|
5274
|
-
function
|
|
5260
|
+
function er(t) {
|
|
5275
5261
|
return t.replace(/<[^>]+>/g, "").replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&").replace(/ {2,}/g, " ");
|
|
5276
5262
|
}
|
|
5277
|
-
const
|
|
5278
|
-
`\\s+|[${
|
|
5263
|
+
const _l = new RegExp(
|
|
5264
|
+
`\\s+|[${Dt}]+|[${oe}]+|[^\\s${Dt}${oe}]+`,
|
|
5279
5265
|
"gu"
|
|
5280
5266
|
);
|
|
5281
|
-
function
|
|
5267
|
+
function Ot(t) {
|
|
5282
5268
|
const e = [];
|
|
5283
|
-
for (const [n] of t.matchAll(
|
|
5284
|
-
/^\s/.test(n) ? e.push({ kind: "space" }) : lo(n) ? e.push({ kind: "open", text: n }) :
|
|
5269
|
+
for (const [n] of t.matchAll(_l))
|
|
5270
|
+
/^\s/.test(n) ? e.push({ kind: "space" }) : lo(n) ? e.push({ kind: "open", text: n }) : ot(n) ? e.push({ kind: "close", text: n }) : e.push({ kind: "word", text: n });
|
|
5285
5271
|
return e;
|
|
5286
5272
|
}
|
|
5287
|
-
function
|
|
5273
|
+
function Bl(t) {
|
|
5288
5274
|
let e = "", n = !1;
|
|
5289
5275
|
for (const r of t) {
|
|
5290
5276
|
if (r.kind === "space") {
|
|
@@ -5295,57 +5281,57 @@ function _l(t) {
|
|
|
5295
5281
|
}
|
|
5296
5282
|
return e;
|
|
5297
5283
|
}
|
|
5298
|
-
function
|
|
5284
|
+
function Ul(t) {
|
|
5299
5285
|
let e = t.length;
|
|
5300
5286
|
for (; e > 0 && (t[e - 1].kind === "space" || t[e - 1].kind === "open"); ) e--;
|
|
5301
5287
|
return t.slice(e).some((n) => n.kind === "open") ? t.splice(e) : [];
|
|
5302
5288
|
}
|
|
5303
|
-
function
|
|
5289
|
+
function zl(t) {
|
|
5304
5290
|
let e = 0;
|
|
5305
5291
|
for (; e < t.length && (t[e].kind === "space" || t[e].kind === "close"); ) e++;
|
|
5306
5292
|
return t.slice(0, e).some((n) => n.kind === "close") ? t.splice(0, e) : [];
|
|
5307
5293
|
}
|
|
5308
|
-
function
|
|
5294
|
+
function Wr(t, e) {
|
|
5309
5295
|
const n = [];
|
|
5310
5296
|
let r = 0;
|
|
5311
|
-
for (const s of t.matchAll(
|
|
5297
|
+
for (const s of t.matchAll(Mr))
|
|
5312
5298
|
n.push({
|
|
5313
|
-
tokens:
|
|
5299
|
+
tokens: Ot(er(t.slice(r, s.index))),
|
|
5314
5300
|
language: e,
|
|
5315
5301
|
tagged: !1
|
|
5316
|
-
}), n.push({ tokens:
|
|
5302
|
+
}), n.push({ tokens: Ot(sn(s[2])), language: s[1], tagged: !0 }), r = s.index + s[0].length;
|
|
5317
5303
|
n.push({
|
|
5318
|
-
tokens:
|
|
5304
|
+
tokens: Ot(er(t.slice(r))),
|
|
5319
5305
|
language: e,
|
|
5320
5306
|
tagged: !1
|
|
5321
5307
|
});
|
|
5322
5308
|
for (let s = 0; s < n.length - 1; s++)
|
|
5323
|
-
!n[s].tagged && n[s + 1].tagged ? n[s + 1].tokens.unshift(...
|
|
5309
|
+
!n[s].tagged && n[s + 1].tagged ? n[s + 1].tokens.unshift(...Ul(n[s].tokens)) : n[s].tagged && !n[s + 1].tagged && n[s].tokens.push(...zl(n[s + 1].tokens));
|
|
5324
5310
|
const i = [];
|
|
5325
5311
|
for (const s of n) {
|
|
5326
|
-
const o =
|
|
5312
|
+
const o = Bl(s.tokens);
|
|
5327
5313
|
o && i.push({ plain: o, language: s.language });
|
|
5328
5314
|
}
|
|
5329
5315
|
return i;
|
|
5330
5316
|
}
|
|
5331
|
-
const
|
|
5332
|
-
function zl(t) {
|
|
5333
|
-
return new RegExp(Jr).test(t);
|
|
5334
|
-
}
|
|
5317
|
+
const Kr = /<readium:[a-zA-Z][\w-]*\s+id="([^"]*)"\s*\/>/g;
|
|
5335
5318
|
function jl(t) {
|
|
5319
|
+
return new RegExp(Kr).test(t);
|
|
5320
|
+
}
|
|
5321
|
+
function Vl(t) {
|
|
5336
5322
|
const e = [];
|
|
5337
5323
|
let n = 0;
|
|
5338
|
-
for (const i of t.matchAll(
|
|
5324
|
+
for (const i of t.matchAll(Kr)) {
|
|
5339
5325
|
const s = t.slice(n, i.index).trim();
|
|
5340
5326
|
s && e.push({ ssml: s }), e.push({ placeholderId: i[1] }), n = i.index + i[0].length;
|
|
5341
5327
|
}
|
|
5342
5328
|
const r = t.slice(n).trim();
|
|
5343
5329
|
return r && e.push({ ssml: r }), e;
|
|
5344
5330
|
}
|
|
5345
|
-
function
|
|
5331
|
+
function it(t) {
|
|
5346
5332
|
return typeof t == "object";
|
|
5347
5333
|
}
|
|
5348
|
-
const
|
|
5334
|
+
const Sc = [
|
|
5349
5335
|
// Ancillary content
|
|
5350
5336
|
"aside",
|
|
5351
5337
|
"bibliography",
|
|
@@ -5362,7 +5348,7 @@ const wc = [
|
|
|
5362
5348
|
"lov",
|
|
5363
5349
|
"pagebreak",
|
|
5364
5350
|
"toc"
|
|
5365
|
-
],
|
|
5351
|
+
], Fl = [
|
|
5366
5352
|
// Headings
|
|
5367
5353
|
"heading1",
|
|
5368
5354
|
"heading2",
|
|
@@ -5420,30 +5406,33 @@ const wc = [
|
|
|
5420
5406
|
"section",
|
|
5421
5407
|
"summary",
|
|
5422
5408
|
"tip"
|
|
5423
|
-
],
|
|
5409
|
+
], Hl = new Set(Fl);
|
|
5424
5410
|
function Ie(t, e) {
|
|
5425
5411
|
return typeof t == "function" ? t(e) : t;
|
|
5426
5412
|
}
|
|
5427
|
-
function
|
|
5428
|
-
return e === "ssml" ? { ssml:
|
|
5413
|
+
function le(t, e) {
|
|
5414
|
+
return e === "ssml" ? { ssml: rt(t) } : { plain: t };
|
|
5429
5415
|
}
|
|
5430
|
-
function
|
|
5416
|
+
function ce(t, e, n, r) {
|
|
5431
5417
|
t.push(...r);
|
|
5432
5418
|
for (let i = 0; i < r.length; i++) e.push(n);
|
|
5433
5419
|
}
|
|
5434
|
-
function
|
|
5420
|
+
function Jr(t, e, n, r, i, s, o) {
|
|
5421
|
+
o ? (i.some((a) => n.blockStarts.has(a)) && n.blockStarts.add(o), ce(t, e, s[0] ?? r, [o])) : (t.push(...i), e.push(...s));
|
|
5422
|
+
}
|
|
5423
|
+
function tr(t, e, n, r, i, s, o) {
|
|
5435
5424
|
if (!r.contextualize.has(i)) return;
|
|
5436
5425
|
const a = r.announcements[i];
|
|
5437
5426
|
if (a !== void 0) {
|
|
5438
|
-
if (
|
|
5427
|
+
if (it(a)) {
|
|
5439
5428
|
const c = s === "before" ? a.start : a.end;
|
|
5440
|
-
|
|
5429
|
+
ce(t, e, n, [le(Ie(c, o), r.format)]);
|
|
5441
5430
|
return;
|
|
5442
5431
|
}
|
|
5443
|
-
s === "before" &&
|
|
5432
|
+
s === "before" && ce(t, e, n, [le(Ie(a, o), r.format)]);
|
|
5444
5433
|
}
|
|
5445
5434
|
}
|
|
5446
|
-
function
|
|
5435
|
+
function nr(t, e) {
|
|
5447
5436
|
return e.size > 0 && t.some((n) => e.has(n));
|
|
5448
5437
|
}
|
|
5449
5438
|
function an(t, e) {
|
|
@@ -5459,99 +5448,99 @@ function an(t, e) {
|
|
|
5459
5448
|
if (i.length === 0) return;
|
|
5460
5449
|
let s = "";
|
|
5461
5450
|
for (const a of i)
|
|
5462
|
-
a.length === 1 && s.endsWith(a) || (s && !
|
|
5451
|
+
a.length === 1 && s.endsWith(a) || (s && !ot(a) && (s += " "), s += a);
|
|
5463
5452
|
const o = e === "ssml" ? { ssml: s } : { plain: s };
|
|
5464
5453
|
return n && (o.language = n), o;
|
|
5465
5454
|
}
|
|
5466
|
-
function
|
|
5467
|
-
const n =
|
|
5455
|
+
function Ml(t, e) {
|
|
5456
|
+
const n = Hr(t.text), r = n ? Qr(n, e.format, e.language) : [];
|
|
5468
5457
|
if (!e.contextualize.has("pagebreak")) return r;
|
|
5469
5458
|
const i = e.announcements.pagebreak;
|
|
5470
5459
|
if (i === void 0) return r;
|
|
5471
|
-
const s =
|
|
5460
|
+
const s = le(Ie(it(i) ? i.start : i), e.format);
|
|
5472
5461
|
if (r.length === 0) return [s];
|
|
5473
5462
|
const o = an([s, ...r], e.format);
|
|
5474
5463
|
return o ? (o.plain !== void 0 && (o.plain += "."), o.ssml !== void 0 && (o.ssml += "."), [o]) : [s, ...r];
|
|
5475
5464
|
}
|
|
5476
5465
|
function Qr(t, e, n) {
|
|
5477
|
-
if (e === "plain" && n !== "block-level" && n !== "none" && t.ssml &&
|
|
5478
|
-
return
|
|
5466
|
+
if (e === "plain" && n !== "block-level" && n !== "none" && t.ssml && Gr(t.ssml))
|
|
5467
|
+
return Wr(t.ssml, t.language).map((i) => {
|
|
5479
5468
|
const s = { plain: i.plain };
|
|
5480
5469
|
return i.language && (s.language = i.language), s;
|
|
5481
5470
|
});
|
|
5482
5471
|
const r = {};
|
|
5483
|
-
return t.language && (r.language = t.language), e === "ssml" ? r.ssml = t.ssml ??
|
|
5472
|
+
return t.language && (r.language = t.language), e === "ssml" ? r.ssml = t.ssml ?? rt(t.plain ?? "") : r.plain = t.plain ?? sn(t.ssml ?? ""), (n === "block-level" || n === "none") && (r.ssml && (r.ssml = Fr(r.ssml)), n === "none" && delete r.language), [r];
|
|
5484
5473
|
}
|
|
5485
|
-
function
|
|
5474
|
+
function Gl(t, e, n, r, i, s) {
|
|
5486
5475
|
const o = typeof t.text == "object" ? t.text.language : void 0, a = new Map((t.children ?? []).map((u) => [u.id, u])), c = [], l = [];
|
|
5487
|
-
for (const u of
|
|
5476
|
+
for (const u of Vl(e)) {
|
|
5488
5477
|
if (u.placeholderId !== void 0) {
|
|
5489
5478
|
const f = a.get(u.placeholderId);
|
|
5490
5479
|
f && Xr(f, c, l, i, s);
|
|
5491
5480
|
continue;
|
|
5492
5481
|
}
|
|
5493
5482
|
if (!u.ssml) continue;
|
|
5494
|
-
if (i.format === "plain" && i.language !== "block-level" && i.language !== "none" &&
|
|
5495
|
-
for (const f of
|
|
5483
|
+
if (i.format === "plain" && i.language !== "block-level" && i.language !== "none" && Gr(u.ssml)) {
|
|
5484
|
+
for (const f of Wr(u.ssml, o)) {
|
|
5496
5485
|
const y = { plain: f.plain };
|
|
5497
5486
|
f.language && (y.language = f.language), c.push(y), l.push(t);
|
|
5498
5487
|
}
|
|
5499
5488
|
continue;
|
|
5500
5489
|
}
|
|
5501
5490
|
const g = {};
|
|
5502
|
-
o && (g.language = o), i.format === "ssml" ? g.ssml = u.ssml : g.plain = sn(u.ssml), (i.language === "block-level" || i.language === "none") && (g.ssml && (g.ssml =
|
|
5491
|
+
o && (g.language = o), i.format === "ssml" ? g.ssml = u.ssml : g.plain = sn(u.ssml), (i.language === "block-level" || i.language === "none") && (g.ssml && (g.ssml = Fr(g.ssml)), i.language === "none" && delete g.language), c.push(g), l.push(t);
|
|
5503
5492
|
}
|
|
5504
5493
|
const d = c.length > 1 ? an(c, i.format) : void 0;
|
|
5505
|
-
|
|
5494
|
+
Jr(n, r, i, t, c, l, d);
|
|
5506
5495
|
}
|
|
5507
5496
|
function Xr(t, e, n, r, i) {
|
|
5508
5497
|
const s = t.role ?? [];
|
|
5509
|
-
if (
|
|
5510
|
-
const o = s.some((u) =>
|
|
5498
|
+
if (nr(s, r.skip)) return;
|
|
5499
|
+
const o = s.some((u) => Hl.has(u)), a = o && !i, c = e.length, l = s.includes("footnote"), d = s.filter(
|
|
5511
5500
|
(u) => !(l && (u === "footnote" || u === "aside")) && u !== "pagebreak"
|
|
5512
5501
|
);
|
|
5513
5502
|
for (const u of d)
|
|
5514
|
-
|
|
5503
|
+
tr(e, n, t, r, u, "before");
|
|
5515
5504
|
if (s.includes("noteref"))
|
|
5516
5505
|
for (const u of t.children ?? []) {
|
|
5517
5506
|
const g = u.role ?? [];
|
|
5518
|
-
if (!
|
|
5507
|
+
if (!nr(g, r.skip))
|
|
5519
5508
|
if (g.includes("footnote")) {
|
|
5520
5509
|
const f = [], y = [];
|
|
5521
|
-
|
|
5510
|
+
ae([u], f, y, r, i);
|
|
5522
5511
|
const p = r.contextualize.has("footnote") ? r.announcements.footnote : void 0, m = [], w = [];
|
|
5523
5512
|
if (p !== void 0) {
|
|
5524
|
-
const C =
|
|
5525
|
-
m.push(
|
|
5513
|
+
const C = it(p) ? p.start : p;
|
|
5514
|
+
m.push(le(Ie(C), r.format)), w.push(u);
|
|
5526
5515
|
}
|
|
5527
|
-
m.push(...f), w.push(...y), p !== void 0 &&
|
|
5516
|
+
m.push(...f), w.push(...y), p !== void 0 && it(p) && (m.push(le(Ie(p.end), r.format)), w.push(u));
|
|
5528
5517
|
const E = p !== void 0 && m.length > 1 ? an(m, r.format) : void 0;
|
|
5529
|
-
|
|
5518
|
+
Jr(e, n, r, u, m, w, E);
|
|
5530
5519
|
} else
|
|
5531
|
-
|
|
5520
|
+
ae([u], e, n, r, i);
|
|
5532
5521
|
}
|
|
5533
5522
|
else {
|
|
5534
5523
|
const u = typeof t.text == "object" ? t.text.ssml : void 0;
|
|
5535
|
-
if (r.inlineContextualization && u &&
|
|
5536
|
-
|
|
5524
|
+
if (r.inlineContextualization && u && jl(u))
|
|
5525
|
+
Gl(t, u, e, n, r, i);
|
|
5537
5526
|
else if (s.includes("pagebreak")) {
|
|
5538
|
-
if (
|
|
5527
|
+
if (ce(e, n, t, Ml(t, r)), t.children) {
|
|
5539
5528
|
const g = i || o && e.length > c;
|
|
5540
|
-
|
|
5529
|
+
ae(t.children, e, n, r, g);
|
|
5541
5530
|
}
|
|
5542
5531
|
} else {
|
|
5543
|
-
const g =
|
|
5544
|
-
if (g &&
|
|
5532
|
+
const g = Hr(t.text);
|
|
5533
|
+
if (g && ce(e, n, t, Qr(g, r.format, r.language)), t.children) {
|
|
5545
5534
|
const f = i || o && e.length > c;
|
|
5546
|
-
|
|
5535
|
+
ae(t.children, e, n, r, f);
|
|
5547
5536
|
}
|
|
5548
5537
|
}
|
|
5549
5538
|
}
|
|
5550
|
-
a && e.length > c && (e[c]
|
|
5539
|
+
a && e.length > c && r.blockStarts.add(e[c]), t.description !== void 0 && ce(e, n, t, [le(t.description, r.format)]);
|
|
5551
5540
|
for (const u of d)
|
|
5552
|
-
|
|
5541
|
+
tr(e, n, t, r, u, "after");
|
|
5553
5542
|
}
|
|
5554
|
-
function
|
|
5543
|
+
function ae(t, e, n, r, i) {
|
|
5555
5544
|
t.forEach((s, o) => Xr(s, e, n, r, o === 0 ? i : !1));
|
|
5556
5545
|
}
|
|
5557
5546
|
function Zr(t) {
|
|
@@ -5561,18 +5550,21 @@ function Zr(t) {
|
|
|
5561
5550
|
contextualize: new Set(t.contextualize ?? []),
|
|
5562
5551
|
format: t.format ?? "plain",
|
|
5563
5552
|
inlineContextualization: t.inlineContextualization ?? !1,
|
|
5564
|
-
language: t.language
|
|
5553
|
+
language: t.language,
|
|
5554
|
+
blockStarts: /* @__PURE__ */ new Set()
|
|
5565
5555
|
};
|
|
5566
5556
|
}
|
|
5567
|
-
function
|
|
5557
|
+
function xc(t, e) {
|
|
5568
5558
|
const n = [];
|
|
5569
|
-
return
|
|
5559
|
+
return ae(t, n, [], Zr(e), !1), n;
|
|
5570
5560
|
}
|
|
5571
|
-
function
|
|
5572
|
-
const n = [], r = [];
|
|
5573
|
-
|
|
5561
|
+
function Wl(t, e) {
|
|
5562
|
+
const n = [], r = [], i = Zr(e);
|
|
5563
|
+
ae(t, n, r, i, !1);
|
|
5564
|
+
const s = n.map((o) => i.blockStarts.has(o));
|
|
5565
|
+
return { utterances: n, sources: r, blockStarts: s };
|
|
5574
5566
|
}
|
|
5575
|
-
class
|
|
5567
|
+
class kc {
|
|
5576
5568
|
engine;
|
|
5577
5569
|
contentQueue = [];
|
|
5578
5570
|
eventListeners = /* @__PURE__ */ new Map();
|
|
@@ -5591,19 +5583,24 @@ class xc {
|
|
|
5591
5583
|
// `loadGndContent()`. Its absence is what makes submitPreferences()'s
|
|
5592
5584
|
// extraction-affecting fields (format, verbosity, skip, contextualize,
|
|
5593
5585
|
// language) a no-op on content loaded via loadContent() — prosody
|
|
5594
|
-
// fields (rate/pitch/volume/pauseDuration/
|
|
5586
|
+
// fields (rate/pitch/volume/pauseDuration/autoPause) still apply.
|
|
5595
5587
|
source;
|
|
5596
5588
|
// Parallel to `contentQueue`, from the extraction that produced it — lets
|
|
5597
5589
|
// reextract() find where to resume after a reload (see resolveResumeIndex).
|
|
5598
5590
|
contentSources = [];
|
|
5591
|
+
// Parallel to `contentQueue`: whether each utterance begins a new
|
|
5592
|
+
// block-level element. loadContent() content has no boundaries of its own.
|
|
5593
|
+
contentBlockStarts = [];
|
|
5599
5594
|
// Set by setContentQueue() when a reload should resume mid-queue rather
|
|
5600
5595
|
// than at the start; consumed once by the engine's "ready" handler.
|
|
5601
5596
|
pendingResumeIndex = null;
|
|
5602
5597
|
pendingResumeState = null;
|
|
5598
|
+
// Index to speak() on the next play() when autoPause has stopped playback between utterances.
|
|
5599
|
+
pendingAutoPauseIndex = null;
|
|
5603
5600
|
constructor(e, n = {}) {
|
|
5604
|
-
this.engine = e, this._defaults = new kl(n.defaults), this._preferences = new
|
|
5601
|
+
this.engine = e, this._defaults = new kl(n.defaults), this._preferences = new Re(n.preferences), this._settings = new Yn(this._preferences, this._defaults), this.setupEngineListeners(), this.applyEngineParameters(), this.initializeEngine();
|
|
5605
5602
|
}
|
|
5606
|
-
// Unlike pauseDuration/
|
|
5603
|
+
// Unlike pauseDuration/autoPause (read live off settings), the engine owns rate/pitch/volume and must be pushed.
|
|
5607
5604
|
applyEngineParameters() {
|
|
5608
5605
|
this.engine.setRate(this._settings.rate), this.engine.setPitch(this._settings.pitch), this.engine.setVolume(this._settings.volume);
|
|
5609
5606
|
}
|
|
@@ -5620,10 +5617,10 @@ class xc {
|
|
|
5620
5617
|
}), this.engine.on("end", () => {
|
|
5621
5618
|
const e = this.engine.getCurrentUtteranceIndex(), n = this.engine.getUtteranceCount();
|
|
5622
5619
|
if (e < n - 1) {
|
|
5623
|
-
const
|
|
5624
|
-
this.pendingAdvanceTimeout = setTimeout(() => {
|
|
5620
|
+
const r = this._settings.autoPause === "utterance" || this.contentBlockStarts[e + 1] === !0;
|
|
5621
|
+
this._settings.autoPause !== "none" && r ? (this.pendingAutoPauseIndex = e + 1, this.setNavigatorState("paused"), this.emitEvent({ type: "pause" })) : this.pendingAdvanceTimeout = setTimeout(() => {
|
|
5625
5622
|
this.pendingAdvanceTimeout = null, this.engine.speak(e + 1);
|
|
5626
|
-
},
|
|
5623
|
+
}, this._settings.pauseDuration);
|
|
5627
5624
|
} else
|
|
5628
5625
|
this.setNavigatorState("idle");
|
|
5629
5626
|
this.emitEvent({ type: "end" });
|
|
@@ -5689,23 +5686,23 @@ class xc {
|
|
|
5689
5686
|
this.source = e, this.reextract();
|
|
5690
5687
|
}
|
|
5691
5688
|
setContentQueue(e, n = null, r = null) {
|
|
5692
|
-
this.clearPendingAdvance(), (this.navigatorState === "playing" || this.navigatorState === "paused") && this.engine.stop();
|
|
5689
|
+
this.clearPendingAdvance(), this.pendingAutoPauseIndex = null, (this.navigatorState === "playing" || this.navigatorState === "paused") && this.engine.stop();
|
|
5693
5690
|
const i = Array.isArray(e) ? e : [e];
|
|
5694
5691
|
this.contentQueue = [...i], this.pendingResumeIndex = n, this.pendingResumeState = r, this.setNavigatorState("loading"), this.emitEvent({ type: "loading" }), this.engine.loadUtterances(i), this.emitContentChangeEvent({ content: i });
|
|
5695
5692
|
}
|
|
5696
5693
|
// Re-runs extraction from `this.source`, resuming near the old position if playback was underway.
|
|
5697
5694
|
reextract() {
|
|
5698
5695
|
if (!this.source) return;
|
|
5699
|
-
const e = this.navigatorState === "playing" || this.navigatorState === "paused" ? this.navigatorState : null, n = this.contentSources, r = this.getCurrentUtteranceIndex(), { utterances: i, sources: s } =
|
|
5696
|
+
const e = this.navigatorState === "playing" || this.navigatorState === "paused" ? this.navigatorState : null, n = this.contentSources, r = this.getCurrentUtteranceIndex(), { utterances: i, sources: s, blockStarts: o } = Wl(this.source, {
|
|
5700
5697
|
format: this._settings.format,
|
|
5701
5698
|
inlineContextualization: this._settings.inlineContextualization,
|
|
5702
5699
|
skip: this._settings.skip,
|
|
5703
5700
|
contextualize: this._settings.contextualize,
|
|
5704
5701
|
language: this._settings.language
|
|
5705
5702
|
});
|
|
5706
|
-
this.contentSources = s;
|
|
5707
|
-
const
|
|
5708
|
-
this.setContentQueue(i,
|
|
5703
|
+
this.contentSources = s, this.contentBlockStarts = o;
|
|
5704
|
+
const a = e ? this.resolveResumeIndex(n, r, s) : null;
|
|
5705
|
+
this.setContentQueue(i, a, e);
|
|
5709
5706
|
}
|
|
5710
5707
|
// Nearest node at or before oldIndex that's still present in newSources.
|
|
5711
5708
|
resolveResumeIndex(e, n, r) {
|
|
@@ -5730,29 +5727,33 @@ class xc {
|
|
|
5730
5727
|
// Playback Control - Navigator coordinates engine operations
|
|
5731
5728
|
play() {
|
|
5732
5729
|
if (this.navigatorState === "paused")
|
|
5733
|
-
this.setNavigatorState("playing"), this.
|
|
5730
|
+
if (this.setNavigatorState("playing"), this.pendingAutoPauseIndex !== null) {
|
|
5731
|
+
const e = this.pendingAutoPauseIndex;
|
|
5732
|
+
this.pendingAutoPauseIndex = null, this.engine.speak(e);
|
|
5733
|
+
} else
|
|
5734
|
+
this.engine.resume();
|
|
5734
5735
|
else if (this.navigatorState === "ready" || this.navigatorState === "idle")
|
|
5735
5736
|
this.setNavigatorState("playing"), this.engine.speak();
|
|
5736
5737
|
else if (this.navigatorState === "playing")
|
|
5737
5738
|
return;
|
|
5738
5739
|
}
|
|
5739
5740
|
pause() {
|
|
5740
|
-
this.navigatorState === "playing" && (this.clearPendingAdvance(), this.setNavigatorState("paused"), this.engine.pause());
|
|
5741
|
+
this.navigatorState === "playing" && (this.clearPendingAdvance(), this.pendingAutoPauseIndex = null, this.setNavigatorState("paused"), this.engine.pause());
|
|
5741
5742
|
}
|
|
5742
5743
|
stop() {
|
|
5743
|
-
this.clearPendingAdvance(), this.setNavigatorState("idle"), this.engine.stop(), this.emitEvent({ type: "stop" });
|
|
5744
|
+
this.clearPendingAdvance(), this.pendingAutoPauseIndex = null, this.setNavigatorState("idle"), this.engine.stop(), this.emitEvent({ type: "stop" });
|
|
5744
5745
|
}
|
|
5745
5746
|
clearPendingAdvance() {
|
|
5746
5747
|
this.pendingAdvanceTimeout !== null && (clearTimeout(this.pendingAdvanceTimeout), this.pendingAdvanceTimeout = null);
|
|
5747
5748
|
}
|
|
5748
5749
|
skipToPosition(e, n = !1) {
|
|
5749
5750
|
const r = this.getCurrentUtteranceIndex();
|
|
5750
|
-
return e < 0 || e >= this.contentQueue.length ? !1 : (e === r || (this.clearPendingAdvance(), this.navigatorState === "paused" && !n ? this.engine.setCurrentUtteranceIndex(e, (i) => {
|
|
5751
|
+
return e < 0 || e >= this.contentQueue.length ? !1 : (e === r || (this.clearPendingAdvance(), this.navigatorState === "paused" && !n ? (this.pendingAutoPauseIndex !== null && (this.pendingAutoPauseIndex = e), this.engine.setCurrentUtteranceIndex(e, (i) => {
|
|
5751
5752
|
i && this.emitEvent({
|
|
5752
5753
|
type: "skip",
|
|
5753
5754
|
detail: { position: e }
|
|
5754
5755
|
});
|
|
5755
|
-
}) : (this.setNavigatorState("playing"), this.engine.speak(e))), !0);
|
|
5756
|
+
})) : (this.pendingAutoPauseIndex = null, this.setNavigatorState("playing"), this.engine.speak(e))), !0);
|
|
5756
5757
|
}
|
|
5757
5758
|
// Navigation - Navigator coordinates with proper state management
|
|
5758
5759
|
next(e = !1) {
|
|
@@ -5793,7 +5794,7 @@ class xc {
|
|
|
5793
5794
|
return this._settings;
|
|
5794
5795
|
}
|
|
5795
5796
|
get preferencesEditor() {
|
|
5796
|
-
return this._preferencesEditor === null && (this._preferencesEditor = new
|
|
5797
|
+
return this._preferencesEditor === null && (this._preferencesEditor = new Zn(this._preferences, this.settings)), this._preferencesEditor;
|
|
5797
5798
|
}
|
|
5798
5799
|
submitPreferences(e) {
|
|
5799
5800
|
!this.source && Qn.some((n) => e[n] !== void 0) && console.warn(
|
|
@@ -5802,7 +5803,7 @@ class xc {
|
|
|
5802
5803
|
}
|
|
5803
5804
|
applyPreferences() {
|
|
5804
5805
|
const e = this._settings;
|
|
5805
|
-
this._settings = new
|
|
5806
|
+
this._settings = new Yn(this._preferences, this._defaults), this.applyEngineParameters(), this._preferencesEditor !== null && (this._preferencesEditor = new Zn(this._preferences, this._settings)), Qn.some((n) => !this.sameSettingValue(e[n], this._settings[n])) && this.reextract();
|
|
5806
5807
|
}
|
|
5807
5808
|
// Arrays (skip/contextualize) compare as sets, not by reference.
|
|
5808
5809
|
sameSettingValue(e, n) {
|
|
@@ -5812,14 +5813,14 @@ class xc {
|
|
|
5812
5813
|
this.clearPendingAdvance(), this.eventListeners.clear(), await this.engine.destroy();
|
|
5813
5814
|
}
|
|
5814
5815
|
}
|
|
5815
|
-
const
|
|
5816
|
+
const Kl = [
|
|
5816
5817
|
"heading1",
|
|
5817
5818
|
"heading2",
|
|
5818
5819
|
"heading3",
|
|
5819
5820
|
"heading4",
|
|
5820
5821
|
"heading5",
|
|
5821
5822
|
"heading6"
|
|
5822
|
-
],
|
|
5823
|
+
], rr = {
|
|
5823
5824
|
"doc-abstract": "abstract",
|
|
5824
5825
|
"doc-acknowledgments": "acknowledgments",
|
|
5825
5826
|
"doc-afterword": "afterword",
|
|
@@ -5887,7 +5888,7 @@ const Wl = [
|
|
|
5887
5888
|
term: "term",
|
|
5888
5889
|
"doc-tip": "tip",
|
|
5889
5890
|
"doc-toc": "toc"
|
|
5890
|
-
},
|
|
5891
|
+
}, Jl = {
|
|
5891
5892
|
abstract: "abstract",
|
|
5892
5893
|
acknowledgments: "acknowledgments",
|
|
5893
5894
|
afterword: "afterword",
|
|
@@ -5947,7 +5948,7 @@ const Wl = [
|
|
|
5947
5948
|
glossterm: "term",
|
|
5948
5949
|
tip: "tip",
|
|
5949
5950
|
toc: "toc"
|
|
5950
|
-
},
|
|
5951
|
+
}, Ql = {
|
|
5951
5952
|
article: "article",
|
|
5952
5953
|
aside: "aside",
|
|
5953
5954
|
audio: "audio",
|
|
@@ -5984,7 +5985,7 @@ const Wl = [
|
|
|
5984
5985
|
video: "video",
|
|
5985
5986
|
svg: "image"
|
|
5986
5987
|
};
|
|
5987
|
-
function
|
|
5988
|
+
function Tt(t) {
|
|
5988
5989
|
const e = [], n = (c) => {
|
|
5989
5990
|
e.includes(c) || e.push(c);
|
|
5990
5991
|
}, r = [];
|
|
@@ -5995,12 +5996,12 @@ function Rt(t) {
|
|
|
5995
5996
|
if ((c === "presentation" || c === "none") && (i = !0), c === "heading") {
|
|
5996
5997
|
let l = 2;
|
|
5997
5998
|
const d = parseInt(t.getAttribute("aria-level") ?? "", 10);
|
|
5998
|
-
Number.isFinite(d) && d >= 1 && (l = Math.min(d, 6)), r.push(
|
|
5999
|
-
} else
|
|
5999
|
+
Number.isFinite(d) && d >= 1 && (l = Math.min(d, 6)), r.push(Kl[l - 1]);
|
|
6000
|
+
} else rr[c] && r.push(rr[c]);
|
|
6000
6001
|
const o = t.getAttribute("epub:type");
|
|
6001
6002
|
if (o)
|
|
6002
6003
|
for (const c of o.split(/\s+/).filter(Boolean)) {
|
|
6003
|
-
const l =
|
|
6004
|
+
const l = Jl[c];
|
|
6004
6005
|
l && r.push(l);
|
|
6005
6006
|
}
|
|
6006
6007
|
if (i)
|
|
@@ -6020,16 +6021,16 @@ function Rt(t) {
|
|
|
6020
6021
|
n("cell");
|
|
6021
6022
|
}
|
|
6022
6023
|
else {
|
|
6023
|
-
const c =
|
|
6024
|
+
const c = Ql[a];
|
|
6024
6025
|
c && n(c);
|
|
6025
6026
|
}
|
|
6026
6027
|
for (const c of r) n(c);
|
|
6027
6028
|
return e;
|
|
6028
6029
|
}
|
|
6029
|
-
function
|
|
6030
|
+
function ir(t) {
|
|
6030
6031
|
return !!(t.getAttribute("aria-hidden") === "true" || t.hasAttribute("hidden"));
|
|
6031
6032
|
}
|
|
6032
|
-
function
|
|
6033
|
+
function Ft(t) {
|
|
6033
6034
|
let e = "";
|
|
6034
6035
|
const n = (r) => {
|
|
6035
6036
|
r.nodeType === 3 && (e += r.nodeValue ?? "");
|
|
@@ -6037,11 +6038,11 @@ function Ht(t) {
|
|
|
6037
6038
|
};
|
|
6038
6039
|
return n(t), e;
|
|
6039
6040
|
}
|
|
6040
|
-
function
|
|
6041
|
-
return
|
|
6041
|
+
function We(t) {
|
|
6042
|
+
return Ne(Ft(t), !0).trim();
|
|
6042
6043
|
}
|
|
6043
|
-
function
|
|
6044
|
-
if (
|
|
6044
|
+
function Xl(t) {
|
|
6045
|
+
if (ir(t))
|
|
6045
6046
|
return [null, !1];
|
|
6046
6047
|
const e = (t.getAttribute("aria-labelledby") ?? "").trim();
|
|
6047
6048
|
if (e) {
|
|
@@ -6049,11 +6050,11 @@ function Ql(t) {
|
|
|
6049
6050
|
if (a.length > 0) {
|
|
6050
6051
|
let c = "";
|
|
6051
6052
|
a.forEach((d, u) => {
|
|
6052
|
-
if (
|
|
6053
|
+
if (ir(d)) return;
|
|
6053
6054
|
const g = d.getAttribute("aria-label");
|
|
6054
|
-
c += g ||
|
|
6055
|
+
c += g || Ft(d), u < a.length - 1 && (c += " ");
|
|
6055
6056
|
});
|
|
6056
|
-
const l =
|
|
6057
|
+
const l = Ne(c, !0).trim();
|
|
6057
6058
|
if (l !== "")
|
|
6058
6059
|
return [{ language: "", plain: l }, !0];
|
|
6059
6060
|
}
|
|
@@ -6065,7 +6066,7 @@ function Ql(t) {
|
|
|
6065
6066
|
if (r) {
|
|
6066
6067
|
const o = [...new Set(r.split(/\s+/).filter(Boolean))].map((a) => t.ownerDocument.getElementById(a)).filter((a) => a !== null);
|
|
6067
6068
|
if (o.length > 0) {
|
|
6068
|
-
const a = o.map((l) =>
|
|
6069
|
+
const a = o.map((l) => Ft(l)).join(" "), c = Ne(a, !0).trim();
|
|
6069
6070
|
if (c !== "")
|
|
6070
6071
|
return [{ language: "", plain: c }, !0];
|
|
6071
6072
|
}
|
|
@@ -6079,7 +6080,7 @@ function Ql(t) {
|
|
|
6079
6080
|
} else if (i === "svg") {
|
|
6080
6081
|
const s = t.querySelector(":scope > title");
|
|
6081
6082
|
if (s) {
|
|
6082
|
-
const o =
|
|
6083
|
+
const o = We(s);
|
|
6083
6084
|
if (o) return [{ language: "", plain: o }, !0];
|
|
6084
6085
|
}
|
|
6085
6086
|
} else if (i === "math") {
|
|
@@ -6088,17 +6089,17 @@ function Ql(t) {
|
|
|
6088
6089
|
}
|
|
6089
6090
|
return [null, !0];
|
|
6090
6091
|
}
|
|
6091
|
-
const
|
|
6092
|
+
const Zl = {
|
|
6092
6093
|
em: ["emphasis"],
|
|
6093
6094
|
b: ["emphasis"],
|
|
6094
6095
|
i: ["emphasis", { level: "reduced" }],
|
|
6095
6096
|
strong: ["emphasis", { level: "strong" }],
|
|
6096
6097
|
br: ["break"]
|
|
6097
6098
|
};
|
|
6098
|
-
function
|
|
6099
|
-
return
|
|
6099
|
+
function Yl(t) {
|
|
6100
|
+
return Zl[t] ?? ["", void 0];
|
|
6100
6101
|
}
|
|
6101
|
-
const
|
|
6102
|
+
const ec = /* @__PURE__ */ new Set([
|
|
6102
6103
|
"script",
|
|
6103
6104
|
"style",
|
|
6104
6105
|
"template",
|
|
@@ -6112,16 +6113,16 @@ const Yl = /* @__PURE__ */ new Set([
|
|
|
6112
6113
|
"rp",
|
|
6113
6114
|
"rtc"
|
|
6114
6115
|
]);
|
|
6115
|
-
function
|
|
6116
|
-
return !t.audioref && !t.imgref && !t.textref && !t.videoref && (!t.text ||
|
|
6117
|
-
}
|
|
6118
|
-
function ec(t) {
|
|
6119
|
-
return !t.audioref && !t.imgref && !t.textref && !t.videoref && (!t.text || Pe(t.text)) && !!(t.children && t.children.length > 0) && !(t.role && t.role.length > 0) && !t.id;
|
|
6116
|
+
function Ht(t) {
|
|
6117
|
+
return !t.audioref && !t.imgref && !t.textref && !t.videoref && (!t.text || Le(t.text)) && !(t.children && t.children.length > 0) && !t.description;
|
|
6120
6118
|
}
|
|
6121
6119
|
function tc(t) {
|
|
6120
|
+
return !t.audioref && !t.imgref && !t.textref && !t.videoref && (!t.text || Le(t.text)) && !!(t.children && t.children.length > 0) && !(t.role && t.role.length > 0) && !t.id;
|
|
6121
|
+
}
|
|
6122
|
+
function nc(t) {
|
|
6122
6123
|
return !(t.role && t.role.length > 0) && !t.id;
|
|
6123
6124
|
}
|
|
6124
|
-
class
|
|
6125
|
+
class He {
|
|
6125
6126
|
el;
|
|
6126
6127
|
object = {};
|
|
6127
6128
|
children = [];
|
|
@@ -6130,33 +6131,33 @@ class Me {
|
|
|
6130
6131
|
const e = this.object, n = [];
|
|
6131
6132
|
for (const r of this.children) {
|
|
6132
6133
|
const i = r.finalize();
|
|
6133
|
-
if (!
|
|
6134
|
-
if (
|
|
6134
|
+
if (!Ht(i)) {
|
|
6135
|
+
if (tc(i)) {
|
|
6135
6136
|
n.push(...i.children ?? []);
|
|
6136
6137
|
continue;
|
|
6137
6138
|
}
|
|
6138
6139
|
n.push(i);
|
|
6139
6140
|
}
|
|
6140
6141
|
}
|
|
6141
|
-
if (n.length > 0 && (e.children = n), (!e.text ||
|
|
6142
|
+
if (n.length > 0 && (e.children = n), (!e.text || Le(e.text)) && e.children?.length === 1) {
|
|
6142
6143
|
const r = e.children[0];
|
|
6143
|
-
|
|
6144
|
+
nc(r) && (r.text && (e.text = r.text), r.textref && (e.textref = r.textref), r.imgref && (e.imgref = r.imgref), r.audioref && (e.audioref = r.audioref), r.videoref && (e.videoref = r.videoref), e.children = r.children);
|
|
6144
6145
|
}
|
|
6145
6146
|
return e;
|
|
6146
6147
|
}
|
|
6147
6148
|
}
|
|
6148
|
-
function
|
|
6149
|
+
function Mt(t) {
|
|
6149
6150
|
const e = {};
|
|
6150
6151
|
t.id && (e.id = t.id), t.textref && (e.textref = t.textref), t.imgref && (e.imgref = t.imgref), t.audioref && (e.audioref = t.audioref), t.videoref && (e.videoref = t.videoref);
|
|
6151
|
-
const n =
|
|
6152
|
-
return n !== void 0 && (e.text = n), t.role && t.role.length > 0 && (e.role = t.role), t.children && t.children.length > 0 && (e.children = t.children.map(
|
|
6152
|
+
const n = Tl(t.text);
|
|
6153
|
+
return n !== void 0 && (e.text = n), t.role && t.role.length > 0 && (e.role = t.role), t.children && t.children.length > 0 && (e.children = t.children.map(Mt)), t.description && (e.description = t.description), e;
|
|
6153
6154
|
}
|
|
6154
6155
|
function Yr(t) {
|
|
6155
6156
|
const e = {};
|
|
6156
6157
|
return t.id && (e.id = t.id), t.textref && (e.textref = t.textref), t.imgref && (e.imgref = t.imgref), t.audioref && (e.audioref = t.audioref), t.videoref && (e.videoref = t.videoref), t.role && (e.role = t.role), t.description && (e.description = t.description), typeof t.text == "string" ? e.text = { plain: t.text, ssml: "", language: "" } : t.text && (e.text = { plain: t.text.plain ?? "", ssml: t.text.ssml ?? "", language: t.text.language }), t.children && (e.children = t.children.map(Yr)), e;
|
|
6157
6158
|
}
|
|
6158
|
-
const
|
|
6159
|
-
function
|
|
6159
|
+
const rc = 1;
|
|
6160
|
+
function sr(t) {
|
|
6160
6161
|
for (let e = t; e; e = e.parentElement) {
|
|
6161
6162
|
const n = e.getAttribute("xml:lang");
|
|
6162
6163
|
if (n) return n;
|
|
@@ -6165,21 +6166,21 @@ function ar(t) {
|
|
|
6165
6166
|
}
|
|
6166
6167
|
return "";
|
|
6167
6168
|
}
|
|
6168
|
-
function
|
|
6169
|
+
function ic(t) {
|
|
6169
6170
|
for (let e = t.firstChild; e; e = e.nextSibling)
|
|
6170
|
-
if (e.nodeType ===
|
|
6171
|
+
if (e.nodeType === rc) return !0;
|
|
6171
6172
|
return !1;
|
|
6172
6173
|
}
|
|
6173
|
-
function
|
|
6174
|
+
function ar(t, e) {
|
|
6174
6175
|
for (let n = e; n; n = n.parentElement)
|
|
6175
6176
|
if (n === t) return !0;
|
|
6176
6177
|
return !1;
|
|
6177
6178
|
}
|
|
6178
|
-
function
|
|
6179
|
+
function sc(t) {
|
|
6179
6180
|
const e = t.slice(0, 500);
|
|
6180
6181
|
return /<\?xml\b/.test(e) || /xmlns:epub=/.test(e) || /DOCTYPE\s+html\s+PUBLIC\s+"-\/\/W3C\/\/DTD XHTML/i.test(e) ? "application/xhtml+xml" : "text/html";
|
|
6181
6182
|
}
|
|
6182
|
-
const
|
|
6183
|
+
const ac = 3, oc = 1, lc = /* @__PURE__ */ new Set([
|
|
6183
6184
|
"object",
|
|
6184
6185
|
"base",
|
|
6185
6186
|
"font",
|
|
@@ -6245,9 +6246,9 @@ const sc = 3, ac = 1, oc = /* @__PURE__ */ new Set([
|
|
|
6245
6246
|
"strike",
|
|
6246
6247
|
"nobr",
|
|
6247
6248
|
"rb"
|
|
6248
|
-
]),
|
|
6249
|
-
function
|
|
6250
|
-
return
|
|
6249
|
+
]), cc = /* @__PURE__ */ new Set(["summary", "dfn", "span"]);
|
|
6250
|
+
function or(t, e) {
|
|
6251
|
+
return cc.has(t) && e.length > 0 ? !0 : !lc.has(t);
|
|
6251
6252
|
}
|
|
6252
6253
|
class on {
|
|
6253
6254
|
xmlParsed;
|
|
@@ -6256,7 +6257,7 @@ class on {
|
|
|
6256
6257
|
idAlloc = { claimed: /* @__PURE__ */ new Set(), counters: /* @__PURE__ */ new Map() };
|
|
6257
6258
|
noterefDepth = 0;
|
|
6258
6259
|
allowNode = null;
|
|
6259
|
-
root = new
|
|
6260
|
+
root = new He();
|
|
6260
6261
|
current = this.root;
|
|
6261
6262
|
segments = [];
|
|
6262
6263
|
textAcc = "";
|
|
@@ -6281,7 +6282,7 @@ class on {
|
|
|
6281
6282
|
prescan(e) {
|
|
6282
6283
|
const n = [], r = (i, s) => {
|
|
6283
6284
|
const o = i.getAttribute("id");
|
|
6284
|
-
if (o && !this.ids.has(o) && this.ids.set(o, i), s = s || i.getAttribute("aria-hidden") === "true" || i.hasAttribute("hidden"), !s && i.tagName.toLowerCase() === "a" &&
|
|
6285
|
+
if (o && !this.ids.has(o) && this.ids.set(o, i), s = s || i.getAttribute("aria-hidden") === "true" || i.hasAttribute("hidden"), !s && i.tagName.toLowerCase() === "a" && Tt(i).includes("noteref")) {
|
|
6285
6286
|
const c = i.getAttribute("href") ?? "";
|
|
6286
6287
|
c.startsWith("#") && n.push({ id: c.slice(1), ref: i });
|
|
6287
6288
|
}
|
|
@@ -6290,7 +6291,7 @@ class on {
|
|
|
6290
6291
|
r(e, !1);
|
|
6291
6292
|
for (const i of n) {
|
|
6292
6293
|
const s = this.ids.get(i.id);
|
|
6293
|
-
s && (
|
|
6294
|
+
s && (ar(s, i.ref) || this.suppressed.add(s));
|
|
6294
6295
|
}
|
|
6295
6296
|
}
|
|
6296
6297
|
// Converts root itself — used when root is meaningful content in its own
|
|
@@ -6309,21 +6310,21 @@ class on {
|
|
|
6309
6310
|
}
|
|
6310
6311
|
result() {
|
|
6311
6312
|
const e = this.root.finalize();
|
|
6312
|
-
return !e.children || e.children.length === 0 ?
|
|
6313
|
+
return !e.children || e.children.length === 0 ? Ht(e) ? [] : [Mt(e)] : e.children.map(Mt);
|
|
6313
6314
|
}
|
|
6314
6315
|
descend(e) {
|
|
6315
|
-
const n = new
|
|
6316
|
+
const n = new He();
|
|
6316
6317
|
n.el = e, n.noText = this.current.noText, this.current.children.push(n), this.current = n;
|
|
6317
6318
|
}
|
|
6318
6319
|
appendChild(e) {
|
|
6319
6320
|
e.noText = this.current.noText, this.current.children.push(e);
|
|
6320
6321
|
}
|
|
6321
6322
|
walk(e) {
|
|
6322
|
-
if (e.nodeType ===
|
|
6323
|
+
if (e.nodeType === ac) {
|
|
6323
6324
|
this.text(e);
|
|
6324
6325
|
return;
|
|
6325
6326
|
}
|
|
6326
|
-
if (e.nodeType !==
|
|
6327
|
+
if (e.nodeType !== oc) return;
|
|
6327
6328
|
const n = e, r = this.current, i = this.head(n);
|
|
6328
6329
|
if (!i)
|
|
6329
6330
|
for (let s = n.firstChild; s; s = s.nextSibling) this.walk(s);
|
|
@@ -6333,10 +6334,10 @@ class on {
|
|
|
6333
6334
|
// wholesale, invisible, or explicitly skipped).
|
|
6334
6335
|
head(e) {
|
|
6335
6336
|
const n = e.tagName.toLowerCase();
|
|
6336
|
-
if (
|
|
6337
|
-
const [r, i] =
|
|
6337
|
+
if (ec.has(n) || this.suppressed.has(e) && e !== this.allowNode) return !0;
|
|
6338
|
+
const [r, i] = Xl(e);
|
|
6338
6339
|
if (!i && e !== this.allowNode) return !0;
|
|
6339
|
-
const s =
|
|
6340
|
+
const s = Tt(e);
|
|
6340
6341
|
if ((n === "img" || n === "svg") && (s.includes("presentation") || r === null && e.hasAttribute("alt") && e.getAttribute("alt").trim() === ""))
|
|
6341
6342
|
return !0;
|
|
6342
6343
|
if (n === "br")
|
|
@@ -6364,7 +6365,7 @@ class on {
|
|
|
6364
6365
|
const c = { role: s };
|
|
6365
6366
|
return r && (c.description = r.plain), this.placeholder(e, s.includes("math") ? "math" : "image", c), !0;
|
|
6366
6367
|
}
|
|
6367
|
-
if (!
|
|
6368
|
+
if (!or(n, s))
|
|
6368
6369
|
return !1;
|
|
6369
6370
|
this.flushText(), this.descend(e);
|
|
6370
6371
|
const o = this.current.object;
|
|
@@ -6374,23 +6375,23 @@ class on {
|
|
|
6374
6375
|
}
|
|
6375
6376
|
tail(e, n, r) {
|
|
6376
6377
|
if (n) return;
|
|
6377
|
-
const i = e.tagName.toLowerCase(), s =
|
|
6378
|
-
|
|
6378
|
+
const i = e.tagName.toLowerCase(), s = Tt(e);
|
|
6379
|
+
or(i, s) && (this.flushText(), this.current = r);
|
|
6379
6380
|
}
|
|
6380
6381
|
text(e) {
|
|
6381
6382
|
if (this.current.noText) return;
|
|
6382
6383
|
const n = e.nodeValue ?? "";
|
|
6383
6384
|
if (/^\s*$/.test(n)) {
|
|
6384
|
-
(this.textAcc.length > 0 || this.segments.length > 0) && (this.textAcc +=
|
|
6385
|
+
(this.textAcc.length > 0 || this.segments.length > 0) && (this.textAcc += Ne(n, this.flowEndsWithSpace), this.updateFlowSpace());
|
|
6385
6386
|
return;
|
|
6386
6387
|
}
|
|
6387
6388
|
const r = this.textContext(e);
|
|
6388
|
-
|
|
6389
|
+
Rl(r, this.currentCtx) || (this.closeSegment(), this.currentCtx = r), this.textAcc += Ne(n, this.flowEndsWithSpace), this.updateFlowSpace();
|
|
6389
6390
|
}
|
|
6390
6391
|
textContext(e) {
|
|
6391
|
-
const n = { lang:
|
|
6392
|
+
const n = { lang: sr(e.parentElement), tag: "" };
|
|
6392
6393
|
for (let r = e.parentElement; r && r !== this.current.el; r = r.parentElement) {
|
|
6393
|
-
const [i, s] =
|
|
6394
|
+
const [i, s] = Yl(r.tagName.toLowerCase());
|
|
6394
6395
|
if (i && i !== "break") {
|
|
6395
6396
|
n.tag = i, n.attrs = s;
|
|
6396
6397
|
break;
|
|
@@ -6408,8 +6409,8 @@ class on {
|
|
|
6408
6409
|
this.segments = [], this.textAcc = "", this.currentCtx = { lang: "", tag: "" }, this.flowEndsWithSpace = !0, this.pendingChildren = [];
|
|
6409
6410
|
}
|
|
6410
6411
|
placeholder(e, n, r, i) {
|
|
6411
|
-
if (
|
|
6412
|
-
const s = new
|
|
6412
|
+
if (Ht(r)) return;
|
|
6413
|
+
const s = new He();
|
|
6413
6414
|
if (s.el = e, s.object = r, this.current.noText) {
|
|
6414
6415
|
this.appendChild(s);
|
|
6415
6416
|
return;
|
|
@@ -6424,22 +6425,22 @@ class on {
|
|
|
6424
6425
|
pagebreak(e, n, r) {
|
|
6425
6426
|
const i = { role: r }, s = (e.getAttribute("title") ?? "").trim();
|
|
6426
6427
|
s ? i.text = { plain: s, ssml: "", language: "" } : n && (i.text = { plain: n.plain ?? "", ssml: n.ssml ?? "", language: n.language });
|
|
6427
|
-
const o = !!(i.text && !
|
|
6428
|
+
const o = !!(i.text && !Le(i.text)), a = !this.xmlParsed && (ic(e) || o && e.firstChild !== null);
|
|
6428
6429
|
if (!o && !a) {
|
|
6429
|
-
const l =
|
|
6430
|
+
const l = We(e);
|
|
6430
6431
|
l && (i.text = { plain: l, ssml: "", language: "" });
|
|
6431
6432
|
}
|
|
6432
6433
|
const c = e.getAttribute("id");
|
|
6433
6434
|
return c && (i.textref = `#${c}`), this.placeholder(e, "pagebreak", i), a;
|
|
6434
6435
|
}
|
|
6435
6436
|
noteref(e, n) {
|
|
6436
|
-
const r = { role: n }, i =
|
|
6437
|
+
const r = { role: n }, i = We(e);
|
|
6437
6438
|
i && (r.text = { plain: i, ssml: "", language: "" });
|
|
6438
6439
|
const s = e.getAttribute("href") ?? "";
|
|
6439
6440
|
let o = e.getAttribute("id") ?? "";
|
|
6440
6441
|
if (!o && s.startsWith("#") && (o = s.slice(1)), s.startsWith("#")) {
|
|
6441
6442
|
const a = s.slice(1), c = this.ids.get(a);
|
|
6442
|
-
if (c && !
|
|
6443
|
+
if (c && !ar(c, e) && this.noterefDepth < 3) {
|
|
6443
6444
|
const l = new on(this.xmlParsed);
|
|
6444
6445
|
l.ids = this.ids, l.suppressed = this.suppressed, l.idAlloc = this.idAlloc, l.noterefDepth = this.noterefDepth + 1, l.allowNode = c, l.convert(c);
|
|
6445
6446
|
const d = l.result();
|
|
@@ -6454,7 +6455,7 @@ class on {
|
|
|
6454
6455
|
link(e, n) {
|
|
6455
6456
|
const r = {};
|
|
6456
6457
|
n.length > 0 && (r.role = n);
|
|
6457
|
-
const i =
|
|
6458
|
+
const i = We(e);
|
|
6458
6459
|
i && (r.text = { plain: i, ssml: "", language: "" });
|
|
6459
6460
|
const s = e.getAttribute("href");
|
|
6460
6461
|
s && (r.textref = s), this.placeholder(e, n[0] ?? "link", r);
|
|
@@ -6506,7 +6507,7 @@ class on {
|
|
|
6506
6507
|
const m = p.ctx.lang;
|
|
6507
6508
|
i.includes(m) || i.push(m);
|
|
6508
6509
|
}
|
|
6509
|
-
let s =
|
|
6510
|
+
let s = sr(this.current.el ?? null);
|
|
6510
6511
|
i.length === 1 && i[0] !== "" && (s = i[0]);
|
|
6511
6512
|
let o = !1;
|
|
6512
6513
|
for (const p of e)
|
|
@@ -6531,7 +6532,7 @@ class on {
|
|
|
6531
6532
|
let E = !1;
|
|
6532
6533
|
if (a.length > 0) {
|
|
6533
6534
|
const C = c || u || m;
|
|
6534
|
-
l ? E = !0 : d ? E = C && !
|
|
6535
|
+
l ? E = !0 : d ? E = C && !ot(w) : E = C;
|
|
6535
6536
|
}
|
|
6536
6537
|
E && (a += " "), a += w, c = p.text.endsWith(" "), l = !1, d = !1, u = !1;
|
|
6537
6538
|
} else p.kind === "break" ? l = !0 : p.kind === "placeholder" && (d = !0);
|
|
@@ -6549,77 +6550,77 @@ class on {
|
|
|
6549
6550
|
p += `<${w}`;
|
|
6550
6551
|
for (const [C, N] of Object.entries(E ?? {}))
|
|
6551
6552
|
p += ` ${C}="${At(N)}"`;
|
|
6552
|
-
m.ctx.lang !== s && m.ctx.lang !== "" && (p += ` xml:lang="${At(m.ctx.lang)}"`), p += `>${
|
|
6553
|
+
m.ctx.lang !== s && m.ctx.lang !== "" && (p += ` xml:lang="${At(m.ctx.lang)}"`), p += `>${rt(m.text)}</${w}>`;
|
|
6553
6554
|
} else
|
|
6554
|
-
p +=
|
|
6555
|
+
p += rt(m.text);
|
|
6555
6556
|
} else m.kind === "break" ? p += "<break/>" : m.kind === "placeholder" && (p += `<readium:${m.tag} id="${At(m.child.object.id)}" />`);
|
|
6556
6557
|
f.ssml = p;
|
|
6557
6558
|
}
|
|
6558
|
-
const y = new
|
|
6559
|
+
const y = new He();
|
|
6559
6560
|
y.object = { text: f };
|
|
6560
6561
|
for (const p of n)
|
|
6561
6562
|
y.children.push(p);
|
|
6562
6563
|
this.appendChild(y);
|
|
6563
6564
|
}
|
|
6564
6565
|
}
|
|
6565
|
-
const
|
|
6566
|
-
function
|
|
6567
|
-
const n = e ??
|
|
6568
|
-
return s && !
|
|
6566
|
+
const uc = /<body[\s>]/i;
|
|
6567
|
+
function hc(t, e) {
|
|
6568
|
+
const n = e ?? sc(t), r = new DOMParser().parseFromString(t, n), i = new on(n === "application/xhtml+xml"), s = r.querySelector("body");
|
|
6569
|
+
return s && !uc.test(t) ? i.convertChildren(s) : i.convert(s ?? r.documentElement), i.result();
|
|
6569
6570
|
}
|
|
6570
|
-
function
|
|
6571
|
-
return { guided:
|
|
6571
|
+
function Cc(t, e) {
|
|
6572
|
+
return { guided: hc(t, e) };
|
|
6572
6573
|
}
|
|
6573
6574
|
export {
|
|
6574
6575
|
hl as BUILTIN_DECORATION_TYPES,
|
|
6575
|
-
|
|
6576
|
+
Cl as BooleanPreference,
|
|
6576
6577
|
bl as DecorationController,
|
|
6577
6578
|
ol as DecorationLayout,
|
|
6578
|
-
|
|
6579
|
+
A as DecorationStyleType,
|
|
6579
6580
|
al as DecorationWidth,
|
|
6580
6581
|
ul as Decorator,
|
|
6581
6582
|
pl as DirectCommsChannel,
|
|
6582
6583
|
ml as DirectCommsFrame,
|
|
6583
6584
|
yl as DirectCommsHost,
|
|
6584
|
-
|
|
6585
|
-
|
|
6585
|
+
Ve as EnumPreference,
|
|
6586
|
+
Ze as Locator,
|
|
6586
6587
|
W as LocatorLocations,
|
|
6587
|
-
|
|
6588
|
-
|
|
6589
|
-
|
|
6588
|
+
lt as LocatorText,
|
|
6589
|
+
ct as Preference,
|
|
6590
|
+
Fe as RangePreference,
|
|
6590
6591
|
xl as ReadiumSpeechDecorationController,
|
|
6591
|
-
|
|
6592
|
-
|
|
6592
|
+
kc as ReadiumSpeechNavigator,
|
|
6593
|
+
wc as ReadiumSpeechProviderRegistry,
|
|
6593
6594
|
kl as SpeechDefaults,
|
|
6594
|
-
|
|
6595
|
-
|
|
6596
|
-
|
|
6597
|
-
|
|
6598
|
-
|
|
6599
|
-
|
|
6600
|
-
|
|
6595
|
+
Re as SpeechPreferences,
|
|
6596
|
+
Zn as SpeechPreferencesEditor,
|
|
6597
|
+
Oo as SpeechServerEngine,
|
|
6598
|
+
fc as SpeechServerEngineProvider,
|
|
6599
|
+
Qe as SpeechServerError,
|
|
6600
|
+
Yn as SpeechSettings,
|
|
6601
|
+
Xn as StringArrayPreference,
|
|
6601
6602
|
Dn as WebSpeechEngine,
|
|
6602
|
-
|
|
6603
|
+
gc as WebSpeechEngineProvider,
|
|
6603
6604
|
k as WebSpeechVoiceManager,
|
|
6604
|
-
|
|
6605
|
-
|
|
6605
|
+
Fl as blockLevelRoles,
|
|
6606
|
+
Ae as chineseVariantMap,
|
|
6606
6607
|
ho as chunkPlainText,
|
|
6607
6608
|
fo as chunkSsmlText,
|
|
6608
6609
|
Ol as contextualizedAtVerbosity,
|
|
6609
6610
|
Sl as createLocator,
|
|
6610
6611
|
fl as decorationsEqual,
|
|
6611
6612
|
Ll as defaultAnnouncements,
|
|
6612
|
-
|
|
6613
|
-
|
|
6614
|
-
|
|
6613
|
+
xc as extractUtterances,
|
|
6614
|
+
Cc as makeGnd,
|
|
6615
|
+
Er as mapServerVoice,
|
|
6615
6616
|
mo as mimeTypeForFormat,
|
|
6616
|
-
|
|
6617
|
+
hc as parseMarkup,
|
|
6617
6618
|
Kn as resolveDecorationForWire,
|
|
6618
6619
|
xo as selectBitrate,
|
|
6619
6620
|
vo as selectFormat,
|
|
6620
|
-
|
|
6621
|
-
|
|
6622
|
-
|
|
6621
|
+
vc as setupDecorations,
|
|
6622
|
+
Al as skippableAtVerbosity,
|
|
6623
|
+
Sc as skippableRoles,
|
|
6623
6624
|
dl as supportsDecorationStyle,
|
|
6624
|
-
|
|
6625
|
+
Ge as toSpeechServerError
|
|
6625
6626
|
};
|