@vocalstack/player 0.1.0-alpha.54 → 0.1.0-alpha.56
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/dist/index.js +818 -812
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var Me = (t, e, n) =>
|
|
1
|
+
var uo = Object.defineProperty;
|
|
2
|
+
var ho = (t, e, n) => e in t ? uo(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
|
|
3
|
+
var Me = (t, e, n) => ho(t, typeof e != "symbol" ? e + "" : e, n);
|
|
4
4
|
import { jsx as i, jsxs as m, Fragment as xe } from "react/jsx-runtime";
|
|
5
|
-
import { useState as
|
|
6
|
-
import { createPortal as
|
|
7
|
-
import { VocalStackError as
|
|
8
|
-
const Fi = "https://vocalstack.com", po = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", yo = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", No = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", To = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
9
|
-
function
|
|
5
|
+
import { useState as z, useRef as w, useEffect as x, useLayoutEffect as tn, createContext as Hi, useMemo as ze, useContext as fo, useCallback as Je, Fragment as Mo, forwardRef as go, useImperativeHandle as mo } from "react";
|
|
6
|
+
import { createPortal as po } from "react-dom";
|
|
7
|
+
import { VocalStackError as Wi, VocalStack as Fi } from "@vocalstack/js-sdk";
|
|
8
|
+
const Zi = "https://vocalstack.com", yo = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", No = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", To = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", vo = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
9
|
+
function wo({ size: t = 16, sw: e = 1.5, children: n, style: r, ...s }) {
|
|
10
10
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "none", stroke: "currentColor", strokeWidth: e, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", style: { flex: "none", ...r }, ...s, children: n });
|
|
11
11
|
}
|
|
12
12
|
const ee = {
|
|
@@ -53,9 +53,9 @@ const ee = {
|
|
|
53
53
|
video: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"
|
|
54
54
|
};
|
|
55
55
|
function oe({ d: t, ...e }) {
|
|
56
|
-
return /* @__PURE__ */ i(
|
|
56
|
+
return /* @__PURE__ */ i(wo, { ...e, children: (Array.isArray(t) ? t : [t]).map((n) => /* @__PURE__ */ i("path", { d: n }, n)) });
|
|
57
57
|
}
|
|
58
|
-
function
|
|
58
|
+
function ko({ size: t = 15 }) {
|
|
59
59
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ i("rect", { x: "6", y: "6", width: "12", height: "12", rx: "2.5" }) });
|
|
60
60
|
}
|
|
61
61
|
function xt({ size: t = 13 }) {
|
|
@@ -80,27 +80,27 @@ function Mt({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,
|
|
|
80
80
|
}
|
|
81
81
|
);
|
|
82
82
|
}
|
|
83
|
-
function
|
|
83
|
+
function Lo({ size: t = 12 }) {
|
|
84
84
|
return /* @__PURE__ */ m("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", "aria-hidden": "true", children: [
|
|
85
85
|
/* @__PURE__ */ i("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
|
|
86
86
|
/* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
|
|
87
87
|
] });
|
|
88
88
|
}
|
|
89
|
-
function
|
|
90
|
-
const r = /* @__PURE__ */ i("img", { src: t ?
|
|
91
|
-
return n ? /* @__PURE__ */ i("a", { href:
|
|
89
|
+
function Fn({ dark: t, height: e = 20, link: n = !0 }) {
|
|
90
|
+
const r = /* @__PURE__ */ i("img", { src: t ? yo : No, alt: "VocalStack", decoding: "sync", style: { height: e, width: "auto", display: "block" } });
|
|
91
|
+
return n ? /* @__PURE__ */ i("a", { href: Zi, style: { display: "block" }, children: r }) : r;
|
|
92
92
|
}
|
|
93
93
|
function Pr({ dark: t, size: e = 30 }) {
|
|
94
|
-
return /* @__PURE__ */ i("img", { src: t ?
|
|
94
|
+
return /* @__PURE__ */ i("img", { src: t ? To : vo, alt: "VocalStack", style: { width: e, height: Math.round(e * 26 / 30 * 100) / 100, display: "block" } });
|
|
95
95
|
}
|
|
96
|
-
function
|
|
96
|
+
function vi({ children: t, panel: e, inset: n, className: r = "", style: s }) {
|
|
97
97
|
return /* @__PURE__ */ i("div", { className: `vs-card${e ? " panel" : ""}${n ? " vs-card--inset" : ""} ${r}`, style: s, children: t });
|
|
98
98
|
}
|
|
99
99
|
function Lt({ checked: t, onChange: e, label: n, disabled: r }) {
|
|
100
100
|
return /* @__PURE__ */ i("button", { type: "button", role: "switch", "aria-checked": t, "aria-label": n, className: "vs-toggle", disabled: r, onClick: () => e(!t), children: /* @__PURE__ */ i("span", { className: "vs-toggle__knob" }) });
|
|
101
101
|
}
|
|
102
102
|
function br({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill: a }) {
|
|
103
|
-
const o = w(null), [l, c] =
|
|
103
|
+
const o = w(null), [l, c] = z(null), u = Math.max(0, n.findIndex((d) => d.value === t));
|
|
104
104
|
return tn(() => {
|
|
105
105
|
const d = o.current;
|
|
106
106
|
if (!d) return;
|
|
@@ -122,10 +122,10 @@ function br({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill
|
|
|
122
122
|
] }, d.value))
|
|
123
123
|
] });
|
|
124
124
|
}
|
|
125
|
-
function
|
|
125
|
+
function jo({ children: t, onClick: e, label: n, size: r, variant: s, bordered: a = !0, active: o, title: l }) {
|
|
126
126
|
return /* @__PURE__ */ i("button", { type: "button", className: `vs-icon-btn${r === "sm" ? " vs-icon-btn--sm" : ""}${s === "primary" ? " vs-icon-btn--primary" : ""}${o ? " vs-icon-btn--primary" : ""}${a ? "" : " vs-icon-btn--borderless"}`, onClick: e, "aria-label": n, title: l ?? n, children: t });
|
|
127
127
|
}
|
|
128
|
-
function
|
|
128
|
+
function Bn({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bordered: o = !0, size: l, style: c, flagOnly: u }) {
|
|
129
129
|
if (u)
|
|
130
130
|
return /* @__PURE__ */ i("button", { type: "button", className: "mutebtn vs-flagbtn", onClick: r, "aria-label": n ? e ? `${n} (${e})` : n : e || "Language", title: n ?? e, style: c, children: /* @__PURE__ */ i("span", { style: { fontSize: 20, lineHeight: 1, display: "flex" }, children: t }) });
|
|
131
131
|
const d = a && !!e;
|
|
@@ -135,8 +135,8 @@ function Qn({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bord
|
|
|
135
135
|
/* @__PURE__ */ i(oe, { d: ee.chevronDown, size: 13, className: "vs-lang-chip__chevron", style: { color: s === "primary" ? "currentColor" : "var(--vs-text-muted)" } })
|
|
136
136
|
] });
|
|
137
137
|
}
|
|
138
|
-
function
|
|
139
|
-
const [r, s] =
|
|
138
|
+
function zo({ value: t, label: e = "Copy", onCopied: n }) {
|
|
139
|
+
const [r, s] = z(!1), a = async () => {
|
|
140
140
|
try {
|
|
141
141
|
await navigator.clipboard.writeText(t), s(!0), n == null || n(), setTimeout(() => s(!1), 1400);
|
|
142
142
|
} catch {
|
|
@@ -160,7 +160,7 @@ function jo({ value: t, label: e = "Copy", onCopied: n }) {
|
|
|
160
160
|
}
|
|
161
161
|
);
|
|
162
162
|
}
|
|
163
|
-
function
|
|
163
|
+
function Io(t, e) {
|
|
164
164
|
tn(() => {
|
|
165
165
|
const n = t.current, r = window.visualViewport;
|
|
166
166
|
if (!e || !n || !r) return;
|
|
@@ -178,14 +178,14 @@ function zo(t, e) {
|
|
|
178
178
|
}, [t, e]);
|
|
179
179
|
}
|
|
180
180
|
function Or({ children: t, ms: e = 220 }) {
|
|
181
|
-
const [n] =
|
|
181
|
+
const [n] = z(() => {
|
|
182
182
|
var r;
|
|
183
183
|
return typeof window < "u" && !!((r = window.matchMedia) != null && r.call(window, "(hover: hover) and (pointer: fine)").matches);
|
|
184
184
|
});
|
|
185
|
-
return n ? /* @__PURE__ */ i(
|
|
185
|
+
return n ? /* @__PURE__ */ i(bo, { ms: e, children: t }) : /* @__PURE__ */ i("div", { children: t });
|
|
186
186
|
}
|
|
187
|
-
function
|
|
188
|
-
const n = w(null), r = w(null), [s, a] =
|
|
187
|
+
function bo({ children: t, ms: e }) {
|
|
188
|
+
const n = w(null), r = w(null), [s, a] = z(null);
|
|
189
189
|
return tn(() => {
|
|
190
190
|
const o = r.current, l = n.current;
|
|
191
191
|
if (!o || !l) return;
|
|
@@ -211,7 +211,7 @@ function Io({ children: t, ms: e }) {
|
|
|
211
211
|
}
|
|
212
212
|
function nn({ open: t, onClose: e, title: n, titleNode: r, note: s, doneLabel: a = "Done", children: o, drawer: l = !1, header: c, kind: u, sticky: d = !1 }) {
|
|
213
213
|
const h = w(null);
|
|
214
|
-
return
|
|
214
|
+
return Io(h, t), x(() => {
|
|
215
215
|
if (!t) return;
|
|
216
216
|
const M = (g) => {
|
|
217
217
|
g.key === "Escape" && e();
|
|
@@ -228,29 +228,29 @@ function nn({ open: t, onClose: e, title: n, titleNode: r, note: s, doneLabel: a
|
|
|
228
228
|
/* @__PURE__ */ i("div", { className: "vs-sheet__body", children: o })
|
|
229
229
|
] }) }) : null;
|
|
230
230
|
}
|
|
231
|
-
|
|
231
|
+
Hi(0);
|
|
232
232
|
function xr({ children: t, style: e, className: n }) {
|
|
233
233
|
return /* @__PURE__ */ i("div", { className: n ? `eyebrow ${n}` : "eyebrow", style: e, children: t });
|
|
234
234
|
}
|
|
235
|
-
let
|
|
236
|
-
function
|
|
237
|
-
|
|
235
|
+
let $n = null;
|
|
236
|
+
function Ld(t) {
|
|
237
|
+
$n = t;
|
|
238
238
|
}
|
|
239
|
-
function
|
|
240
|
-
|
|
239
|
+
function Gi(t) {
|
|
240
|
+
$n == null || $n(t);
|
|
241
241
|
}
|
|
242
|
-
function
|
|
242
|
+
function Zn() {
|
|
243
243
|
try {
|
|
244
244
|
return document.createElement("audio").canPlayType("audio/x-caf; codecs=opus") === "probably" ? "caf" : "ogg";
|
|
245
245
|
} catch {
|
|
246
246
|
return "ogg";
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
|
-
function
|
|
249
|
+
function Oo(t = {}) {
|
|
250
250
|
const e = new URLSearchParams();
|
|
251
251
|
return t.media ? e.set("media", t.media) : t.accessToken && e.set("access_token", t.accessToken), t.listenerToken && e.set("listenerToken", t.listenerToken), t.shareCode && e.set("shareCode", t.shareCode), e.toString();
|
|
252
252
|
}
|
|
253
|
-
async function
|
|
253
|
+
async function xo(t) {
|
|
254
254
|
try {
|
|
255
255
|
const e = await fetch(t, { redirect: "manual", headers: { accept: "application/json" } });
|
|
256
256
|
if (e.type === "opaqueredirect" || e.ok || e.status >= 300 && e.status < 400) return null;
|
|
@@ -265,7 +265,7 @@ async function Oo(t) {
|
|
|
265
265
|
return null;
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
|
-
async function
|
|
268
|
+
async function Co(t) {
|
|
269
269
|
try {
|
|
270
270
|
const e = await fetch(t, { redirect: "manual", headers: { accept: "application/json" } });
|
|
271
271
|
return e.type === "opaqueredirect" || e.status >= 300 && e.status < 400;
|
|
@@ -273,42 +273,42 @@ async function xo(t) {
|
|
|
273
273
|
return !1;
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
|
-
function
|
|
277
|
-
const r = new URLSearchParams({ kind: "delivery", format:
|
|
276
|
+
function So(t, e, n = {}) {
|
|
277
|
+
const r = new URLSearchParams({ kind: "delivery", format: Zn() });
|
|
278
278
|
return n.media ? r.set("media", n.media) : n.accessToken && r.set("access_token", n.accessToken), n.listenerToken && r.set("listenerToken", n.listenerToken), n.shareCode && r.set("shareCode", n.shareCode), `${t}/v1/recordings/${e}/audio?${r}`;
|
|
279
279
|
}
|
|
280
|
-
function
|
|
281
|
-
const s = new URLSearchParams({ kind: r, format:
|
|
280
|
+
function wi(t, e, n = {}, r = "background") {
|
|
281
|
+
const s = new URLSearchParams({ kind: r, format: Zn() });
|
|
282
282
|
return n.media ? s.set("media", n.media) : n.accessToken && s.set("access_token", n.accessToken), n.listenerToken && s.set("listenerToken", n.listenerToken), n.shareCode && s.set("shareCode", n.shareCode), `${t}/v1/recordings/${e}/audio?${s}`;
|
|
283
283
|
}
|
|
284
|
-
function
|
|
284
|
+
function An(t, e, n, r = {}) {
|
|
285
285
|
const s = new URLSearchParams({ kind: n });
|
|
286
286
|
return n === "delivery" && s.set("format", "mp3"), r.media ? s.set("media", r.media) : r.accessToken && s.set("access_token", r.accessToken), r.listenerToken && s.set("listenerToken", r.listenerToken), r.shareCode && s.set("shareCode", r.shareCode), `${t}/v1/recordings/${e}/audio?${s}`;
|
|
287
287
|
}
|
|
288
|
-
function
|
|
289
|
-
return
|
|
288
|
+
function Do(t, e, n, r, s = {}) {
|
|
289
|
+
return Ao(t, e, n, r, "mp3", s);
|
|
290
290
|
}
|
|
291
|
-
function
|
|
291
|
+
function Ao(t, e, n, r, s, a) {
|
|
292
292
|
const o = new URLSearchParams({ kind: "voice", lang: n, format: s });
|
|
293
293
|
return r && o.set("voice", r), a.media ? o.set("media", a.media) : a.accessToken && o.set("access_token", a.accessToken), a.listenerToken && o.set("listenerToken", a.listenerToken), a.shareCode && o.set("shareCode", a.shareCode), `${t}/v1/recordings/${e}/audio?${o}`;
|
|
294
294
|
}
|
|
295
|
-
function
|
|
295
|
+
function Eo(t, e = !0) {
|
|
296
296
|
const n = (t == null ? void 0 : t.code) ?? 0, r = n === 2 ? "the download failed" : n === 3 ? "this browser could not decode it" : n === 4 ? "the file is not available, or this browser cannot play it" : n === 1 ? "the load was stopped" : "something went wrong";
|
|
297
|
-
return e &&
|
|
297
|
+
return e && qi(t), `The audio could not be played: ${r}.`;
|
|
298
298
|
}
|
|
299
|
-
function
|
|
299
|
+
function qi(t) {
|
|
300
300
|
const e = (t == null ? void 0 : t.code) ?? 0;
|
|
301
|
-
e !== 1 &&
|
|
301
|
+
e !== 1 && Gi(new Error(`media error ${e}${t != null && t.message ? `: ${t.message}` : ""}`));
|
|
302
302
|
}
|
|
303
|
-
const
|
|
304
|
-
function
|
|
303
|
+
const _o = 3e3;
|
|
304
|
+
function Yo(t, e, n) {
|
|
305
305
|
if (t !== 503) return null;
|
|
306
306
|
const r = e == null || e.trim() === "" ? NaN : Number(e);
|
|
307
307
|
if (Number.isFinite(r)) return Math.min(15e3, Math.max(1e3, r * 1e3));
|
|
308
308
|
const s = n;
|
|
309
|
-
return s && (s.retryable === !0 || s.code === "engine_unavailable") ?
|
|
309
|
+
return s && (s.retryable === !0 || s.code === "engine_unavailable") ? _o : null;
|
|
310
310
|
}
|
|
311
|
-
class
|
|
311
|
+
class Uo {
|
|
312
312
|
constructor(e = {}) {
|
|
313
313
|
Me(this, "entries", /* @__PURE__ */ new Map());
|
|
314
314
|
Me(this, "wanted", []);
|
|
@@ -401,13 +401,13 @@ class Yo {
|
|
|
401
401
|
}).catch(() => r(n.signal.aborted ? null : { state: "failed", at: this.now() }));
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
|
-
const
|
|
405
|
-
function
|
|
406
|
-
if (!
|
|
404
|
+
const Ki = { video: !1 };
|
|
405
|
+
function Ji(t) {
|
|
406
|
+
if (!Ki.video) return new Audio(t);
|
|
407
407
|
const e = document.createElement("video");
|
|
408
408
|
return e.playsInline = !0, t && (e.src = t), e;
|
|
409
409
|
}
|
|
410
|
-
class
|
|
410
|
+
class Xi extends Error {
|
|
411
411
|
constructor() {
|
|
412
412
|
super("The voice did not start in time."), this.name = "VoiceNotStarted";
|
|
413
413
|
}
|
|
@@ -453,7 +453,7 @@ const rt = class rt {
|
|
|
453
453
|
Me(this, "loading", null);
|
|
454
454
|
Me(this, "readAhead", 0);
|
|
455
455
|
Me(this, "readAheadS", 0);
|
|
456
|
-
Me(this, "prefetch", new
|
|
456
|
+
Me(this, "prefetch", new Uo());
|
|
457
457
|
Me(this, "warmed", /* @__PURE__ */ new Set());
|
|
458
458
|
Me(this, "startingSince", /* @__PURE__ */ new Map());
|
|
459
459
|
Me(this, "retries", /* @__PURE__ */ new Map());
|
|
@@ -789,7 +789,7 @@ const rt = class rt {
|
|
|
789
789
|
const l = await fetch(n, { method: "GET" });
|
|
790
790
|
s = l.ok, r = l.status === 202 || l.status === 503 || l.status === 429;
|
|
791
791
|
const c = l.status === 503 ? await l.json().catch(() => null) : null;
|
|
792
|
-
a =
|
|
792
|
+
a = Yo(l.status, l.headers.get("Retry-After"), c);
|
|
793
793
|
} catch {
|
|
794
794
|
r = !0;
|
|
795
795
|
}
|
|
@@ -810,7 +810,7 @@ const rt = class rt {
|
|
|
810
810
|
}, a);
|
|
811
811
|
return;
|
|
812
812
|
}
|
|
813
|
-
this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new
|
|
813
|
+
this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new Xi()), this.onSentence(e);
|
|
814
814
|
return;
|
|
815
815
|
}
|
|
816
816
|
const o = (this.retries.get(e) ?? 0) + 1;
|
|
@@ -838,7 +838,7 @@ const rt = class rt {
|
|
|
838
838
|
}
|
|
839
839
|
element() {
|
|
840
840
|
if (this.el) return this.el;
|
|
841
|
-
const e =
|
|
841
|
+
const e = Ji();
|
|
842
842
|
e.preload = "auto";
|
|
843
843
|
const n = e;
|
|
844
844
|
return n.dataset && (n.dataset.vsVoice = "1"), e.playsInline = !0, e.onplaying = () => {
|
|
@@ -892,14 +892,14 @@ const rt = class rt {
|
|
|
892
892
|
};
|
|
893
893
|
Me(rt, "WAIT_MS", 15e3), Me(rt, "START_WAIT_MS", 4e3), Me(rt, "COMING_MS", 12e4), Me(rt, "SKEW_LINES", 3), Me(rt, "RETRIES", 4), Me(rt, "RETRY_MS", 1200), Me(rt, "STARTING_MS", 3e5);
|
|
894
894
|
let Cr = rt;
|
|
895
|
-
function
|
|
895
|
+
function ea(t, e) {
|
|
896
896
|
return e == null ? t.find((n) => !n.voiceKey) ?? null : t.find((n) => n.voiceKey === e) ?? t.find((n) => !n.voiceKey && n.voice === e) ?? null;
|
|
897
897
|
}
|
|
898
|
-
function
|
|
898
|
+
function $o(t, e, n, r = {}, s) {
|
|
899
899
|
if (!t) return [];
|
|
900
900
|
const a = s != null && s.length ? s : t.clips;
|
|
901
901
|
if (!(a != null && a.length)) return [];
|
|
902
|
-
const o =
|
|
902
|
+
const o = Oo(r), l = o ? `&${o}` : "", c = t.voiceKey ? `&voice=${encodeURIComponent(t.voiceKey)}` : "";
|
|
903
903
|
return a.flatMap((u) => {
|
|
904
904
|
var M, g;
|
|
905
905
|
const d = (M = t.clipRev) == null ? void 0 : M[String(u)], h = Math.max(1, ((g = t.clipParts) == null ? void 0 : g[String(u)]) ?? 1);
|
|
@@ -908,7 +908,7 @@ function Uo(t, e, n, r = {}, s) {
|
|
|
908
908
|
return {
|
|
909
909
|
sentenceId: u,
|
|
910
910
|
lang: t.lang,
|
|
911
|
-
src: `${n}/v1/recordings/${e}/voice/${u}?lang=${encodeURIComponent(t.lang)}${c}&format=${
|
|
911
|
+
src: `${n}/v1/recordings/${e}/voice/${u}?lang=${encodeURIComponent(t.lang)}${c}&format=${Zn()}${y > 0 ? `&part=${y}` : ""}${d ? `&v=${encodeURIComponent(d)}` : ""}${l}`,
|
|
912
912
|
durationS: h === 1 ? ((T = t.clipDur) == null ? void 0 : T[String(u)]) ?? 0 : 0,
|
|
913
913
|
voice: t.voice ?? null,
|
|
914
914
|
cloned: !1,
|
|
@@ -918,16 +918,16 @@ function Uo(t, e, n, r = {}, s) {
|
|
|
918
918
|
});
|
|
919
919
|
});
|
|
920
920
|
}
|
|
921
|
-
function
|
|
921
|
+
function ta(t, e) {
|
|
922
922
|
const n = e.words;
|
|
923
923
|
if (n && n.length === t.length && t.length > 0) {
|
|
924
924
|
let r = 0;
|
|
925
925
|
for (let s = 0; s < n.length && e.t >= n[s][0]; s++) r = s;
|
|
926
926
|
return r;
|
|
927
927
|
}
|
|
928
|
-
return e.dur > 0 ?
|
|
928
|
+
return e.dur > 0 ? Ro(t, e.t, e.dur) : null;
|
|
929
929
|
}
|
|
930
|
-
function
|
|
930
|
+
function Ro(t, e, n) {
|
|
931
931
|
if (t.length <= 1 || !(n > 0)) return 0;
|
|
932
932
|
const r = t.map((l) => l.t.length + 1.6), s = r.reduce((l, c) => l + c, 0);
|
|
933
933
|
let a = 0;
|
|
@@ -945,7 +945,7 @@ function Ar(t, e) {
|
|
|
945
945
|
return e;
|
|
946
946
|
}
|
|
947
947
|
}
|
|
948
|
-
function
|
|
948
|
+
function na(t, e) {
|
|
949
949
|
try {
|
|
950
950
|
e == null ? localStorage.removeItem(t) : localStorage.setItem(t, JSON.stringify(e));
|
|
951
951
|
} catch {
|
|
@@ -953,42 +953,42 @@ function ta(t, e) {
|
|
|
953
953
|
for (const n of Dr) n();
|
|
954
954
|
}
|
|
955
955
|
function Qr(t, e) {
|
|
956
|
-
const [n, r] =
|
|
956
|
+
const [n, r] = z(() => Ar(t, e));
|
|
957
957
|
return x(() => {
|
|
958
958
|
const s = () => r(Ar(t, e));
|
|
959
959
|
return Dr.add(s), window.addEventListener("storage", s), () => {
|
|
960
960
|
Dr.delete(s), window.removeEventListener("storage", s);
|
|
961
961
|
};
|
|
962
962
|
}, [t]), [n, (s) => {
|
|
963
|
-
r(s),
|
|
963
|
+
r(s), na(t, s);
|
|
964
964
|
}];
|
|
965
965
|
}
|
|
966
|
-
function
|
|
966
|
+
function ki(t) {
|
|
967
967
|
const e = Ar(Sr, []);
|
|
968
|
-
|
|
968
|
+
na(Sr, Array.isArray(e) ? e.filter((n) => n !== t) : []);
|
|
969
969
|
}
|
|
970
|
-
function
|
|
970
|
+
function ra() {
|
|
971
971
|
const [t, e] = Qr(Sr, []), n = Array.isArray(t) ? t : [];
|
|
972
972
|
return [n, (r) => {
|
|
973
973
|
r && e([r, ...n.filter((s) => s !== r)].slice(0, 3));
|
|
974
974
|
}];
|
|
975
975
|
}
|
|
976
|
-
function
|
|
976
|
+
function sa(t, e) {
|
|
977
977
|
if (!t) return [];
|
|
978
978
|
const n = new Set(t[e]);
|
|
979
979
|
return t.languages.filter((r) => n.has(r.code)).map((r) => ({ code: r.code, label: r.name, native: r.native, flag: r.flag ?? "🌐", voice: !!r.voice }));
|
|
980
980
|
}
|
|
981
|
-
function
|
|
981
|
+
function Po(t) {
|
|
982
982
|
const [e, n] = Qr(`vs.pins.${t}`, null);
|
|
983
983
|
return [Array.isArray(e) ? e : [], n];
|
|
984
984
|
}
|
|
985
|
-
const
|
|
986
|
-
function
|
|
985
|
+
const Qo = 352;
|
|
986
|
+
function Vo(t) {
|
|
987
987
|
const [e, n] = Qr(t === "ga" ? "vs.colW.ga" : "vs.colW", null);
|
|
988
|
-
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 :
|
|
988
|
+
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : Qo, n];
|
|
989
989
|
}
|
|
990
990
|
function Vr({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPlaceholder: a = "Search languages", none: o, pinned: l = [], recent: c = [], requireVoice: u, keepOpen: d, busy: h }) {
|
|
991
|
-
const [M, g] =
|
|
991
|
+
const [M, g] = z(""), [f, y] = z(!1), [T, N] = z(null);
|
|
992
992
|
x(() => {
|
|
993
993
|
t && (g(""), y(!1), N(null));
|
|
994
994
|
}, [t]);
|
|
@@ -1023,9 +1023,9 @@ function Vr({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
1023
1023
|
/* @__PURE__ */ i("div", { className: "vs-picker__native", children: E.native })
|
|
1024
1024
|
] }),
|
|
1025
1025
|
/* @__PURE__ */ i("span", { className: "vs-picker__slot", children: k && /* @__PURE__ */ i("span", { className: "vs-picker__forget", role: "button", tabIndex: 0, title: `Remove ${E.label} from recent`, "aria-label": `Remove ${E.label} from recent`, onClick: (te) => {
|
|
1026
|
-
te.stopPropagation(),
|
|
1026
|
+
te.stopPropagation(), ki(E.code);
|
|
1027
1027
|
}, onKeyDown: (te) => {
|
|
1028
|
-
(te.key === "Enter" || te.key === " ") && (te.preventDefault(), te.stopPropagation(),
|
|
1028
|
+
(te.key === "Enter" || te.key === " ") && (te.preventDefault(), te.stopPropagation(), ki(E.code));
|
|
1029
1029
|
}, children: /* @__PURE__ */ i(oe, { d: ee.close, size: 16 }) }) }),
|
|
1030
1030
|
/* @__PURE__ */ i("span", { className: `vs-picker__slot${C ? " vs-picker__slot--wide" : ""}`, title: E.voice ? "Voice available" : C ? "No voice speaks this language yet" : void 0, children: C ? T === E.code && /* @__PURE__ */ i("span", { className: "vs-picker__off", children: "UNAVAILABLE" }) : E.voice && /* @__PURE__ */ i(oe, { d: ee.headphones, size: 16 }) }),
|
|
1031
1031
|
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === E.code && (h === E.code ? /* @__PURE__ */ i(Mt, { size: 15, color: "var(--vs-link-hover)", track: "var(--vs-border)" }) : /* @__PURE__ */ i(oe, { d: ee.check, size: 16, sw: 2.2 })) })
|
|
@@ -1068,12 +1068,12 @@ function Vr({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
1068
1068
|
] });
|
|
1069
1069
|
return { search: I, list: W };
|
|
1070
1070
|
}
|
|
1071
|
-
function
|
|
1071
|
+
function Bo({ open: t, onClose: e, title: n, note: r, sticky: s, ...a }) {
|
|
1072
1072
|
const { search: o, list: l } = Vr({ ...a, open: t, onClose: e });
|
|
1073
1073
|
return /* @__PURE__ */ i(nn, { open: t, onClose: e, title: n, note: r, drawer: !1, sticky: s, kind: "picker", header: o, children: l });
|
|
1074
1074
|
}
|
|
1075
|
-
function
|
|
1076
|
-
const l = w(null), [c, u] =
|
|
1075
|
+
function Li({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOver: o = 0.4 }) {
|
|
1076
|
+
const l = w(null), [c, u] = z(!1), [d, h] = z(!1), M = w(n);
|
|
1077
1077
|
return M.current = n, x(() => {
|
|
1078
1078
|
u(!1), h(!1);
|
|
1079
1079
|
}, [t, e]), x(() => {
|
|
@@ -1123,7 +1123,7 @@ function ki({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOve
|
|
|
1123
1123
|
c && /* @__PURE__ */ i("div", { className: `txyt__paused${r ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) }) })
|
|
1124
1124
|
] });
|
|
1125
1125
|
}
|
|
1126
|
-
const
|
|
1126
|
+
const ia = [
|
|
1127
1127
|
{ id: "youtube", name: "YouTube", color: "#ff3b30", hosts: /(^|\.)(youtube\.com|youtu\.be|youtube-nocookie\.com)$/, glyph: "M21.6 7.2a2.7 2.7 0 0 0-1.9-1.9C18 4.8 12 4.8 12 4.8s-6 0-7.7.5a2.7 2.7 0 0 0-1.9 1.9C2 8.9 2 12 2 12s0 3.1.4 4.8a2.7 2.7 0 0 0 1.9 1.9c1.7.5 7.7.5 7.7.5s6 0 7.7-.5a2.7 2.7 0 0 0 1.9-1.9c.4-1.7.4-4.8.4-4.8s0-3.1-.4-4.8ZM10 15.1V8.9l5.3 3.1L10 15.1Z" },
|
|
1128
1128
|
{ id: "loom", name: "Loom", color: "#8f7bff", hosts: /(^|\.)loom\.com$/, glyph: "M21 11h-5.2l4.5-2.6-1-1.7-4.5 2.6 2.6-4.5-1.7-1-2.6 4.5V3h-2v5.3L8.5 3.8l-1.7 1 2.6 4.5-4.5-2.6-1 1.7L8.2 11H3v2h5.2l-4.5 2.6 1 1.7 4.5-2.6-2.6 4.5 1.7 1 2.6-4.5V21h2v-5.2l2.6 4.5 1.7-1-2.6-4.5 4.5 2.6 1-1.7-4.5-2.6H21v-2Zm-9 3.4a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8Z" },
|
|
1129
1129
|
{ id: "vimeo", name: "Vimeo", color: "#1ab7ea", hosts: /(^|\.)vimeo\.com$/, glyph: "M22 7.4c-.1 2-1.5 4.7-4.2 8.1-2.8 3.6-5.1 5.4-7 5.4-1.2 0-2.2-1.1-3-3.3L6.2 11.6C5.6 9.4 5 8.3 4.3 8.3c-.1 0-.6.3-1.4.9L2 8l2.7-2.4C5.9 4.6 6.8 4 7.4 4c1.4-.1 2.3.9 2.6 2.9.4 2.2.6 3.6.8 4.1.4 1.8.9 2.7 1.4 2.7.4 0 1-.6 1.8-1.9.8-1.2 1.2-2.2 1.3-2.8.1-1.1-.3-1.6-1.3-1.6-.5 0-.9.1-1.4.3.9-3 2.7-4.5 5.3-4.4 1.9.1 2.8 1.3 2.7 3.7Z" },
|
|
@@ -1156,11 +1156,11 @@ const sa = [
|
|
|
1156
1156
|
{ id: "iheart", name: "iHeartRadio", color: "#c6002b", hosts: /(^|\.)iheart\.com$/, audioOnly: !0, glyph: "M12 21s-7.5-4.6-9.4-9.4C1.2 8 3.4 4 7.3 4c2 0 3.6 1.1 4.7 2.6C13.1 5.1 14.7 4 16.7 4c3.9 0 6.1 4 4.7 7.6C19.5 16.4 12 21 12 21Z" },
|
|
1157
1157
|
{ id: "audioboom", name: "Audioboom", color: "#1ea2e0", hosts: /(^|\.)audioboom\.com$/, audioOnly: !0, glyph: "M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm-4 6v6h2V9H8Zm3-2v10h2V7h-2Zm3 3v4h2v-4h-2Z" },
|
|
1158
1158
|
{ id: "cnn", name: "CNN", color: "#cc0000", hosts: /(^|\.)cnn\.com$/, glyph: "M2 7h20v10H2V7Zm3.5 2.2a2.8 2.8 0 1 0 0 5.6h1.4v-1.6H5.6a1.2 1.2 0 1 1 0-2.4h1.3V9.2H5.5Zm3 0v5.6h1.6v-3.3l2.4 3.3H14V9.2h-1.6v3.3L10 9.2H8.5Zm6.2 0v5.6h1.6v-3.3l2.4 3.3h1.5V9.2h-1.6v3.3l-2.4-3.3h-1.5Z" }
|
|
1159
|
-
],
|
|
1160
|
-
function
|
|
1161
|
-
return t ?
|
|
1159
|
+
], Ho = new Map(ia.map((t) => [t.id, t]));
|
|
1160
|
+
function jd(t) {
|
|
1161
|
+
return t ? Ho.get(t) ?? null : null;
|
|
1162
1162
|
}
|
|
1163
|
-
function
|
|
1163
|
+
function Wo(t) {
|
|
1164
1164
|
const e = t == null ? void 0 : t.trim();
|
|
1165
1165
|
if (!e) return null;
|
|
1166
1166
|
try {
|
|
@@ -1170,8 +1170,8 @@ function Ho(t) {
|
|
|
1170
1170
|
}
|
|
1171
1171
|
}
|
|
1172
1172
|
function Zt(t) {
|
|
1173
|
-
const e =
|
|
1174
|
-
return e ?
|
|
1173
|
+
const e = Wo(t);
|
|
1174
|
+
return e ? ia.find((n) => n.hosts.test(e)) ?? null : null;
|
|
1175
1175
|
}
|
|
1176
1176
|
function Ke(t) {
|
|
1177
1177
|
try {
|
|
@@ -1181,12 +1181,12 @@ function Ke(t) {
|
|
|
1181
1181
|
}
|
|
1182
1182
|
}
|
|
1183
1183
|
const Wt = (t) => Math.max(0, Math.floor(t));
|
|
1184
|
-
function
|
|
1184
|
+
function aa(t) {
|
|
1185
1185
|
var n;
|
|
1186
1186
|
const e = /\/(?:share|embed)\/(?:[^/?#]*-)?([0-9a-f]{32})(?:[/?#]|$)/i.exec(((n = Ke(t)) == null ? void 0 : n.pathname) ?? "");
|
|
1187
1187
|
return e ? e[1].toLowerCase() : null;
|
|
1188
1188
|
}
|
|
1189
|
-
function
|
|
1189
|
+
function Fo(t) {
|
|
1190
1190
|
const e = Ke(t);
|
|
1191
1191
|
if (!e) return null;
|
|
1192
1192
|
const n = e.pathname.split("/").filter(Boolean), r = n.map((a, o) => /^\d+$/.test(a) ? o : -1).filter((a) => a >= 0).pop();
|
|
@@ -1194,14 +1194,14 @@ function Wo(t) {
|
|
|
1194
1194
|
const s = n[r + 1];
|
|
1195
1195
|
return { id: n[r], h: e.searchParams.get("h") ?? (s && /^[0-9a-f]{6,}$/i.test(s) ? s : null) };
|
|
1196
1196
|
}
|
|
1197
|
-
function
|
|
1197
|
+
function Zo(t) {
|
|
1198
1198
|
const e = Ke(t);
|
|
1199
1199
|
if (!e) return null;
|
|
1200
1200
|
if (/(^|\.)dai\.ly$/i.test(e.hostname)) return e.pathname.split("/").filter(Boolean)[0] ?? null;
|
|
1201
1201
|
const n = /\/video\/([a-z0-9]+)/i.exec(e.pathname);
|
|
1202
1202
|
return n ? n[1] : null;
|
|
1203
1203
|
}
|
|
1204
|
-
function
|
|
1204
|
+
function Go(t) {
|
|
1205
1205
|
const e = Ke(t);
|
|
1206
1206
|
if (!e) return null;
|
|
1207
1207
|
const n = e.pathname.split("/").filter(Boolean);
|
|
@@ -1211,40 +1211,40 @@ function Zo(t) {
|
|
|
1211
1211
|
const s = n.indexOf("clip");
|
|
1212
1212
|
return s >= 0 && n[s + 1] ? { clip: n[s + 1] } : n[0] ? { channel: n[0] } : null;
|
|
1213
1213
|
}
|
|
1214
|
-
const
|
|
1214
|
+
const qo = (t) => {
|
|
1215
1215
|
const e = Wt(t);
|
|
1216
1216
|
return `${Math.floor(e / 3600)}h${Math.floor(e % 3600 / 60)}m${e % 60}s`;
|
|
1217
1217
|
};
|
|
1218
|
-
function
|
|
1218
|
+
function oa(t, e) {
|
|
1219
1219
|
var s, a, o, l, c, u, d, h, M, g;
|
|
1220
1220
|
const n = Zt(t);
|
|
1221
1221
|
if (!n) return null;
|
|
1222
1222
|
const r = e.play ? 1 : 0;
|
|
1223
1223
|
switch (n.id) {
|
|
1224
1224
|
case "loom": {
|
|
1225
|
-
const f =
|
|
1225
|
+
const f = aa(t);
|
|
1226
1226
|
if (!f) return null;
|
|
1227
1227
|
const y = new URLSearchParams({ hide_owner: "true", hide_share: "true", hide_title: "true", hideEmbedTopBar: "true", hide_speed: "true", muted: "true", autoplay: e.play ? "true" : "false", t: String(Wt(e.t)) });
|
|
1228
1228
|
return `https://www.loom.com/embed/${f}?${y}`;
|
|
1229
1229
|
}
|
|
1230
1230
|
case "vimeo": {
|
|
1231
|
-
const f =
|
|
1231
|
+
const f = Fo(t);
|
|
1232
1232
|
if (!f) return null;
|
|
1233
1233
|
const y = new URLSearchParams({ autoplay: String(r), muted: "1", controls: "0", title: "0", byline: "0", portrait: "0", dnt: "1" });
|
|
1234
1234
|
return f.h && y.set("h", f.h), `https://player.vimeo.com/video/${f.id}?${y}#t=${Wt(e.t)}s`;
|
|
1235
1235
|
}
|
|
1236
1236
|
case "dailymotion": {
|
|
1237
|
-
const f =
|
|
1237
|
+
const f = Zo(t);
|
|
1238
1238
|
if (!f) return null;
|
|
1239
1239
|
const y = new URLSearchParams({ autoplay: String(r), mute: "1", controls: "0", "queue-enable": "0", "sharing-enable": "0", "ui-start-screen-info": "0", start: String(Wt(e.t)), api: "postMessage" });
|
|
1240
1240
|
return `https://www.dailymotion.com/embed/video/${f}?${y}`;
|
|
1241
1241
|
}
|
|
1242
1242
|
case "twitch": {
|
|
1243
|
-
const f =
|
|
1243
|
+
const f = Go(t);
|
|
1244
1244
|
if (!f || !e.host) return null;
|
|
1245
1245
|
if (f.clip) return `https://clips.twitch.tv/embed?${new URLSearchParams({ clip: f.clip, parent: e.host, autoplay: String(!!e.play), muted: "true" })}`;
|
|
1246
1246
|
const y = new URLSearchParams({ parent: e.host, autoplay: String(!!e.play), muted: "true" });
|
|
1247
|
-
return f.video ? (y.set("video", `v${f.video}`), y.set("time",
|
|
1247
|
+
return f.video ? (y.set("video", `v${f.video}`), y.set("time", qo(e.t))) : f.channel && y.set("channel", f.channel), `https://player.twitch.tv/?${y}`;
|
|
1248
1248
|
}
|
|
1249
1249
|
case "facebook":
|
|
1250
1250
|
return `https://www.facebook.com/plugins/video.php?${new URLSearchParams({ href: t, autoplay: String(!!e.play), mute: "1", show_text: "false", show_captions: "false" })}`;
|
|
@@ -1300,10 +1300,10 @@ function aa(t, e) {
|
|
|
1300
1300
|
return null;
|
|
1301
1301
|
}
|
|
1302
1302
|
}
|
|
1303
|
-
function
|
|
1304
|
-
return !!t &&
|
|
1303
|
+
function Ko(t) {
|
|
1304
|
+
return !!t && oa(t, { t: 0, play: !1, host: "localhost" }) != null;
|
|
1305
1305
|
}
|
|
1306
|
-
function
|
|
1306
|
+
function Jo(t, e) {
|
|
1307
1307
|
const n = e == null ? void 0 : e.trim();
|
|
1308
1308
|
if (!t || !n) return null;
|
|
1309
1309
|
switch (t) {
|
|
@@ -1347,31 +1347,31 @@ function Ko(t, e) {
|
|
|
1347
1347
|
return null;
|
|
1348
1348
|
}
|
|
1349
1349
|
}
|
|
1350
|
-
function Jo(t) {
|
|
1351
|
-
return !t || t.kind !== "url" ? null : Ko(t.site, t.embedId) ?? t.url ?? null;
|
|
1352
|
-
}
|
|
1353
1350
|
function Xo(t) {
|
|
1351
|
+
return !t || t.kind !== "url" ? null : Jo(t.site, t.embedId) ?? t.url ?? null;
|
|
1352
|
+
}
|
|
1353
|
+
function el(t) {
|
|
1354
1354
|
const e = Ke(t);
|
|
1355
1355
|
if (!e) return null;
|
|
1356
1356
|
const n = /\/(?:medias|embed\/iframe|embed\/medias)\/([a-z0-9]+)/i.exec(e.pathname) ?? (/(^|\.)wi\.st$/i.test(e.hostname) ? /\/([a-z0-9]+)/i.exec(e.pathname) : null);
|
|
1357
1357
|
return n ? n[1] : null;
|
|
1358
1358
|
}
|
|
1359
|
-
function
|
|
1359
|
+
function tl(t) {
|
|
1360
1360
|
var n;
|
|
1361
1361
|
const e = /\/(?:watch\/)?([A-Za-z0-9_-]{16,})(?:\.html)?\/?$/.exec(((n = Ke(t)) == null ? void 0 : n.pathname) ?? "");
|
|
1362
1362
|
return e ? e[1] : null;
|
|
1363
1363
|
}
|
|
1364
|
-
const
|
|
1365
|
-
function
|
|
1364
|
+
const nl = { dailymotion: /(^|\.)dailymotion\.com$/ };
|
|
1365
|
+
function rl(t) {
|
|
1366
1366
|
const e = Zt(t);
|
|
1367
|
-
return e ?
|
|
1367
|
+
return e ? nl[e.id] ?? null : null;
|
|
1368
1368
|
}
|
|
1369
|
-
function
|
|
1369
|
+
function sl({ url: t, t: e, playing: n, seekN: r, title: s, onToggle: a }) {
|
|
1370
1370
|
const o = w(e);
|
|
1371
1371
|
o.current = e;
|
|
1372
|
-
const [l, c] =
|
|
1372
|
+
const [l, c] = z(!1), u = typeof window < "u" ? window.location.hostname : "localhost", d = ze(() => oa(t, { t: o.current, play: n, host: u }), [t, n, r, u]), [h, M] = z(!1), g = w(!1);
|
|
1373
1373
|
return x(() => {
|
|
1374
|
-
const f =
|
|
1374
|
+
const f = rl(t);
|
|
1375
1375
|
if (!f) return;
|
|
1376
1376
|
g.current = !1, M(!1);
|
|
1377
1377
|
const y = (N) => {
|
|
@@ -1407,9 +1407,9 @@ function rl({ url: t, t: e, playing: n, seekN: r, title: s, onToggle: a }) {
|
|
|
1407
1407
|
l && /* @__PURE__ */ i("div", { className: `txyt__paused${n ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) }) })
|
|
1408
1408
|
] });
|
|
1409
1409
|
}
|
|
1410
|
-
let
|
|
1411
|
-
function
|
|
1412
|
-
return
|
|
1410
|
+
let En = null;
|
|
1411
|
+
function il() {
|
|
1412
|
+
return En || (En = new Promise((t) => {
|
|
1413
1413
|
const e = window;
|
|
1414
1414
|
if (e.FB) {
|
|
1415
1415
|
t(e.FB);
|
|
@@ -1422,13 +1422,13 @@ function sl() {
|
|
|
1422
1422
|
};
|
|
1423
1423
|
const r = document.createElement("script");
|
|
1424
1424
|
r.src = "https://connect.facebook.net/en_US/sdk.js", r.async = !0, r.crossOrigin = "anonymous", r.onerror = () => t(null), document.body.appendChild(r);
|
|
1425
|
-
}),
|
|
1425
|
+
}), En);
|
|
1426
1426
|
}
|
|
1427
|
-
let
|
|
1428
|
-
function
|
|
1427
|
+
let al = 0;
|
|
1428
|
+
function ol({ url: t, t: e, playing: n, seekN: r, onToggle: s }) {
|
|
1429
1429
|
const a = w(null), o = w(null), l = w(e);
|
|
1430
1430
|
l.current = e;
|
|
1431
|
-
const [c, u] =
|
|
1431
|
+
const [c, u] = z(!1), [d] = z(() => `vsp-fb-${++al}`);
|
|
1432
1432
|
return x(() => {
|
|
1433
1433
|
let h = !0;
|
|
1434
1434
|
const M = a.current;
|
|
@@ -1447,7 +1447,7 @@ function al({ url: t, t: e, playing: n, seekN: r, onToggle: s }) {
|
|
|
1447
1447
|
u(!0);
|
|
1448
1448
|
}
|
|
1449
1449
|
};
|
|
1450
|
-
return
|
|
1450
|
+
return il().then((T) => {
|
|
1451
1451
|
!h || !T || (f = T, T.Event.subscribe("xfbml.ready", y), T.XFBML.parse(M));
|
|
1452
1452
|
}), () => {
|
|
1453
1453
|
h = !1, o.current = null, u(!1);
|
|
@@ -1487,19 +1487,19 @@ function al({ url: t, t: e, playing: n, seekN: r, onToggle: s }) {
|
|
|
1487
1487
|
c && /* @__PURE__ */ i("div", { className: `txyt__paused${n ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) }) })
|
|
1488
1488
|
] });
|
|
1489
1489
|
}
|
|
1490
|
-
let
|
|
1491
|
-
function
|
|
1492
|
-
return
|
|
1490
|
+
let _n = null;
|
|
1491
|
+
function ll() {
|
|
1492
|
+
return _n || (_n = new Promise((t) => {
|
|
1493
1493
|
const e = document.createElement("script");
|
|
1494
1494
|
e.src = "https://fast.wistia.net/assets/external/E-v1.js", e.async = !0, e.onload = () => t(), e.onerror = () => t(), document.head.appendChild(e);
|
|
1495
|
-
}),
|
|
1495
|
+
}), _n);
|
|
1496
1496
|
}
|
|
1497
|
-
function
|
|
1497
|
+
function cl({ id: t, t: e, playing: n, seekN: r, onToggle: s }) {
|
|
1498
1498
|
const a = w(null), o = w(e);
|
|
1499
1499
|
o.current = e;
|
|
1500
1500
|
const l = w(n);
|
|
1501
1501
|
l.current = n;
|
|
1502
|
-
const [c, u] =
|
|
1502
|
+
const [c, u] = z(!1);
|
|
1503
1503
|
x(() => {
|
|
1504
1504
|
let h = !0;
|
|
1505
1505
|
const M = window;
|
|
@@ -1515,7 +1515,7 @@ function ll({ id: t, t: e, playing: n, seekN: r, onToggle: s }) {
|
|
|
1515
1515
|
u(!0);
|
|
1516
1516
|
}
|
|
1517
1517
|
}
|
|
1518
|
-
}),
|
|
1518
|
+
}), ll(), () => {
|
|
1519
1519
|
h = !1, a.current = null, u(!1);
|
|
1520
1520
|
};
|
|
1521
1521
|
}, [t]), x(() => {
|
|
@@ -1550,9 +1550,9 @@ function ll({ id: t, t: e, playing: n, seekN: r, onToggle: s }) {
|
|
|
1550
1550
|
c && /* @__PURE__ */ i("div", { className: `txyt__paused${n ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) }) })
|
|
1551
1551
|
] });
|
|
1552
1552
|
}
|
|
1553
|
-
let
|
|
1554
|
-
function
|
|
1555
|
-
return
|
|
1553
|
+
let Yn = null;
|
|
1554
|
+
function ul() {
|
|
1555
|
+
return Yn || (Yn = new Promise((t) => {
|
|
1556
1556
|
const e = window;
|
|
1557
1557
|
if (e.VidyardV4) {
|
|
1558
1558
|
t(e.VidyardV4.api);
|
|
@@ -1565,19 +1565,19 @@ function cl() {
|
|
|
1565
1565
|
};
|
|
1566
1566
|
s();
|
|
1567
1567
|
}, n.onerror = () => t(null), document.head.appendChild(n);
|
|
1568
|
-
}),
|
|
1568
|
+
}), Yn);
|
|
1569
1569
|
}
|
|
1570
|
-
function
|
|
1570
|
+
function dl({ uuid: t, t: e, playing: n, seekN: r, onToggle: s }) {
|
|
1571
1571
|
const a = w(null), o = w(null), l = w(e);
|
|
1572
1572
|
l.current = e;
|
|
1573
1573
|
const c = w(n);
|
|
1574
1574
|
c.current = n;
|
|
1575
|
-
const [u, d] =
|
|
1575
|
+
const [u, d] = z(!1);
|
|
1576
1576
|
return x(() => {
|
|
1577
1577
|
let h = !0;
|
|
1578
1578
|
const M = a.current;
|
|
1579
1579
|
if (M)
|
|
1580
|
-
return M.innerHTML = "",
|
|
1580
|
+
return M.innerHTML = "", ul().then((g) => {
|
|
1581
1581
|
if (!(!h || !g))
|
|
1582
1582
|
return g.renderPlayer({ uuid: t, container: M, type: "inline", autoplay: 0, muted: 1, controls: 0 }).then((f) => {
|
|
1583
1583
|
if (h) {
|
|
@@ -1623,7 +1623,7 @@ function ul({ uuid: t, t: e, playing: n, seekN: r, onToggle: s }) {
|
|
|
1623
1623
|
u && /* @__PURE__ */ i("div", { className: `txyt__paused${n ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) }) })
|
|
1624
1624
|
] });
|
|
1625
1625
|
}
|
|
1626
|
-
async function
|
|
1626
|
+
async function hl(t) {
|
|
1627
1627
|
try {
|
|
1628
1628
|
const e = await fetch(`https://www.loom.com/api/campaigns/sessions/${t}/raw-url`, { method: "POST" });
|
|
1629
1629
|
if (!e.ok || e.status === 204) return null;
|
|
@@ -1633,17 +1633,17 @@ async function dl(t) {
|
|
|
1633
1633
|
return null;
|
|
1634
1634
|
}
|
|
1635
1635
|
}
|
|
1636
|
-
function
|
|
1636
|
+
function fl(t) {
|
|
1637
1637
|
const e = t.includes("?") ? t.slice(t.indexOf("?") + 1) : "";
|
|
1638
1638
|
return (n, r) => {
|
|
1639
1639
|
e && !r.includes("Signature=") && n.open("GET", r + (r.includes("?") ? "&" : "?") + e, !0);
|
|
1640
1640
|
};
|
|
1641
1641
|
}
|
|
1642
|
-
function
|
|
1642
|
+
function Ml(t) {
|
|
1643
1643
|
return (e, n) => {
|
|
1644
1644
|
let r = !0, s = null;
|
|
1645
1645
|
return (async () => {
|
|
1646
|
-
const a = await
|
|
1646
|
+
const a = await hl(t);
|
|
1647
1647
|
if (!r) return;
|
|
1648
1648
|
if (!a) {
|
|
1649
1649
|
n();
|
|
@@ -1656,7 +1656,7 @@ function fl(t) {
|
|
|
1656
1656
|
n();
|
|
1657
1657
|
return;
|
|
1658
1658
|
}
|
|
1659
|
-
const c = new l({ xhrSetup:
|
|
1659
|
+
const c = new l({ xhrSetup: fl(a), capLevelToPlayerSize: !0, startLevel: 0, maxBufferLength: 20 });
|
|
1660
1660
|
c.on(l.Events.ERROR, (u, d) => {
|
|
1661
1661
|
d.fatal && (c.destroy(), n());
|
|
1662
1662
|
}), c.loadSource(a), c.attachMedia(e), s = () => c.destroy();
|
|
@@ -1666,8 +1666,8 @@ function fl(t) {
|
|
|
1666
1666
|
};
|
|
1667
1667
|
}
|
|
1668
1668
|
const cn = /* @__PURE__ */ new Map();
|
|
1669
|
-
function
|
|
1670
|
-
const [e, n] =
|
|
1669
|
+
function gl(t) {
|
|
1670
|
+
const [e, n] = z(() => t ? cn.get(t) ?? null : null);
|
|
1671
1671
|
return x(() => {
|
|
1672
1672
|
if (!t) {
|
|
1673
1673
|
n(null);
|
|
@@ -1688,11 +1688,11 @@ function Ml(t) {
|
|
|
1688
1688
|
};
|
|
1689
1689
|
}, [t]), e;
|
|
1690
1690
|
}
|
|
1691
|
-
const
|
|
1692
|
-
function
|
|
1691
|
+
const ml = /^[0-9a-f]{16,}$/i, ji = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
1692
|
+
function pl(t) {
|
|
1693
1693
|
const e = (r) => {
|
|
1694
1694
|
const s = r == null ? void 0 : r.trim();
|
|
1695
|
-
return s && s !== t.id && !
|
|
1695
|
+
return s && s !== t.id && !ji.test(s) && !ml.test(s) ? s : null;
|
|
1696
1696
|
}, n = (() => {
|
|
1697
1697
|
if (!t.url) return null;
|
|
1698
1698
|
try {
|
|
@@ -1701,39 +1701,39 @@ function ml(t) {
|
|
|
1701
1701
|
return null;
|
|
1702
1702
|
}
|
|
1703
1703
|
})();
|
|
1704
|
-
return e(t.name) ?? e(t.sourceName) ?? e(t.ytTitle) ?? n ?? (
|
|
1704
|
+
return e(t.name) ?? e(t.sourceName) ?? e(t.ytTitle) ?? n ?? (ji.test(t.id) ? "VocalStack" : t.id);
|
|
1705
1705
|
}
|
|
1706
|
-
const
|
|
1707
|
-
function
|
|
1708
|
-
t.muted = e.muted, Math.abs(t.currentTime - e.t) >
|
|
1706
|
+
const yl = 0.3;
|
|
1707
|
+
function zi(t, e) {
|
|
1708
|
+
t.muted = e.muted, Math.abs(t.currentTime - e.t) > yl && (t.currentTime = Math.max(0, e.t)), e.playing ? t.paused && Promise.resolve(t.play()).catch(() => {
|
|
1709
1709
|
}) : t.paused || t.pause();
|
|
1710
1710
|
}
|
|
1711
|
-
const
|
|
1712
|
-
function
|
|
1711
|
+
const Hn = "Remove background sound", Nl = "Takes out everything that isn't speech: music, ambience and noise.";
|
|
1712
|
+
function Tl(t) {
|
|
1713
1713
|
const e = Math.max(0, Math.floor(t)), n = Math.floor(e / 3600), r = Math.floor(e % 3600 / 60), s = String(e % 60).padStart(2, "0");
|
|
1714
1714
|
return n ? `${n}:${String(r).padStart(2, "0")}:${s}` : `${r}:${s}`;
|
|
1715
1715
|
}
|
|
1716
|
-
function
|
|
1717
|
-
return e === "unavailable" ? `Not available for this ${n}` : e === "making" ? r > 0 ? `Separating the speech from the background… ready up to ${
|
|
1716
|
+
function vl(t, e, n = "transcription", r = 0) {
|
|
1717
|
+
return e === "unavailable" ? `Not available for this ${n}` : e === "making" ? r > 0 ? `Separating the speech from the background… ready up to ${Tl(r)}` : "Separating the speech from the background…" : Nl;
|
|
1718
1718
|
}
|
|
1719
|
-
function
|
|
1719
|
+
function wl(t, e) {
|
|
1720
1720
|
return { bed: e && !t, speech: !e && t };
|
|
1721
1721
|
}
|
|
1722
|
-
function
|
|
1722
|
+
function kl(t) {
|
|
1723
1723
|
const e = t.get("bg");
|
|
1724
1724
|
return e === "off" || e === "remove";
|
|
1725
1725
|
}
|
|
1726
|
-
function
|
|
1726
|
+
function Ll(t, e) {
|
|
1727
1727
|
e ? t.searchParams.set("bg", "remove") : t.searchParams.delete("bg");
|
|
1728
1728
|
}
|
|
1729
|
-
function
|
|
1729
|
+
function jl(t, e) {
|
|
1730
1730
|
var r, s;
|
|
1731
1731
|
if (t !== 503) return null;
|
|
1732
1732
|
const n = (s = (r = e == null ? void 0 : e.data) == null ? void 0 : r.details) == null ? void 0 : s.retryAfterS;
|
|
1733
1733
|
return typeof n == "number" && n > 0 ? Math.max(2, n) : 3;
|
|
1734
1734
|
}
|
|
1735
|
-
const
|
|
1736
|
-
function
|
|
1735
|
+
const zl = 0.05;
|
|
1736
|
+
function Il(t) {
|
|
1737
1737
|
var r, s;
|
|
1738
1738
|
const e = (s = (r = t == null ? void 0 : t.data) == null ? void 0 : r.details) == null ? void 0 : s.parts, n = [];
|
|
1739
1739
|
if (Array.isArray(e))
|
|
@@ -1745,8 +1745,8 @@ function zl(t) {
|
|
|
1745
1745
|
}
|
|
1746
1746
|
return { untilS: n.length ? n[n.length - 1].endS : 0, parts: n };
|
|
1747
1747
|
}
|
|
1748
|
-
function
|
|
1749
|
-
if (!t.length || e < 0 || e >= t[t.length - 1].endS -
|
|
1748
|
+
function bl(t, e) {
|
|
1749
|
+
if (!t.length || e < 0 || e >= t[t.length - 1].endS - zl) return -1;
|
|
1750
1750
|
let n = 0, r = t.length - 1;
|
|
1751
1751
|
for (; n < r; ) {
|
|
1752
1752
|
const s = n + r + 1 >> 1;
|
|
@@ -1754,23 +1754,23 @@ function Il(t, e) {
|
|
|
1754
1754
|
}
|
|
1755
1755
|
return n;
|
|
1756
1756
|
}
|
|
1757
|
-
function
|
|
1757
|
+
function Ol(t, e, n, r) {
|
|
1758
1758
|
const s = t[e].startS, a = n[r] === s ? r : n[1 - r] === s ? 1 - r : r, o = [];
|
|
1759
1759
|
n[a] !== s && o.push([a, e]);
|
|
1760
1760
|
const l = 1 - a;
|
|
1761
1761
|
return e + 1 < t.length && n[l] !== t[e + 1].startS && o.push([l, e + 1]), { play: a, load: o };
|
|
1762
1762
|
}
|
|
1763
|
-
async function
|
|
1763
|
+
async function xl(t) {
|
|
1764
1764
|
const e = await fetch(t, { redirect: "manual", credentials: "omit" });
|
|
1765
1765
|
if (e.type === "opaqueredirect" || e.status >= 300 && e.status < 400 || e.ok) return { ready: !0 };
|
|
1766
1766
|
const n = await e.json().catch(() => null);
|
|
1767
|
-
return { ready: !1, retryS:
|
|
1767
|
+
return { ready: !1, retryS: jl(e.status, n), ...Il(n) };
|
|
1768
1768
|
}
|
|
1769
1769
|
function Tr(t) {
|
|
1770
1770
|
t && (t.pause(), t.removeAttribute("src"), t.load());
|
|
1771
1771
|
}
|
|
1772
|
-
function
|
|
1773
|
-
const [n, r] =
|
|
1772
|
+
function la(t, e) {
|
|
1773
|
+
const [n, r] = z("off"), [s, a] = z([]), [o, l] = z(!1), c = w(null), u = w([null, null]), d = w([NaN, NaN]), h = w(0);
|
|
1774
1774
|
return x(() => {
|
|
1775
1775
|
if (a([]), l(!1), !t) {
|
|
1776
1776
|
r("off");
|
|
@@ -1779,7 +1779,7 @@ function oa(t, e) {
|
|
|
1779
1779
|
let M = !1, g;
|
|
1780
1780
|
r("making");
|
|
1781
1781
|
const f = () => {
|
|
1782
|
-
|
|
1782
|
+
xl(t).then((y) => {
|
|
1783
1783
|
if (!M) {
|
|
1784
1784
|
if (y.ready) {
|
|
1785
1785
|
const T = new Audio();
|
|
@@ -1808,34 +1808,34 @@ function oa(t, e) {
|
|
|
1808
1808
|
for (const N of u.current) N && !N.paused && N.pause();
|
|
1809
1809
|
};
|
|
1810
1810
|
if (n === "ready" && c.current) {
|
|
1811
|
-
M(),
|
|
1811
|
+
M(), zi(c.current, e), l(!0);
|
|
1812
1812
|
return;
|
|
1813
1813
|
}
|
|
1814
|
-
const g = n === "making" ?
|
|
1814
|
+
const g = n === "making" ? bl(s, e.t) : -1;
|
|
1815
1815
|
if (g < 0) {
|
|
1816
1816
|
M(), l(!1);
|
|
1817
1817
|
return;
|
|
1818
1818
|
}
|
|
1819
|
-
const f =
|
|
1819
|
+
const f = Ol(s, g, d.current, h.current);
|
|
1820
1820
|
for (const [N, p] of f.load) {
|
|
1821
1821
|
let b = u.current[N];
|
|
1822
1822
|
b || (b = new Audio(), b.preload = "auto", u.current[N] = b), b.pause(), b.src = s[p].url, d.current[N] = s[p].startS;
|
|
1823
1823
|
}
|
|
1824
1824
|
h.current = f.play;
|
|
1825
1825
|
const y = u.current[f.play], T = u.current[1 - f.play];
|
|
1826
|
-
T && !T.paused && T.pause(),
|
|
1826
|
+
T && !T.paused && T.pause(), zi(y, { ...e, t: e.t - s[g].startS }), l(!e.playing || y.readyState >= 3);
|
|
1827
1827
|
}, [n, s, e.t, e.playing, e.muted]), { state: n, on: o, untilS: n === "ready" ? 1 / 0 : s.length ? s[s.length - 1].endS : 0 };
|
|
1828
1828
|
}
|
|
1829
|
-
function
|
|
1830
|
-
return
|
|
1829
|
+
function Cl(t, e) {
|
|
1830
|
+
return la(t, e).state;
|
|
1831
1831
|
}
|
|
1832
|
-
const
|
|
1832
|
+
const Sl = 0.5, Dl = 3;
|
|
1833
1833
|
function Br(t, e) {
|
|
1834
1834
|
let n = -1;
|
|
1835
1835
|
for (let r = 0; r < t.length && t[r].start <= e + 0.02; r++) n = r;
|
|
1836
1836
|
return n;
|
|
1837
1837
|
}
|
|
1838
|
-
function
|
|
1838
|
+
function Al(t, e, n) {
|
|
1839
1839
|
const r = Br(t, n);
|
|
1840
1840
|
if (r < 0) return { kind: "none" };
|
|
1841
1841
|
const s = t[r];
|
|
@@ -1853,14 +1853,14 @@ function Dl(t, e, n) {
|
|
|
1853
1853
|
}
|
|
1854
1854
|
return { kind: "done", sid: s.sid };
|
|
1855
1855
|
}
|
|
1856
|
-
function
|
|
1856
|
+
function El(t, e, n) {
|
|
1857
1857
|
if (n == null) return !1;
|
|
1858
1858
|
const r = Br(t, e);
|
|
1859
1859
|
if (r < 0) return !1;
|
|
1860
1860
|
const s = t[r];
|
|
1861
1861
|
return e >= s.end ? s.sid === n : r > 0 && t[r - 1].sid === n && e - s.start < 1.5;
|
|
1862
1862
|
}
|
|
1863
|
-
function
|
|
1863
|
+
function _l(t, e, n, r = Dl) {
|
|
1864
1864
|
const s = Math.max(0, Br(t, n)), a = [];
|
|
1865
1865
|
for (let o = s; o < t.length && o <= s + r; o++) {
|
|
1866
1866
|
const l = (e.get(t[o].sid) ?? []).find((c) => c.part === 0);
|
|
@@ -1868,12 +1868,12 @@ function El(t, e, n, r = Sl) {
|
|
|
1868
1868
|
}
|
|
1869
1869
|
return a;
|
|
1870
1870
|
}
|
|
1871
|
-
function
|
|
1871
|
+
function Yl(t) {
|
|
1872
1872
|
const e = ze(() => {
|
|
1873
1873
|
const c = /* @__PURE__ */ new Map();
|
|
1874
1874
|
for (const u of t.clips) c.set(u.sentenceId, [...c.get(u.sentenceId) ?? [], u]);
|
|
1875
1875
|
return c;
|
|
1876
|
-
}, [t.clips]), n = w(/* @__PURE__ */ new Map()), r = w(null), [s, a] =
|
|
1876
|
+
}, [t.clips]), n = w(/* @__PURE__ */ new Map()), r = w(null), [s, a] = z({ missing: null, sid: null }), o = (c) => {
|
|
1877
1877
|
let u = n.current.get(c);
|
|
1878
1878
|
return u || (u = new Audio(), u.preload = "auto", u.src = c, n.current.set(c, u)), u;
|
|
1879
1879
|
}, l = () => {
|
|
@@ -1889,9 +1889,9 @@ function _l(t) {
|
|
|
1889
1889
|
l(), a((f) => f.missing == null && f.sid == null ? f : { missing: null, sid: null });
|
|
1890
1890
|
return;
|
|
1891
1891
|
}
|
|
1892
|
-
const c =
|
|
1892
|
+
const c = Al(t.lines, e, t.t), u = c.kind === "missing" ? c.sid : null, d = c.kind === "none" ? null : c.sid;
|
|
1893
1893
|
a((f) => f.missing === u && f.sid === d ? f : { missing: u, sid: d });
|
|
1894
|
-
const h = new Set(
|
|
1894
|
+
const h = new Set(_l(t.lines, e, t.t));
|
|
1895
1895
|
for (const f of h) o(f);
|
|
1896
1896
|
const M = r.current;
|
|
1897
1897
|
M && h.add(M.src);
|
|
@@ -1901,12 +1901,12 @@ function _l(t) {
|
|
|
1901
1901
|
return;
|
|
1902
1902
|
}
|
|
1903
1903
|
if (c.kind !== "play") {
|
|
1904
|
-
if (M && !M.el.paused && !M.el.ended &&
|
|
1904
|
+
if (M && !M.el.paused && !M.el.ended && El(t.lines, t.t, M.sid)) return;
|
|
1905
1905
|
M && M.el.pause(), r.current = null;
|
|
1906
1906
|
return;
|
|
1907
1907
|
}
|
|
1908
1908
|
if (M && M.src === c.src) {
|
|
1909
|
-
if (M.el.muted = t.muted, !M.el.ended && Math.abs(M.el.currentTime - c.offset) >
|
|
1909
|
+
if (M.el.muted = t.muted, !M.el.ended && Math.abs(M.el.currentTime - c.offset) > Sl)
|
|
1910
1910
|
try {
|
|
1911
1911
|
M.el.currentTime = c.offset;
|
|
1912
1912
|
} catch {
|
|
@@ -1926,8 +1926,8 @@ function _l(t) {
|
|
|
1926
1926
|
});
|
|
1927
1927
|
}, [t.on, t.t, t.playing, t.muted, t.lines, e]), s;
|
|
1928
1928
|
}
|
|
1929
|
-
const
|
|
1930
|
-
function
|
|
1929
|
+
const Ii = ["play", "pause", "stop", "nexttrack", "previoustrack"];
|
|
1930
|
+
function Ul(t, e) {
|
|
1931
1931
|
var n, r;
|
|
1932
1932
|
if (t === "play") {
|
|
1933
1933
|
e.playing || e.toggle();
|
|
@@ -1943,31 +1943,31 @@ function Yl(t, e) {
|
|
|
1943
1943
|
}
|
|
1944
1944
|
(r = e.prev) == null || r.call(e);
|
|
1945
1945
|
}
|
|
1946
|
-
function
|
|
1947
|
-
for (const n of
|
|
1946
|
+
function $l(t, e) {
|
|
1947
|
+
for (const n of Ii)
|
|
1948
1948
|
try {
|
|
1949
1949
|
t.setActionHandler(n, () => {
|
|
1950
1950
|
const r = e();
|
|
1951
|
-
r &&
|
|
1951
|
+
r && Ul(n, r);
|
|
1952
1952
|
});
|
|
1953
1953
|
} catch {
|
|
1954
1954
|
}
|
|
1955
1955
|
return () => {
|
|
1956
|
-
for (const n of
|
|
1956
|
+
for (const n of Ii)
|
|
1957
1957
|
try {
|
|
1958
1958
|
t.setActionHandler(n, null);
|
|
1959
1959
|
} catch {
|
|
1960
1960
|
}
|
|
1961
1961
|
};
|
|
1962
1962
|
}
|
|
1963
|
-
function
|
|
1963
|
+
function Rl(t, e) {
|
|
1964
1964
|
const n = w(t);
|
|
1965
1965
|
n.current = t;
|
|
1966
1966
|
const r = !!t;
|
|
1967
1967
|
x(() => {
|
|
1968
1968
|
const a = typeof navigator < "u" ? navigator.mediaSession : void 0;
|
|
1969
1969
|
if (!(!a || !r))
|
|
1970
|
-
return
|
|
1970
|
+
return $l(a, () => n.current);
|
|
1971
1971
|
}, [r]);
|
|
1972
1972
|
const s = !!(t != null && t.playing);
|
|
1973
1973
|
x(() => {
|
|
@@ -1999,7 +1999,7 @@ function en() {
|
|
|
1999
1999
|
spans: []
|
|
2000
2000
|
};
|
|
2001
2001
|
}
|
|
2002
|
-
function
|
|
2002
|
+
function Pl(t, e) {
|
|
2003
2003
|
for (const r of t.spans) {
|
|
2004
2004
|
const s = r.mediaEnd ?? 1 / 0;
|
|
2005
2005
|
if (e < s || r.mediaEnd == null) return r.wallStart + Math.max(0, e - r.mediaStart);
|
|
@@ -2072,11 +2072,11 @@ function vr(t, e) {
|
|
|
2072
2072
|
])
|
|
2073
2073
|
), n;
|
|
2074
2074
|
}
|
|
2075
|
-
function
|
|
2075
|
+
function bi(t, e) {
|
|
2076
2076
|
const n = e ?? {};
|
|
2077
2077
|
return !t || !Object.keys(t).length ? n : Object.keys(n).length ? { ...t, ...n } : t;
|
|
2078
2078
|
}
|
|
2079
|
-
function
|
|
2079
|
+
function Ql(t, e) {
|
|
2080
2080
|
const n = e.tail;
|
|
2081
2081
|
if (!n || !Array.isArray(n.words) || n.replaced !== t.length || n.words.length !== t.length) return !1;
|
|
2082
2082
|
let r = !1;
|
|
@@ -2093,7 +2093,7 @@ function Pl(t, e) {
|
|
|
2093
2093
|
}
|
|
2094
2094
|
return r;
|
|
2095
2095
|
}
|
|
2096
|
-
function
|
|
2096
|
+
function Vl(t, e) {
|
|
2097
2097
|
var n;
|
|
2098
2098
|
switch (delete t.numbers, e.type) {
|
|
2099
2099
|
case "transcript.committed": {
|
|
@@ -2113,7 +2113,7 @@ function Ql(t, e) {
|
|
|
2113
2113
|
confidence: r.confidence ?? (s == null ? void 0 : s.confidence),
|
|
2114
2114
|
latencyS: r.latencyS,
|
|
2115
2115
|
language: r.language,
|
|
2116
|
-
translations:
|
|
2116
|
+
translations: bi(s == null ? void 0 : s.translations, r.translations),
|
|
2117
2117
|
scriptPos: r.scriptPos ?? (s == null ? void 0 : s.scriptPos),
|
|
2118
2118
|
scriptFrom: r.scriptPos != null ? r.scriptFrom ?? void 0 : s == null ? void 0 : s.scriptFrom
|
|
2119
2119
|
}), r.speakerName && (t.speakers[r.speaker] = r.speakerName);
|
|
@@ -2134,7 +2134,7 @@ function Ql(t, e) {
|
|
|
2134
2134
|
}
|
|
2135
2135
|
case "transcript.amended": {
|
|
2136
2136
|
const r = t.segments.get(e.seq);
|
|
2137
|
-
if (r && r.corrected &&
|
|
2137
|
+
if (r && r.corrected && Ql(r.words, e)) {
|
|
2138
2138
|
r.text = e.text, r.words = hn(e.seq, e.tail.words);
|
|
2139
2139
|
break;
|
|
2140
2140
|
}
|
|
@@ -2182,7 +2182,7 @@ function Ql(t, e) {
|
|
|
2182
2182
|
seqs: r.seqs,
|
|
2183
2183
|
speaker: r.speaker,
|
|
2184
2184
|
start: r.start,
|
|
2185
|
-
wallStart:
|
|
2185
|
+
wallStart: Pl(t, r.start),
|
|
2186
2186
|
text: a ? s.text : r.text,
|
|
2187
2187
|
status: r.status === "open" ? "open" : "closed",
|
|
2188
2188
|
settled: !!r.settled,
|
|
@@ -2191,7 +2191,7 @@ function Ql(t, e) {
|
|
|
2191
2191
|
suppressed: !!r.suppressed,
|
|
2192
2192
|
unclear: !!r.unclear,
|
|
2193
2193
|
language: r.language,
|
|
2194
|
-
translations: a ? s.translations :
|
|
2194
|
+
translations: a ? s.translations : bi(s == null ? void 0 : s.translations, r.translations),
|
|
2195
2195
|
provisional: !!r.provisional,
|
|
2196
2196
|
translationLatencyS: r.translationLatencyS
|
|
2197
2197
|
}), r.speakerName && (t.speakers[r.speaker] = r.speakerName), r.settled) for (const o of r.seqs) {
|
|
@@ -2234,7 +2234,7 @@ function Ql(t, e) {
|
|
|
2234
2234
|
}
|
|
2235
2235
|
return typeof e.seq == "number" && (t.lastSeq = Math.max(t.lastSeq, e.seq)), t;
|
|
2236
2236
|
}
|
|
2237
|
-
function
|
|
2237
|
+
function Bl(t) {
|
|
2238
2238
|
const e = [], n = [...t.sentences.values()].sort((r, s) => r.start - s.start || (r.sentenceId ?? 0) - (s.sentenceId ?? 0));
|
|
2239
2239
|
for (const r of n) {
|
|
2240
2240
|
const s = r.seqs.map((l) => t.segments.get(l)).filter(Boolean), a = s.length === r.seqs.length || !r.text ? s.flatMap((l) => l.words) : [], o = s[s.length - 1];
|
|
@@ -2247,16 +2247,16 @@ function Vl(t) {
|
|
|
2247
2247
|
catchup: s.some((l) => l.catchup),
|
|
2248
2248
|
suppressed: r.suppressed || s.length > 0 && s.every((l) => l.suppressed),
|
|
2249
2249
|
unclear: r.unclear || s.length > 0 && s.every((l) => l.unclear),
|
|
2250
|
-
confidence:
|
|
2250
|
+
confidence: Hl(s),
|
|
2251
2251
|
latencyS: o == null ? void 0 : o.latencyS,
|
|
2252
2252
|
settled: r.settled || s.length > 0 && s.every((l) => l.settled),
|
|
2253
|
-
translations: Object.keys(r.translations).length ? r.translations :
|
|
2253
|
+
translations: Object.keys(r.translations).length ? r.translations : Wl(s),
|
|
2254
2254
|
speaker: r.speaker >= 0 ? r.speaker : (o == null ? void 0 : o.speaker) ?? -1
|
|
2255
2255
|
});
|
|
2256
2256
|
}
|
|
2257
2257
|
return e.sort((r, s) => r.start - s.start), e;
|
|
2258
2258
|
}
|
|
2259
|
-
function
|
|
2259
|
+
function Hl(t) {
|
|
2260
2260
|
let e = 0, n = 0;
|
|
2261
2261
|
for (const r of t) {
|
|
2262
2262
|
if (r.confidence == null) continue;
|
|
@@ -2265,20 +2265,20 @@ function Bl(t) {
|
|
|
2265
2265
|
}
|
|
2266
2266
|
return n ? e / n : void 0;
|
|
2267
2267
|
}
|
|
2268
|
-
function
|
|
2268
|
+
function Wl(t) {
|
|
2269
2269
|
const e = {};
|
|
2270
2270
|
for (const n of t) for (const [r, s] of Object.entries(n.translations)) e[r] = e[r] ? `${e[r]} ${s}` : s;
|
|
2271
2271
|
return e;
|
|
2272
2272
|
}
|
|
2273
|
-
const
|
|
2274
|
-
function Zl(t) {
|
|
2275
|
-
return t == null ? "" : t < Fl ? "low" : t < Wl ? "mid" : "";
|
|
2276
|
-
}
|
|
2277
|
-
const _n = ["a", "b", "c", "d", "e", "f", "g", "h"];
|
|
2273
|
+
const Fl = 0.85, Zl = 0.75;
|
|
2278
2274
|
function Gl(t) {
|
|
2279
|
-
return
|
|
2275
|
+
return t == null ? "" : t < Zl ? "low" : t < Fl ? "mid" : "";
|
|
2280
2276
|
}
|
|
2277
|
+
const Un = ["a", "b", "c", "d", "e", "f", "g", "h"];
|
|
2281
2278
|
function ql(t) {
|
|
2279
|
+
return Un[(t % Un.length + Un.length) % Un.length];
|
|
2280
|
+
}
|
|
2281
|
+
function Kl(t) {
|
|
2282
2282
|
if (t.numbers) return t.numbers;
|
|
2283
2283
|
const e = /* @__PURE__ */ new Map(), n = (a, o) => {
|
|
2284
2284
|
if (a < 0) return;
|
|
@@ -2292,28 +2292,28 @@ function ql(t) {
|
|
|
2292
2292
|
const r = [...e].sort((a, o) => a[1] - o[1] || a[0] - o[0]).map(([a]) => a), s = [...new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)].map(Number))].filter((a) => a >= 0 && !e.has(a)).sort((a, o) => a - o);
|
|
2293
2293
|
return t.numbers = new Map([...r, ...s].map((a, o) => [a, o + 1])), t.numbers;
|
|
2294
2294
|
}
|
|
2295
|
-
function
|
|
2295
|
+
function Wn(t, e) {
|
|
2296
2296
|
if (e < 0) return 0;
|
|
2297
|
-
const n =
|
|
2297
|
+
const n = Kl(t);
|
|
2298
2298
|
return n.get(e) ?? n.size + 1 + e;
|
|
2299
2299
|
}
|
|
2300
|
-
const
|
|
2301
|
-
function
|
|
2302
|
-
return t && t.trim() && !
|
|
2300
|
+
const Jl = /^\s*speaker\s+\d+\s*$/i;
|
|
2301
|
+
function Oi(t) {
|
|
2302
|
+
return t && t.trim() && !Jl.test(t) ? t : void 0;
|
|
2303
2303
|
}
|
|
2304
|
-
function
|
|
2304
|
+
function ca(t, e) {
|
|
2305
2305
|
var n;
|
|
2306
|
-
return
|
|
2306
|
+
return Oi(t.speakers[e]) ?? Oi((n = t.speakerIds[e]) == null ? void 0 : n.name);
|
|
2307
2307
|
}
|
|
2308
2308
|
function Hr(t, e) {
|
|
2309
|
-
return e < 0 ? "" :
|
|
2309
|
+
return e < 0 ? "" : ca(t, e) ?? `Speaker ${Wn(t, e)}`;
|
|
2310
2310
|
}
|
|
2311
|
-
function
|
|
2311
|
+
function ua(t, e) {
|
|
2312
2312
|
if (e < 0) return "?";
|
|
2313
|
-
const n =
|
|
2314
|
-
return n ? (n.split(" ").filter(Boolean).slice(0, 2).map((s) => s[0]).join("") || `S${
|
|
2313
|
+
const n = ca(t, e);
|
|
2314
|
+
return n ? (n.split(" ").filter(Boolean).slice(0, 2).map((s) => s[0]).join("") || `S${Wn(t, e)}`).toUpperCase() : `S${Wn(t, e)}`;
|
|
2315
2315
|
}
|
|
2316
|
-
function
|
|
2316
|
+
function Xl(t) {
|
|
2317
2317
|
if (t) {
|
|
2318
2318
|
if (t.startsWith("#"))
|
|
2319
2319
|
return { fg: t, soft: `color-mix(in srgb, ${t} 16%, transparent)` };
|
|
@@ -2322,10 +2322,10 @@ function Jl(t) {
|
|
|
2322
2322
|
}
|
|
2323
2323
|
}
|
|
2324
2324
|
function Wr(t, e) {
|
|
2325
|
-
const n = t.speakerIds[e], r =
|
|
2326
|
-
return { fg: r == null ? void 0 : r.fg, soft: r == null ? void 0 : r.soft, lane:
|
|
2325
|
+
const n = t.speakerIds[e], r = Xl(n == null ? void 0 : n.color);
|
|
2326
|
+
return { fg: r == null ? void 0 : r.fg, soft: r == null ? void 0 : r.soft, lane: ql(Wn(t, e) - 1), hasVoice: !!n };
|
|
2327
2327
|
}
|
|
2328
|
-
function
|
|
2328
|
+
function ec(t, e, n, r = !1) {
|
|
2329
2329
|
const s = n ? n.speakerLabels ?? "auto" : null, a = (r ? s : null) ?? t.labels ?? s ?? "on";
|
|
2330
2330
|
if (a !== "auto") return a === "on";
|
|
2331
2331
|
const o = /* @__PURE__ */ new Set();
|
|
@@ -2333,7 +2333,7 @@ function Xl(t, e, n, r = !1) {
|
|
|
2333
2333
|
return !0;
|
|
2334
2334
|
return !1;
|
|
2335
2335
|
}
|
|
2336
|
-
const
|
|
2336
|
+
const tc = /* @__PURE__ */ new Set([
|
|
2337
2337
|
"invalid_audio",
|
|
2338
2338
|
"invalid_options",
|
|
2339
2339
|
"invalid_token",
|
|
@@ -2358,14 +2358,14 @@ const ec = /* @__PURE__ */ new Set([
|
|
|
2358
2358
|
"invalid_request",
|
|
2359
2359
|
"aborted",
|
|
2360
2360
|
"unauthorized"
|
|
2361
|
-
]),
|
|
2361
|
+
]), da = {
|
|
2362
2362
|
internal: "Something went wrong on our side. Please try again.",
|
|
2363
2363
|
unavailable: "VocalStack is briefly unavailable. Please try again in a moment.",
|
|
2364
2364
|
engine_unavailable: "No transcription engine is available right now. Please try again in a moment.",
|
|
2365
2365
|
engine_lost: "The transcription engine stopped. Please try again.",
|
|
2366
2366
|
capacity_exceeded: "Every transcription engine is busy right now. Please try again in a moment.",
|
|
2367
2367
|
timeout: "That took too long. Please try again."
|
|
2368
|
-
}, Er =
|
|
2368
|
+
}, Er = da.internal, wr = "Can't reach VocalStack. Check your connection.", xi = {
|
|
2369
2369
|
NotAllowedError: "The browser blocked this. Allow it for this site, then try again.",
|
|
2370
2370
|
NotSupportedError: "The audio couldn't be loaded. Try again in a moment.",
|
|
2371
2371
|
AbortError: "It was cancelled."
|
|
@@ -2374,35 +2374,35 @@ function Ct(t) {
|
|
|
2374
2374
|
const e = t, n = typeof (e == null ? void 0 : e.code) == "string" ? e.code : void 0, r = typeof (e == null ? void 0 : e.status) == "number" ? e.status : void 0, s = e == null ? void 0 : e.details;
|
|
2375
2375
|
if (n || r && r >= 400) {
|
|
2376
2376
|
const o = typeof (e == null ? void 0 : e.requestId) == "string" && e.requestId ? { requestId: e.requestId } : {};
|
|
2377
|
-
return n &&
|
|
2377
|
+
return n && tc.has(n) && typeof (e == null ? void 0 : e.message) == "string" ? { message: e.message, code: n, status: r, details: s, ...o } : n === "unavailable" && r === void 0 ? { message: wr, code: n, details: s, ...o } : r === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : wr, code: n, status: r, details: s, ...o } : { message: n && da[n] || Er, code: n, status: r, details: s, ...o };
|
|
2378
2378
|
}
|
|
2379
2379
|
const a = (e == null ? void 0 : e.name) ?? "";
|
|
2380
|
-
return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 &&
|
|
2380
|
+
return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && Gi(t instanceof Error ? t : new Error(String(t))), { message: wr }) : xi[a] ? { message: xi[a] } : t instanceof Error && a === "Error" && !(t instanceof Wi) ? { message: t.message } : { message: Er };
|
|
2381
2381
|
}
|
|
2382
|
-
const
|
|
2382
|
+
const ha = "https://api.vocalstack.com", Fr = Hi(null);
|
|
2383
2383
|
function Gt() {
|
|
2384
|
-
const t =
|
|
2384
|
+
const t = fo(Fr);
|
|
2385
2385
|
if (!t) throw new Error("VocalStack player hooks must be used inside <VocalStackPlayer> or <PlayerApiProvider>");
|
|
2386
2386
|
return t;
|
|
2387
2387
|
}
|
|
2388
|
-
function
|
|
2389
|
-
return t.value ? /* @__PURE__ */ i(Fr.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ i(
|
|
2388
|
+
function nc(t) {
|
|
2389
|
+
return t.value ? /* @__PURE__ */ i(Fr.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ i(rc, { ...t });
|
|
2390
2390
|
}
|
|
2391
|
-
function
|
|
2392
|
-
const n =
|
|
2391
|
+
function rc({ children: t, ...e }) {
|
|
2392
|
+
const n = fa(e);
|
|
2393
2393
|
return /* @__PURE__ */ i(Fr.Provider, { value: n, children: t });
|
|
2394
2394
|
}
|
|
2395
|
-
const
|
|
2396
|
-
function
|
|
2397
|
-
return
|
|
2395
|
+
const sc = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
2396
|
+
function ic(t) {
|
|
2397
|
+
return sc.test(t);
|
|
2398
2398
|
}
|
|
2399
|
-
function
|
|
2400
|
-
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id ||
|
|
2399
|
+
function fa(t) {
|
|
2400
|
+
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || ic(t.id)), s = (t.baseUrl ?? ha).replace(/\/$/, ""), a = w(t.token);
|
|
2401
2401
|
a.current = t.token;
|
|
2402
2402
|
const o = !!t.token, l = ze(() => async () => {
|
|
2403
2403
|
const M = a.current;
|
|
2404
2404
|
return (typeof M == "function" ? await M() : M) || void 0;
|
|
2405
|
-
}, []), [c, u] =
|
|
2405
|
+
}, []), [c, u] = z(() => {
|
|
2406
2406
|
const M = t.token, g = typeof M == "function" ? M() : M;
|
|
2407
2407
|
return typeof g == "string" && g ? g : null;
|
|
2408
2408
|
});
|
|
@@ -2415,7 +2415,7 @@ function ha(t) {
|
|
|
2415
2415
|
M = !1;
|
|
2416
2416
|
};
|
|
2417
2417
|
}, [r, l]);
|
|
2418
|
-
const d = t.client ?? null, h = ze(() => d ?? new
|
|
2418
|
+
const d = t.client ?? null, h = ze(() => d ?? new Fi({ baseUrl: s, token: o && !e ? l : void 0 }), [d, s, o, l, e]);
|
|
2419
2419
|
return ze(() => {
|
|
2420
2420
|
if (e) return { client: h, origin: s, owner: !1, shareCode: null, listen: e, bearer: l, cred: { listenerToken: e.token }, readAs: { listenerToken: e.token } };
|
|
2421
2421
|
if (n) return { client: h, origin: s, owner: !1, shareCode: null, listen: null, bearer: l, cred: { listenerToken: n }, readAs: { listenerToken: n } };
|
|
@@ -2423,10 +2423,10 @@ function ha(t) {
|
|
|
2423
2423
|
return { client: h, origin: s, owner: r, shareCode: M, listen: null, bearer: l, cred: r ? { accessToken: c ?? void 0 } : { shareCode: M }, readAs: M ? { shareCode: M } : {} };
|
|
2424
2424
|
}, [h, s, r, t.id, l, e, n, c]);
|
|
2425
2425
|
}
|
|
2426
|
-
function
|
|
2426
|
+
function ac(t, e) {
|
|
2427
2427
|
return e ? { ...t, cred: { ...t.cred, media: e } } : t;
|
|
2428
2428
|
}
|
|
2429
|
-
async function
|
|
2429
|
+
async function oc(t, e) {
|
|
2430
2430
|
if (t.listen) {
|
|
2431
2431
|
const r = await t.client.recordings.get(t.listen.recordingId, t.readAs), s = r;
|
|
2432
2432
|
return { key: e, code: null, transcriptionId: t.listen.transcriptionId, name: s.name ?? s.title ?? "", recording: r, job: s.job ?? (s.source ? { source: s.source } : null), allowDownload: !0, allowExport: !0, allowTranslate: !0, sharedBy: null };
|
|
@@ -2451,11 +2451,11 @@ async function ac(t, e) {
|
|
|
2451
2451
|
sharedBy: n.sharedBy ?? null
|
|
2452
2452
|
};
|
|
2453
2453
|
}
|
|
2454
|
-
function
|
|
2455
|
-
const [n, r] =
|
|
2454
|
+
function lc(t, e) {
|
|
2455
|
+
const [n, r] = z(null), [s, a] = z(!1), [o, l] = z(null), [c, u] = z(0);
|
|
2456
2456
|
return x(() => {
|
|
2457
2457
|
let d = !0;
|
|
2458
|
-
return
|
|
2458
|
+
return oc(t, e).then((h) => {
|
|
2459
2459
|
d && (r(h), a(!1), l(null));
|
|
2460
2460
|
}).catch((h) => {
|
|
2461
2461
|
if (!d) return;
|
|
@@ -2466,8 +2466,8 @@ function oc(t, e) {
|
|
|
2466
2466
|
};
|
|
2467
2467
|
}, [t, e, c]), { source: n, gone: s, error: o, reload: () => u((d) => d + 1) };
|
|
2468
2468
|
}
|
|
2469
|
-
function
|
|
2470
|
-
const [n, r] =
|
|
2469
|
+
function cc(t, e) {
|
|
2470
|
+
const [n, r] = z(null);
|
|
2471
2471
|
return x(() => {
|
|
2472
2472
|
if (!t.owner || !e) {
|
|
2473
2473
|
r(null);
|
|
@@ -2487,7 +2487,7 @@ function lc(t, e) {
|
|
|
2487
2487
|
};
|
|
2488
2488
|
}, [t, e]), n;
|
|
2489
2489
|
}
|
|
2490
|
-
async function
|
|
2490
|
+
async function Ci(t, e, n = {}) {
|
|
2491
2491
|
const r = new URLSearchParams();
|
|
2492
2492
|
for (const [o, l] of Object.entries(n.query ?? {})) l != null && r.set(o, l);
|
|
2493
2493
|
t.shareCode && r.set("shareCode", t.shareCode), t.listen && r.set("listenerToken", t.listen.token);
|
|
@@ -2500,8 +2500,8 @@ async function xi(t, e, n = {}) {
|
|
|
2500
2500
|
return fetch(`${t.origin}${e}${a ? `${e.includes("?") ? "&" : "?"}${a}` : ""}`, { method: n.method ?? "GET", headers: s, body: n.body === void 0 ? void 0 : JSON.stringify(n.body) });
|
|
2501
2501
|
}
|
|
2502
2502
|
const kr = /* @__PURE__ */ new Map();
|
|
2503
|
-
function
|
|
2504
|
-
const t = Gt(), [e, n] =
|
|
2503
|
+
function Ma() {
|
|
2504
|
+
const t = Gt(), [e, n] = z(kr.get(t.origin) ?? null);
|
|
2505
2505
|
return x(() => {
|
|
2506
2506
|
kr.has(t.origin) || t.client.languages.list().then((r) => {
|
|
2507
2507
|
kr.set(t.origin, r), n(r);
|
|
@@ -2509,8 +2509,8 @@ function fa() {
|
|
|
2509
2509
|
});
|
|
2510
2510
|
}, [t]), e;
|
|
2511
2511
|
}
|
|
2512
|
-
function
|
|
2513
|
-
const [n, r] =
|
|
2512
|
+
function ga(t, e) {
|
|
2513
|
+
const [n, r] = z(null), [s, a] = z(null), [o, l] = z(0);
|
|
2514
2514
|
return x(() => {
|
|
2515
2515
|
let c = !0;
|
|
2516
2516
|
return t().then((u) => c && r(u)).catch((u) => c && a(Ct(u))), () => {
|
|
@@ -2518,11 +2518,11 @@ function Ma(t, e) {
|
|
|
2518
2518
|
};
|
|
2519
2519
|
}, [...e, o]), { data: n, error: s, reload: () => l((c) => c + 1) };
|
|
2520
2520
|
}
|
|
2521
|
-
const
|
|
2522
|
-
function
|
|
2521
|
+
const uc = (t) => new Promise((e) => setTimeout(e, t)), dc = 2500, hc = 72;
|
|
2522
|
+
function fc(t, e) {
|
|
2523
2523
|
const n = Gt(), r = w(n);
|
|
2524
2524
|
r.current = n;
|
|
2525
|
-
const [s, a] =
|
|
2525
|
+
const [s, a] = z(en), o = w(en()), l = w(null), c = w(e.lang ?? null), [u, d] = z(!1), [h, M] = z(null), [g, f] = z(!1), y = Je(() => {
|
|
2526
2526
|
const E = o.current;
|
|
2527
2527
|
a({ ...E });
|
|
2528
2528
|
}, []), T = w(e);
|
|
@@ -2553,7 +2553,7 @@ function hc(t, e) {
|
|
|
2553
2553
|
if (le.type === "snapshot")
|
|
2554
2554
|
o.current = vr(le.snapshot, le.reason === "gap" ? o.current : en()), y(), te();
|
|
2555
2555
|
else if (le.type === "frame") {
|
|
2556
|
-
|
|
2556
|
+
Vl(o.current, le.frame);
|
|
2557
2557
|
const Te = le.frame;
|
|
2558
2558
|
Te.type === "recording.state" && (C = o.current.state, (L = (J = T.current).onState) == null || L.call(J, Te.state, Te.reason)), (ne = (ie = T.current).onFrame) == null || ne.call(ie, Te), y();
|
|
2559
2559
|
} else le.type === "closed" && d(!1);
|
|
@@ -2588,14 +2588,14 @@ function hc(t, e) {
|
|
|
2588
2588
|
}
|
|
2589
2589
|
const X = o.current.state;
|
|
2590
2590
|
if (!E || X === "ended" || X === "finalized" || X === "processing") return;
|
|
2591
|
-
k += 1, await
|
|
2591
|
+
k += 1, await uc(Math.min(15e3, 1e3 * 2 ** Math.min(k, 4)));
|
|
2592
2592
|
}
|
|
2593
2593
|
})(), () => {
|
|
2594
2594
|
var J;
|
|
2595
2595
|
E = !1, (J = l.current) == null || J.close(), l.current = null, d(!1);
|
|
2596
2596
|
};
|
|
2597
2597
|
}, [t, n, e.voice]);
|
|
2598
|
-
const [N, p] =
|
|
2598
|
+
const [N, p] = z(!1), [b, S] = z(null), A = w(0), [P, O] = z(null), V = Je((E) => {
|
|
2599
2599
|
var te;
|
|
2600
2600
|
if (c.current = E, (te = l.current) == null || te.setLanguage(E), !t) return;
|
|
2601
2601
|
const k = r.current.client, Y = ++A.current;
|
|
@@ -2604,9 +2604,9 @@ function hc(t, e) {
|
|
|
2604
2604
|
Y === A.current && (o.current = vr(L, o.current), O(E), y(), L.translationPending && J > 0 && window.setTimeout(() => {
|
|
2605
2605
|
Y === A.current && C(J - 1).catch(() => {
|
|
2606
2606
|
});
|
|
2607
|
-
},
|
|
2607
|
+
}, dc));
|
|
2608
2608
|
});
|
|
2609
|
-
C(
|
|
2609
|
+
C(hc).catch(() => {
|
|
2610
2610
|
Y === A.current && E && S(E);
|
|
2611
2611
|
}).finally(() => {
|
|
2612
2612
|
Y === A.current && p(!1);
|
|
@@ -2622,7 +2622,7 @@ function hc(t, e) {
|
|
|
2622
2622
|
}, [y]), W = Je(() => M(null), []);
|
|
2623
2623
|
return { model: s, connected: u, error: h, notFound: g, clearError: W, setLanguage: V, mergeTranslations: I, translating: N, translateFailed: b, shownLang: P };
|
|
2624
2624
|
}
|
|
2625
|
-
const
|
|
2625
|
+
const Si = {
|
|
2626
2626
|
English: { vcFor: "Voice for", vcMute: "Mute", vcUnmute: "Unmute", vcMuted: "MUTED", vcShared: "Also used by", vcUsedBy: "Used by", vcUnknownSpk: "Unknown", vcUse: "Use this voice", vcGetting: "Downloading…", vcSample: "Here’s how it sounds.", vcPreview: "PREVIEW", vcMale: "Male", vcFemale: "Female", vcSynth: "SYNTHETIC", origAudio: "ORIGINAL AUDIO", vcCloned: "VOICES", vcBadge: "CLONED", vcNone: "TEXT ONLY", vcNoVoice: "No voice for ", vcSheet: "VOICE", vcNeutral: "SYNTHETIC VOICE", vcWarm: "SYNTHETIC VOICE", searchPlaceholder: "Search this broadcast", noise: "Audio unclear", newLines: "new", live: "LIVE", ended: "ENDED", waiting: "WAITING", corrected: "CORRECTED", hostLine: "Hosted by Marcus Reed · 4 speakers", langLabel: "LANGUAGE", langCount: "100+ languages", read: "Read", listen: "Listen", watch: "Watch", waitTitle: "The broadcast hasn’t started yet", waitBody: "The transcript appears here as soon as the host starts speaking.", english: "ENGLISH", playing: "Playing the live audio", ready: "Tap to start audio", readyNote: "Set your volume first", voiceMeta: "ORIGINAL AUDIO", voice: "Voice", sheetTitle: "APP LANGUAGE", done: "Done", search: "Search 100+ languages", sheetNote: "Follow along in your language.", moreLangs: "more", confTitle: "Some words weren't heard clearly", confBody: "The transcript marks words the model is unsure about with a dashed underline. The words keep their colour, so only the underline tells you where to look.", confMid: "Slightly unsure — probably right", confHigh: "Low confidence — may be wrong", settings: "BROADCAST", setOrig: "Show original language", setTheme: "Appearance", light: "Light", dark: "Dark", setConf: "Show uncertain words", setConfHint1: "Colours words the model is unsure about — ", setConfMid: "amber", setConfSep: " or ", setConfLow: "red", setConfHint2: "", behindLive: "TRANSLATION LATENCY", behindNote: "How far the translation trails the speaker right now.", shareLabel: "LIVE TRANSLATION LINK", copy: "Copy", copied: "Copied" },
|
|
2627
2627
|
Spanish: { vcFor: "Voz de", vcMute: "Silenciar", vcUnmute: "Activar", vcMuted: "SILENCIADO", vcShared: "También la usa", vcUsedBy: "La usa", vcUnknownSpk: "Desconocido", vcUse: "Usar esta voz", vcGetting: "Descargando…", vcSample: "Así suena esta voz.", vcPreview: "MUESTRA", vcMale: "Hombre", vcFemale: "Mujer", vcSynth: "SINTÉTICA", origAudio: "AUDIO ORIGINAL", vcCloned: "VOCES", vcBadge: "CLONADA", vcNone: "SOLO TEXTO", vcNoVoice: "Sin voz para ", vcSheet: "VOZ", vcNeutral: "VOZ SINTÉTICA", vcWarm: "VOZ SINTÉTICA", searchPlaceholder: "Buscar en esta emisión", noise: "Audio poco claro", newLines: "nuevas", live: "EN VIVO", ended: "FINALIZADA", waiting: "EN ESPERA", corrected: "CORREGIDO", hostLine: "Presenta Marcus Reed · 4 hablantes", langLabel: "IDIOMA", langCount: "100+ idiomas", read: "Leer", listen: "Escuchar", watch: "Ver", waitTitle: "La emisión aún no ha comenzado", waitBody: "La transcripción aparecerá aquí en cuanto el anfitrión empiece a hablar.", english: "INGLÉS", playing: "Reproduciendo la traducción al español", ready: "Toca para iniciar el audio", readyNote: "Ajusta el volumen primero", voiceMeta: "VOZ NEUTRA", voice: "Voz", sheetTitle: "IDIOMA DE LA APP", done: "Listo", search: "Buscar entre 100+ idiomas", sheetNote: "Sigue la emisión en tu idioma.", moreLangs: "más", confTitle: "Algunas palabras no se oyeron bien", confBody: "La transcripción marca las palabras dudosas con un subrayado discontinuo. Las palabras conservan su color, así que solo el subrayado te indica dónde mirar.", confMid: "Poca duda: probablemente correcta", confHigh: "Baja confianza: puede estar mal", settings: "EMISIÓN", setOrig: "Mostrar idioma original", setTheme: "Apariencia", light: "Claro", dark: "Oscuro", setConf: "Mostrar palabras dudosas", setConfHint1: "Colorea las palabras dudosas: ", setConfMid: "ámbar", setConfSep: " o ", setConfLow: "rojo", setConfHint2: "", behindLive: "LATENCIA DE TRADUCCIÓN", behindNote: "Cuánto se retrasa la traducción respecto a quien habla.", shareLabel: "ENLACE PARA SEGUIR", copy: "Copiar", copied: "Copiado" },
|
|
2628
2628
|
French: { vcFor: "Voix de", vcMute: "Couper", vcUnmute: "Réactiver", vcMuted: "COUPÉ", vcShared: "Aussi utilisée par", vcUsedBy: "Utilisée par", vcUnknownSpk: "Inconnu", vcUse: "Utiliser cette voix", vcGetting: "Téléchargement…", vcSample: "Voici le rendu.", vcPreview: "APERÇU", vcMale: "Homme", vcFemale: "Femme", vcSynth: "SYNTHÉTIQUE", origAudio: "AUDIO ORIGINAL", vcCloned: "VOIX", vcBadge: "CLONÉE", vcNone: "TEXTE SEUL", vcNoVoice: "Aucune voix pour ", vcSheet: "VOIX", vcNeutral: "VOIX SYNTHÉTIQUE", vcWarm: "VOIX SYNTHÉTIQUE", searchPlaceholder: "Rechercher dans la diffusion", noise: "Audio peu clair", newLines: "nouvelles", live: "EN DIRECT", ended: "TERMINÉ", waiting: "EN ATTENTE", corrected: "CORRIGÉ", hostLine: "Animé par Marcus Reed · 4 intervenants", langLabel: "LANGUE", langCount: "100+ langues", read: "Lire", listen: "Écouter", watch: "Regarder", waitTitle: "La diffusion n’a pas encore commencé", waitBody: "La transcription s’affichera ici dès que l’animateur prendra la parole.", english: "ANGLAIS", playing: "Lecture de la traduction française", ready: "Touchez pour lancer l'audio", readyNote: "Réglez le volume d'abord", voiceMeta: "VOIX NEUTRE", voice: "Voix", sheetTitle: "LANGUE DE L'APP", done: "Terminé", search: "Rechercher parmi 100+ langues", sheetNote: "Suivez la diffusion dans votre langue.", moreLangs: "autres", confTitle: "Certains mots n'ont pas été bien entendus", confBody: "La transcription marque les mots incertains d'un soulignement en pointillés. Les mots gardent leur couleur : seul le soulignement attire l'attention.", confMid: "Léger doute — probablement juste", confHigh: "Faible confiance — peut être faux", settings: "DIFFUSION", setOrig: "Afficher la langue d'origine", setTheme: "Apparence", light: "Clair", dark: "Sombre", setConf: "Afficher les mots incertains", setConfHint1: "Colore les mots incertains — ", setConfMid: "ambre", setConfSep: " ou ", setConfLow: "rouge", setConfHint2: "", behindLive: "LATENCE DE TRADUCTION", behindNote: "De combien la traduction suit le locuteur en ce moment.", shareLabel: "LIEN DE SUIVI", copy: "Copier", copied: "Copié" },
|
|
@@ -2630,13 +2630,13 @@ const Ci = {
|
|
|
2630
2630
|
Romanian: { vcFor: "Vocea pentru", vcMute: "Oprește", vcUnmute: "Pornește", vcMuted: "OPRIT", vcShared: "Folosită și de", vcUsedBy: "Folosită de", vcUnknownSpk: "Necunoscut", vcUse: "Folosește această voce", vcGetting: "Se descarcă…", vcSample: "Așa sună această voce.", vcPreview: "MOSTRĂ", vcMale: "Bărbat", vcFemale: "Femeie", vcSynth: "SINTETICĂ", origAudio: "AUDIO ORIGINAL", vcCloned: "VOCI", vcBadge: "CLONATĂ", vcNone: "DOAR TEXT", vcNoVoice: "Nicio voce pentru ", vcSheet: "VOCE", vcNeutral: "VOCE SINTETICĂ", vcWarm: "VOCE SINTETICĂ", searchPlaceholder: "Caută în transmisiune", noise: "Sunet neclar", newLines: "noi", live: "ÎN DIRECT", ended: "ÎNCHEIAT", waiting: "ÎN AȘTEPTARE", corrected: "CORECTAT", hostLine: "Prezentat de Marcus Reed · 4 vorbitori", langLabel: "LIMBĂ", langCount: "100+ de limbi", read: "Citește", listen: "Ascultă", watch: "Vizionează", waitTitle: "Transmisiunea nu a început încă", waitBody: "Transcrierea va apărea aici imediat ce gazda începe să vorbească.", english: "ENGLEZĂ", playing: "Se redă traducerea în română", ready: "Atinge pentru a porni audio", readyNote: "Reglează întâi volumul", voiceMeta: "VOCE NEUTRĂ", voice: "Voce", sheetTitle: "LIMBA APLICAȚIEI", done: "Gata", search: "Caută printre 100+ de limbi", sheetNote: "Urmărește transmisiunea în limba ta.", moreLangs: "în plus", confTitle: "Unele cuvinte nu s-au auzit clar", confBody: "Transcrierea marchează cuvintele incerte cu o subliniere întreruptă. Cuvintele își păstrează culoarea, doar sublinierea îți arată unde să te uiți.", confMid: "Ușoară nesiguranță — probabil corect", confHigh: "Încredere scăzută — poate fi greșit", settings: "TRANSMISIUNE", setOrig: "Arată limba originală", setTheme: "Aspect", light: "Luminos", dark: "Întunecat", setConf: "Arată cuvintele incerte", setConfHint1: "Colorează cuvintele incerte — ", setConfMid: "galben", setConfSep: " sau ", setConfLow: "roșu", setConfHint2: "", behindLive: "LATENȚA TRADUCERII", behindNote: "Cu cât urmează traducerea vorbitorul în acest moment.", shareLabel: "LINK DE URMĂRIRE", copy: "Copiază", copied: "Copiat" },
|
|
2631
2631
|
Portuguese: { vcFor: "Voz de", vcMute: "Silenciar", vcUnmute: "Ativar", vcMuted: "SILENCIADO", vcShared: "Também usada por", vcUsedBy: "Usada por", vcUnknownSpk: "Desconhecido", vcUse: "Usar esta voz", vcGetting: "Baixando…", vcSample: "É assim que soa.", vcPreview: "AMOSTRA", vcMale: "Homem", vcFemale: "Mulher", vcSynth: "SINTÉTICA", origAudio: "ÁUDIO ORIGINAL", vcCloned: "VOZES", vcBadge: "CLONADA", vcNone: "SÓ TEXTO", vcNoVoice: "Sem voz para ", vcSheet: "VOZ", vcNeutral: "VOZ SINTÉTICA", vcWarm: "VOZ SINTÉTICA", searchPlaceholder: "Pesquisar nesta transmissão", noise: "Áudio pouco claro", newLines: "novas", live: "AO VIVO", ended: "ENCERRADA", waiting: "AGUARDANDO", corrected: "CORRIGIDO", hostLine: "Apresentado por Marcus Reed · 4 falantes", langLabel: "IDIOMA", langCount: "100+ idiomas", read: "Ler", listen: "Ouvir", watch: "Assistir", waitTitle: "A transmissão ainda não começou", waitBody: "A transcrição aparece aqui assim que o apresentador começar a falar.", english: "INGLÊS", playing: "Reproduzindo a tradução em português", ready: "Toque para iniciar o áudio", readyNote: "Ajuste o volume primeiro", voiceMeta: "VOZ NEUTRA", voice: "Voz", sheetTitle: "IDIOMA DO APP", done: "Concluído", search: "Pesquisar entre 100+ idiomas", sheetNote: "Acompanhe a transmissão no seu idioma.", moreLangs: "mais", confTitle: "Algumas palavras não foram bem ouvidas", confBody: "A transcrição marca as palavras duvidosas com um sublinhado tracejado. As palavras mantêm a sua cor, por isso só o sublinhado indica onde olhar.", confMid: "Pouca dúvida — provavelmente certa", confHigh: "Baixa confiança — pode estar errada", settings: "TRANSMISSÃO", setOrig: "Mostrar idioma original", setTheme: "Aparência", light: "Claro", dark: "Escuro", setConf: "Mostrar palavras duvidosas", setConfHint1: "Colore as palavras duvidosas: ", setConfMid: "âmbar", setConfSep: " ou ", setConfLow: "vermelho", setConfHint2: "", behindLive: "LATÊNCIA DE TRADUÇÃO", behindNote: "Quanto a tradução está atrás de quem fala agora.", shareLabel: "LINK PARA ACOMPANHAR", copy: "Copiar", copied: "Copiado" }
|
|
2632
2632
|
};
|
|
2633
|
-
function
|
|
2634
|
-
return t &&
|
|
2633
|
+
function ma(t) {
|
|
2634
|
+
return t && Si[t] || Si.English;
|
|
2635
2635
|
}
|
|
2636
|
-
async function
|
|
2636
|
+
async function pa(t) {
|
|
2637
2637
|
var s, a, o, l, c;
|
|
2638
2638
|
const e = await t.json().catch(() => null), n = ((s = e == null ? void 0 : e.error) == null ? void 0 : s.code) ?? (e == null ? void 0 : e.code), r = ((a = e == null ? void 0 : e.error) == null ? void 0 : a.message) ?? (e == null ? void 0 : e.message);
|
|
2639
|
-
return new
|
|
2639
|
+
return new Wi(typeof n == "string" ? n : "internal", typeof r == "string" ? r : Er, { status: t.status, details: ((l = (o = e == null ? void 0 : e.error) == null ? void 0 : o.data) == null ? void 0 : l.details) ?? ((c = e == null ? void 0 : e.data) == null ? void 0 : c.details) });
|
|
2640
2640
|
}
|
|
2641
2641
|
function Lr(t) {
|
|
2642
2642
|
switch (t) {
|
|
@@ -2654,14 +2654,14 @@ function Lr(t) {
|
|
|
2654
2654
|
return "queued";
|
|
2655
2655
|
}
|
|
2656
2656
|
}
|
|
2657
|
-
function
|
|
2657
|
+
function Mc(t) {
|
|
2658
2658
|
return t ? t.progress ? { state: t.state, processedS: t.progress.processedS, totalS: t.progress.totalS ?? null, segmentsDone: t.progress.segmentsDone, segmentsTotal: t.progress.segmentsTotal ?? null, pct: t.progress.pct, error: t.error ?? null } : t.state ? { state: t.state, processedS: 0, totalS: null, segmentsDone: 0, segmentsTotal: null, pct: 0, error: t.error ?? null } : null : null;
|
|
2659
2659
|
}
|
|
2660
|
-
const
|
|
2660
|
+
const gc = (t, e) => {
|
|
2661
2661
|
const n = (t == null ? void 0 : t.segmentsDone) ?? e, r = Math.max(n, (t == null ? void 0 : t.segmentsTotal) ?? n);
|
|
2662
2662
|
return `${n} / ${r} SEGMENTS`;
|
|
2663
2663
|
};
|
|
2664
|
-
function
|
|
2664
|
+
function mc(t, e) {
|
|
2665
2665
|
var s;
|
|
2666
2666
|
const n = ((s = t == null ? void 0 : t.source) == null ? void 0 : s.durationS) ?? (e == null ? void 0 : e.totalS) ?? null, r = t == null ? void 0 : t.crop;
|
|
2667
2667
|
if (r && (r.startS != null || r.endS != null)) {
|
|
@@ -2680,20 +2680,20 @@ function Zr(t) {
|
|
|
2680
2680
|
const e = document.createElement("a");
|
|
2681
2681
|
e.href = t, e.style.display = "none", document.body.appendChild(e), e.click(), e.remove();
|
|
2682
2682
|
}
|
|
2683
|
-
async function
|
|
2683
|
+
async function pc(t) {
|
|
2684
2684
|
const e = await fetch(t, { redirect: "manual" });
|
|
2685
|
-
if (e.type !== "opaqueredirect" && !e.ok) throw await
|
|
2685
|
+
if (e.type !== "opaqueredirect" && !e.ok) throw await pa(e);
|
|
2686
2686
|
Zr(t);
|
|
2687
2687
|
}
|
|
2688
|
-
async function
|
|
2688
|
+
async function yc(t, e, n, r = {}) {
|
|
2689
2689
|
var M, g;
|
|
2690
2690
|
const s = await t.client.recordings.export(e, n, { lang: r.lang ?? void 0, ...t.readAs });
|
|
2691
|
-
if (!s.ok) throw await
|
|
2691
|
+
if (!s.ok) throw await pa(s);
|
|
2692
2692
|
const a = await s.blob(), o = s.headers.get("content-disposition") ?? "", l = (M = /filename\*=UTF-8''([^;]+)/i.exec(o)) == null ? void 0 : M[1], c = (g = /filename="([^"]+)"/i.exec(o)) == null ? void 0 : g[1], u = l ? decodeURIComponent(l) : c ?? `transcript.${n}`, d = URL.createObjectURL(a), h = document.createElement("a");
|
|
2693
2693
|
h.href = d, h.download = u, h.style.display = "none", document.body.appendChild(h), h.click(), h.remove(), window.setTimeout(() => URL.revokeObjectURL(d), 6e4);
|
|
2694
2694
|
}
|
|
2695
|
-
async function
|
|
2696
|
-
const { recordingId: n, lang: r, voiceKey: s, cred: a } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((h) => h.lang === r), l = (d) =>
|
|
2695
|
+
async function Nc(t, e) {
|
|
2696
|
+
const { recordingId: n, lang: r, voiceKey: s, cred: a } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((h) => h.lang === r), l = (d) => ea(d, s);
|
|
2697
2697
|
let c = l(await o());
|
|
2698
2698
|
(!c || c.state === "clips" || c.state === "failed") && await e.request();
|
|
2699
2699
|
const u = Date.now() + (e.timeoutMs ?? 10 * 6e4);
|
|
@@ -2702,25 +2702,25 @@ async function yc(t, e) {
|
|
|
2702
2702
|
if (Date.now() > u) throw new Error("The spoken track is taking too long; try again in a moment.");
|
|
2703
2703
|
await new Promise((d) => setTimeout(d, 4e3)), c = l(await o());
|
|
2704
2704
|
}
|
|
2705
|
-
Zr(
|
|
2705
|
+
Zr(Do(t.origin, n, r, c.voiceKey, a));
|
|
2706
2706
|
}
|
|
2707
|
-
const
|
|
2707
|
+
const ya = (t) => {
|
|
2708
2708
|
var e;
|
|
2709
2709
|
return ((e = t == null ? void 0 : t.match(/(?:youtu\.be\/|[?&]v=|\/shorts\/|\/embed\/|\/live\/)([\w-]{11})/)) == null ? void 0 : e[1]) ?? null;
|
|
2710
|
-
},
|
|
2711
|
-
function
|
|
2710
|
+
}, Tc = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, Di = 0.3, vc = 1.5;
|
|
2711
|
+
function Na(t, e, n) {
|
|
2712
2712
|
var s;
|
|
2713
2713
|
const r = (s = t.words[t.words.length - 1]) == null ? void 0 : s.end;
|
|
2714
2714
|
return r != null && r > t.start ? r : t.end != null && t.end > t.start ? t.end : (e == null ? void 0 : e.start) ?? n;
|
|
2715
2715
|
}
|
|
2716
|
-
function
|
|
2716
|
+
function wc(t, e, n) {
|
|
2717
2717
|
var c, u;
|
|
2718
2718
|
const r = t[e];
|
|
2719
2719
|
if (!r) return !1;
|
|
2720
|
-
const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) -
|
|
2720
|
+
const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) - Di, a = t[e + 1], o = Na(r, a, r.start + 4) + vc, l = a ? Math.min(o, (((u = a.words[0]) == null ? void 0 : u.start) ?? a.start) - Di) : o;
|
|
2721
2721
|
return n >= s && n < Math.max(l, s + 0.5);
|
|
2722
2722
|
}
|
|
2723
|
-
function
|
|
2723
|
+
function kc(t, e, n) {
|
|
2724
2724
|
const r = Math.max(0, n - e), s = t.map((l) => Math.max(1, [...l.replace(/[^\p{L}\p{N}]/gu, "")].length)), a = s.reduce((l, c) => l + c, 0) || 1;
|
|
2725
2725
|
let o = e;
|
|
2726
2726
|
return t.map((l, c) => {
|
|
@@ -2735,7 +2735,7 @@ function jr(t) {
|
|
|
2735
2735
|
bottom: Math.min(parseFloat(e.paddingBottom) || 0, n)
|
|
2736
2736
|
};
|
|
2737
2737
|
}
|
|
2738
|
-
function
|
|
2738
|
+
function Lc(t, e, n = 0) {
|
|
2739
2739
|
const r = w(() => {
|
|
2740
2740
|
});
|
|
2741
2741
|
x(() => {
|
|
@@ -2798,13 +2798,13 @@ function kc(t, e, n = 0) {
|
|
|
2798
2798
|
};
|
|
2799
2799
|
}, []);
|
|
2800
2800
|
}
|
|
2801
|
-
function
|
|
2801
|
+
function jc({ thumbRef: t }) {
|
|
2802
2802
|
return /* @__PURE__ */ i("div", { className: "feedbar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", { ref: t, className: "feedbar__thumb" }) });
|
|
2803
2803
|
}
|
|
2804
|
-
function
|
|
2804
|
+
function zc({ error: t, onClose: e }) {
|
|
2805
2805
|
const n = w(e);
|
|
2806
2806
|
n.current = e;
|
|
2807
|
-
const [r, s] =
|
|
2807
|
+
const [r, s] = z(!1), [a, o] = z(!1), l = w();
|
|
2808
2808
|
if (x(() => {
|
|
2809
2809
|
o(!1), s(!1), window.clearTimeout(l.current);
|
|
2810
2810
|
}, [t]), x(() => () => window.clearTimeout(l.current), []), x(() => {
|
|
@@ -2834,10 +2834,10 @@ Request id: ${t.requestId}` : t.message;
|
|
|
2834
2834
|
/* @__PURE__ */ i("button", { type: "button", onClick: e, "aria-label": "Dismiss", children: /* @__PURE__ */ i(oe, { d: ee.close, size: 14 }) })
|
|
2835
2835
|
] });
|
|
2836
2836
|
}
|
|
2837
|
-
function
|
|
2837
|
+
function Ta({ color: t }) {
|
|
2838
2838
|
return /* @__PURE__ */ i("span", { title: "Cloned voice", style: { flex: "none", display: "inline-flex" }, children: /* @__PURE__ */ i(oe, { d: ee.voiceClone, size: 13, sw: 1.7, stroke: t }) });
|
|
2839
2839
|
}
|
|
2840
|
-
function
|
|
2840
|
+
function zd({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, next: l }) {
|
|
2841
2841
|
return /* @__PURE__ */ m("div", { className: "vs-tt", children: [
|
|
2842
2842
|
/* @__PURE__ */ m("div", { className: "vs-tt__r1", children: [
|
|
2843
2843
|
/* @__PURE__ */ i("div", { className: "vs-tt__chip", children: t }),
|
|
@@ -2854,8 +2854,8 @@ function jd({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, n
|
|
|
2854
2854
|
] })
|
|
2855
2855
|
] });
|
|
2856
2856
|
}
|
|
2857
|
-
function
|
|
2858
|
-
const h = w(null), M = w(!1), [g, f] =
|
|
2857
|
+
function Ic({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek: a, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: u, glideMs: d = 260 }) {
|
|
2858
|
+
const h = w(null), M = w(!1), [g, f] = z(null), y = Math.max(1, e), T = g ?? u, N = T != null ? Math.min(100, Math.max(0, T * 100)) : t / Math.max(1, y - 1) * 100, p = u != null && d > 0 && g == null ? `width ${d}ms linear, left ${d}ms linear` : "none", b = (A) => {
|
|
2859
2859
|
var I;
|
|
2860
2860
|
const P = (I = h.current) == null ? void 0 : I.getBoundingClientRect();
|
|
2861
2861
|
if (!P) return;
|
|
@@ -2898,7 +2898,7 @@ function zc({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek:
|
|
|
2898
2898
|
] })
|
|
2899
2899
|
] });
|
|
2900
2900
|
}
|
|
2901
|
-
function
|
|
2901
|
+
function bc(t, e, n) {
|
|
2902
2902
|
const r = new Set(t.seqs ?? t.words.map((l) => l.seq)), s = (e ?? []).filter((l) => !l.revertedAt && l.seq != null && r.has(l.seq) && (l.kind === "word" || l.kind === "line")), a = s.some((l) => l.kind === "line"), o = (l) => !!(n != null && n.has(`${l.seq}:${l.idx}`));
|
|
2903
2903
|
return {
|
|
2904
2904
|
script: a ? 0 : t.words.filter((l) => l.script && !o(l)).length,
|
|
@@ -2906,7 +2906,7 @@ function Ic(t, e, n) {
|
|
|
2906
2906
|
manualCount: a ? 0 : s.filter((l) => l.kind === "word").length
|
|
2907
2907
|
};
|
|
2908
2908
|
}
|
|
2909
|
-
function
|
|
2909
|
+
function Oc({ f: t, desk: e, onOpen: n }) {
|
|
2910
2910
|
const r = (s, a, o) => /* @__PURE__ */ m("span", { role: "button", title: "Open this line in Fix", className: "badge badge--fix", style: { marginLeft: o ? "auto" : 0 }, onClick: (l) => {
|
|
2911
2911
|
l.stopPropagation(), n == null || n();
|
|
2912
2912
|
}, children: [
|
|
@@ -2919,8 +2919,8 @@ function bc({ f: t, desk: e, onOpen: n }) {
|
|
|
2919
2919
|
t.manual && r(e ? "MANUAL FIX" : "MANUAL", t.manualCount, t.script === 0)
|
|
2920
2920
|
] });
|
|
2921
2921
|
}
|
|
2922
|
-
function
|
|
2923
|
-
const [n, r] =
|
|
2922
|
+
function xc({ onOpen: t, alone: e }) {
|
|
2923
|
+
const [n, r] = z(!1);
|
|
2924
2924
|
return /* @__PURE__ */ m("span", { role: "button", title: "Fix this line", className: `badge badge--pen${n ? " is-over" : ""}`, style: { marginLeft: e ? "auto" : 0 }, onMouseEnter: () => r(!0), onMouseLeave: () => r(!1), onClick: (s) => {
|
|
2925
2925
|
s.stopPropagation(), t();
|
|
2926
2926
|
}, children: [
|
|
@@ -2928,8 +2928,8 @@ function Oc({ onOpen: t, alone: e }) {
|
|
|
2928
2928
|
n && "FIX"
|
|
2929
2929
|
] });
|
|
2930
2930
|
}
|
|
2931
|
-
function
|
|
2932
|
-
const s = Gt(), [a, o] =
|
|
2931
|
+
function Cc(t, e, n, r) {
|
|
2932
|
+
const s = Gt(), [a, o] = z([]), [l, c] = z(0), u = w(/* @__PURE__ */ new Set()), d = w(!1), h = ze(() => new Map(n.filter((g) => g.sentenceId != null).map((g) => [g.sentenceId, g])), [n]);
|
|
2933
2933
|
x(() => {
|
|
2934
2934
|
u.current = /* @__PURE__ */ new Set();
|
|
2935
2935
|
}, [t, e]);
|
|
@@ -2955,13 +2955,13 @@ function xc(t, e, n, r) {
|
|
|
2955
2955
|
}
|
|
2956
2956
|
}, [t, e, a, l, h, r]), M;
|
|
2957
2957
|
}
|
|
2958
|
-
function
|
|
2958
|
+
function Sc(t) {
|
|
2959
2959
|
return t.live || t.auto ? "From this session" : t.cloned ? t.library === !1 ? "This transcription only" : "Saved in Voices" : "";
|
|
2960
2960
|
}
|
|
2961
2961
|
function un(t, e) {
|
|
2962
2962
|
return t.cloned ? { rank: 0, head: e.vcSheet } : t.gender === "male" ? { rank: 1, head: e.vcMale.toUpperCase() } : t.gender === "female" ? { rank: 2, head: e.vcFemale.toUpperCase() } : { rank: 3, head: e.vcSynth };
|
|
2963
2963
|
}
|
|
2964
|
-
function
|
|
2964
|
+
function Dc(t, e) {
|
|
2965
2965
|
const n = t.slice().sort((s, a) => un(s, e).rank - un(a, e).rank || s.name.localeCompare(a.name, void 0, { numeric: !0 })), r = {};
|
|
2966
2966
|
for (const s of n) {
|
|
2967
2967
|
const a = un(s, e).head;
|
|
@@ -2972,7 +2972,7 @@ function Sc(t, e) {
|
|
|
2972
2972
|
return { v: s, headOn: l, head: o, headCount: r[o], rule: l ? "0" : "1px solid var(--hair)" };
|
|
2973
2973
|
});
|
|
2974
2974
|
}
|
|
2975
|
-
function
|
|
2975
|
+
function Ac(t, e, n) {
|
|
2976
2976
|
const r = /* @__PURE__ */ new Set();
|
|
2977
2977
|
let s = !1;
|
|
2978
2978
|
for (const o of t)
|
|
@@ -2983,7 +2983,7 @@ function Dc(t, e, n) {
|
|
|
2983
2983
|
return {
|
|
2984
2984
|
key: o,
|
|
2985
2985
|
name: Hr(e, o),
|
|
2986
|
-
initial:
|
|
2986
|
+
initial: ua(e, o),
|
|
2987
2987
|
lane: l.lane,
|
|
2988
2988
|
sex: e.speakerSex[o] ?? null,
|
|
2989
2989
|
voiceId: ((c = e.speakerIds[o]) == null ? void 0 : c.voiceId) ?? null,
|
|
@@ -2994,11 +2994,11 @@ function Dc(t, e, n) {
|
|
|
2994
2994
|
});
|
|
2995
2995
|
return s && a.push({ key: -1, name: n, initial: "?", lane: null, sex: null }), a;
|
|
2996
2996
|
}
|
|
2997
|
-
function
|
|
2997
|
+
function Ai(t) {
|
|
2998
2998
|
const e = [...t.entries()].filter(([, n]) => n.trim()).sort((n, r) => n[0] - r[0]).map(([n, r]) => `${n}=${r.trim()}`).join(";");
|
|
2999
2999
|
return e ? `cast:${e}` : "";
|
|
3000
3000
|
}
|
|
3001
|
-
function
|
|
3001
|
+
function Ei(t) {
|
|
3002
3002
|
if (!t || !t.startsWith("cast:")) return null;
|
|
3003
3003
|
const e = /* @__PURE__ */ new Map();
|
|
3004
3004
|
for (const n of t.slice(5).split(";")) {
|
|
@@ -3009,7 +3009,7 @@ function Ai(t) {
|
|
|
3009
3009
|
}
|
|
3010
3010
|
return e.size ? e : null;
|
|
3011
3011
|
}
|
|
3012
|
-
function
|
|
3012
|
+
function _i(t, e, n = !0) {
|
|
3013
3013
|
const r = e.filter((o) => !o.cloned), s = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map();
|
|
3014
3014
|
for (const o of t) {
|
|
3015
3015
|
const c = (o.voiceId ? e.find((M) => M.cloned && !M.auto && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (n ? (o.voiceId ? e.find((M) => M.cloned && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (o.key >= 0 ? e.find((M) => M.cloned && M.auto && M.consent !== "pending" && M.speaker === o.key) : void 0) : void 0);
|
|
@@ -3022,7 +3022,7 @@ function Ei(t, e, n = !0) {
|
|
|
3022
3022
|
}
|
|
3023
3023
|
return a;
|
|
3024
3024
|
}
|
|
3025
|
-
function
|
|
3025
|
+
function Ec({ roster: t, selected: e, onSelect: n, noClone: r, building: s, short: a, warn: o, sexOf: l, t: c }) {
|
|
3026
3026
|
const u = t.find((d) => d.key === e) ?? t[0] ?? null;
|
|
3027
3027
|
return u ? /* @__PURE__ */ i("div", { style: { display: "flex", flexWrap: "wrap", gap: 6, padding: "0 2px 9px", margin: "0 -2px" }, children: t.map((d) => {
|
|
3028
3028
|
const h = d.key === u.key, M = d.key >= 0 ? (o == null ? void 0 : o(d)) ?? null : null, g = d.key >= 0 && !M && !!(s != null && s(d)), f = d.key >= 0 && !M && !g && r(d), y = d.key >= 0 && !M && !g && !f && !d.hasVoice && !!(a != null && a(d));
|
|
@@ -3044,7 +3044,7 @@ function Ac({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
|
|
|
3044
3044
|
}
|
|
3045
3045
|
),
|
|
3046
3046
|
/* @__PURE__ */ i("span", { style: { fontSize: 12.5, fontWeight: 500, color: h ? "var(--ink-96)" : "var(--ink-62)", whiteSpace: "nowrap" }, children: d.name }),
|
|
3047
|
-
d.hasVoice && !M && /* @__PURE__ */ i(
|
|
3047
|
+
d.hasVoice && !M && /* @__PURE__ */ i(Ta, { color: d.fg ?? (h ? "var(--ink-62)" : "var(--ink-45)") }),
|
|
3048
3048
|
M && /* @__PURE__ */ i("span", { title: M, "aria-label": M, style: { flex: "none", width: 15, height: 15, marginRight: -2, borderRadius: "50%", background: "#c27c00", color: "#fff", font: "900 10.5px/1 system-ui, sans-serif", display: "flex", alignItems: "center", justifyContent: "center" }, children: "!" }),
|
|
3049
3049
|
y && /* @__PURE__ */ i("span", { title: "Not enough audio to clone", "aria-label": "Not enough audio to clone", style: { flex: "none", display: "flex", marginRight: -2, color: h ? "var(--ink-45)" : "var(--ink-35)" }, children: /* @__PURE__ */ i(oe, { d: ee.micOff, size: 13, sw: 1.7 }) }),
|
|
3050
3050
|
(f || g) && /* @__PURE__ */ i("span", { title: g ? "Cloning this voice…" : "No voice clone yet", "aria-label": g ? "Cloning this voice" : "No voice clone yet", style: { flex: "none", width: 10, height: 10, marginRight: -2, display: "flex", alignItems: "center", justifyContent: "center" }, children: g ? /* @__PURE__ */ i(Mt, { size: 10, color: "var(--brand)", track: "var(--fill-10)", sw: 1.6 }) : /* @__PURE__ */ i("span", { style: { width: 7, height: 7, borderRadius: "50%", background: "var(--brand)" } }) })
|
|
@@ -3054,8 +3054,8 @@ function Ac({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
|
|
|
3054
3054
|
);
|
|
3055
3055
|
}) }) : null;
|
|
3056
3056
|
}
|
|
3057
|
-
function
|
|
3058
|
-
const y = ze(() =>
|
|
3057
|
+
function _c({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s = null, dlId: a = null, onPick: o, onAdd: l, onUse: c, usedBy: u, foldKey: d, foldFor: h = null, problem: M, noClone: g = null, t: f }) {
|
|
3058
|
+
const y = ze(() => Dc(e, f), [e, f]), [T, N] = z({});
|
|
3059
3059
|
x(() => {
|
|
3060
3060
|
N({});
|
|
3061
3061
|
}, [d, h]);
|
|
@@ -3068,7 +3068,7 @@ function Ec({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
3068
3068
|
M && /* @__PURE__ */ m("div", { style: { display: "flex", alignItems: "flex-start", gap: 9, padding: "10px 11px", marginBottom: 10, borderRadius: 11, background: "var(--conf-low-soft)" }, children: [
|
|
3069
3069
|
/* @__PURE__ */ i(oe, { d: ee.warnTri, size: 15, sw: 1.7, style: { flex: "none", marginTop: 1, color: "var(--conf-low)" } }),
|
|
3070
3070
|
/* @__PURE__ */ i("span", { style: { flex: 1, minWidth: 0, fontSize: 12.5, fontWeight: 300, lineHeight: 1.45, color: "var(--ink-80)", textWrap: "pretty" }, children: M }),
|
|
3071
|
-
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(
|
|
3071
|
+
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(zo, { value: M, label: "Copy this error" }) })
|
|
3072
3072
|
] }),
|
|
3073
3073
|
t,
|
|
3074
3074
|
g && /* @__PURE__ */ m(xe, { children: [
|
|
@@ -3084,8 +3084,8 @@ function Ec({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
3084
3084
|
] })
|
|
3085
3085
|
] }),
|
|
3086
3086
|
y.map(({ v: A, headOn: P, head: O, headCount: V, rule: I }, W) => {
|
|
3087
|
-
const E =
|
|
3088
|
-
return /* @__PURE__ */ m(
|
|
3087
|
+
const E = Sc(A), k = a === A.id, Y = b(O), C = (u == null ? void 0 : u(A)) ?? null;
|
|
3088
|
+
return /* @__PURE__ */ m(Mo, { children: [
|
|
3089
3089
|
P && O === f.vcSheet && /* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", padding: "14px 2px 6px", borderTop: W === 0 && !g ? "0" : "1px solid var(--hair)", userSelect: "none" }, children: /* @__PURE__ */ i("span", { style: { font: "600 9px var(--vs-font-mono)", letterSpacing: ".13em", color: "var(--ink-62)" }, children: O }) }),
|
|
3090
3090
|
P && O !== f.vcSheet && /* @__PURE__ */ m(
|
|
3091
3091
|
"button",
|
|
@@ -3115,8 +3115,8 @@ function Ec({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
3115
3115
|
style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop: Y ? I : "0", display: "flex", alignItems: "center", gap: 11, padding: Y ? "11px 8px" : "0px 8px", margin: "0 -6px", borderRadius: 10, background: r === A.id ? "var(--brand-tint)" : "transparent", cursor: "pointer", opacity: Y ? 1 : 0, maxHeight: Y ? 120 : 0, overflow: "hidden", transition: "max-height 280ms cubic-bezier(.32,.72,0,1),padding 280ms cubic-bezier(.32,.72,0,1),opacity 200ms ease" },
|
|
3116
3116
|
children: [
|
|
3117
3117
|
/* @__PURE__ */ i("span", { title: k ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: k ? "transparent" : A.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: k ? /* @__PURE__ */ i("span", { style: { width: 16, height: 16, borderRadius: "50%", border: "2px solid var(--fill-10)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite" } }) : s === A.id ? /* @__PURE__ */ m("span", { className: "vcplay", children: [
|
|
3118
|
-
/* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(
|
|
3119
|
-
/* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(
|
|
3118
|
+
/* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(Yc, { height: 13, width: 2.5 }) }),
|
|
3119
|
+
/* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(ko, { size: 11 }) })
|
|
3120
3120
|
] }) : /* @__PURE__ */ i(oe, { d: A.cloned ? ee.voiceClone : A.gender === "female" ? ee.venus : A.gender === "male" ? ee.mars : ee.mic, size: 15, sw: 1.6, style: { color: A.cloned ? "var(--brand)" : "var(--ink-55)" } }) }),
|
|
3121
3121
|
/* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
3122
3122
|
/* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", gap: 7, minWidth: 0 }, children: /* @__PURE__ */ i("span", { style: { minWidth: 0, fontSize: 14.5, fontWeight: A.id === n ? 600 : 400, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: A.name }) }),
|
|
@@ -3144,7 +3144,7 @@ function Ec({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
3144
3144
|
S && /* @__PURE__ */ i("div", { style: { position: "sticky", bottom: 0, zIndex: 3, marginTop: 6, padding: "11px 0 3px", animation: "vs-slide-up .18s ease-out" }, children: /* @__PURE__ */ i("button", { type: "button", className: "vcuse", title: "Apply this voice", onClick: () => r && c(r), children: /* @__PURE__ */ i("span", { children: f.vcUse }) }) })
|
|
3145
3145
|
] });
|
|
3146
3146
|
}
|
|
3147
|
-
function
|
|
3147
|
+
function Yc({ height: t, width: e = 2 }) {
|
|
3148
3148
|
const n = { width: e, height: "100%", borderRadius: 1, background: "var(--brand)" };
|
|
3149
3149
|
return /* @__PURE__ */ m("span", { style: { flex: "none", display: "flex", alignItems: "flex-end", gap: 2, height: t }, children: [
|
|
3150
3150
|
/* @__PURE__ */ i("span", { style: { ...n, animation: "vs-eq .62s ease-in-out infinite" } }),
|
|
@@ -3152,16 +3152,16 @@ function _c({ height: t, width: e = 2 }) {
|
|
|
3152
3152
|
/* @__PURE__ */ i("span", { style: { ...n, animation: "vs-eq .62s ease-in-out .38s infinite" } })
|
|
3153
3153
|
] });
|
|
3154
3154
|
}
|
|
3155
|
-
const
|
|
3155
|
+
const Uc = /* @__PURE__ */ m("span", { style: { display: "inline-flex", alignItems: "center", gap: 3 }, children: [
|
|
3156
3156
|
/* @__PURE__ */ i(oe, { d: ee.langAuto, size: 19, sw: 1.7, style: { color: "var(--ink-62)", display: "block" } }),
|
|
3157
3157
|
/* @__PURE__ */ i(oe, { d: ee.globe, size: 18, sw: 1.6, style: { color: "var(--ink-62)", display: "block" } })
|
|
3158
3158
|
] });
|
|
3159
3159
|
function Yr(t, e) {
|
|
3160
3160
|
const n = e ? t == null ? void 0 : t.languages.find((r) => r.code === e) : null;
|
|
3161
|
-
return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" :
|
|
3161
|
+
return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" : Uc, code: e ? e.toUpperCase() : "", label: (n == null ? void 0 : n.native) ?? "As spoken", name: (n == null ? void 0 : n.name) ?? "Original" };
|
|
3162
3162
|
}
|
|
3163
|
-
function
|
|
3164
|
-
const s = (r == null ? void 0 : r.id) ?? null, a = (r == null ? void 0 : r.token) ?? null, o = (r == null ? void 0 : r.shareCode) ?? null, l = Gt(), { data: c } =
|
|
3163
|
+
function $c(t, e, n = 0, r) {
|
|
3164
|
+
const s = (r == null ? void 0 : r.id) ?? null, a = (r == null ? void 0 : r.token) ?? null, o = (r == null ? void 0 : r.shareCode) ?? null, l = Gt(), { data: c } = ga(async () => {
|
|
3165
3165
|
if (!t || !e) return null;
|
|
3166
3166
|
try {
|
|
3167
3167
|
return await l.client.voices.available(t, { recording: s ?? void 0, shareCode: s ? o ?? void 0 : void 0, asOwner: l.owner });
|
|
@@ -3171,25 +3171,25 @@ function Uc(t, e, n = 0, r) {
|
|
|
3171
3171
|
}, [t, e, n, s, a, o]);
|
|
3172
3172
|
return c;
|
|
3173
3173
|
}
|
|
3174
|
-
function
|
|
3174
|
+
function Rc(t) {
|
|
3175
3175
|
return (/* @__PURE__ */ new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)])).size;
|
|
3176
3176
|
}
|
|
3177
|
-
function
|
|
3178
|
-
const o = Gt(), { data: l, reload: c } =
|
|
3177
|
+
function Pc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, sentenceIds: a }) {
|
|
3178
|
+
const o = Gt(), { data: l, reload: c } = ga(async () => {
|
|
3179
3179
|
if (!t || !e) return null;
|
|
3180
3180
|
const J = await o.client.recordings.voice(t, e, o.readAs).catch(() => []);
|
|
3181
3181
|
return { recordingId: t, lang: e, rows: J.filter((L) => L.lang === e) };
|
|
3182
3182
|
}, [t, e, o, n]), u = ze(
|
|
3183
3183
|
() => l && l.lang === e && l.recordingId === t ? l.rows : [],
|
|
3184
3184
|
[l, e, t]
|
|
3185
|
-
), d = ze(() =>
|
|
3185
|
+
), d = ze(() => ea(u, s), [u, s]), h = d ? d.voiceKey || null : s, [M, g] = z(null), [f, y] = z(null), T = w(/* @__PURE__ */ new Set()), N = `${t ?? ""}|${e ?? ""}|${h ?? ""}`, p = Je(async (J, L) => {
|
|
3186
3186
|
if (!t || !e || !n) return;
|
|
3187
|
-
const ie = L != null && L.size ? null :
|
|
3187
|
+
const ie = L != null && L.size ? null : Ei(J), ne = L != null && L.size ? L : ie, G = ne && ne.size ? Object.fromEntries([...ne].map(([Te, je]) => [String(Te), je])) : null, X = `${t}|${e}|${G ? JSON.stringify(G) : J ?? ""}`;
|
|
3188
3188
|
if (T.current.has(X)) return;
|
|
3189
3189
|
T.current.add(X), g(X), y(null);
|
|
3190
3190
|
const me = { langs: [e] };
|
|
3191
3191
|
G ? me.voiceBySpeaker = G : J && (me.voice = J);
|
|
3192
|
-
const le = await
|
|
3192
|
+
const le = await Ci(o, `/v1/recordings/${t}/voice`, { method: "POST", body: me }).catch(() => null);
|
|
3193
3193
|
if (g((Te) => Te === X ? null : Te), !(le != null && le.ok)) {
|
|
3194
3194
|
T.current.delete(X);
|
|
3195
3195
|
const Te = le ? await le.json().catch(() => null) : null;
|
|
@@ -3201,14 +3201,14 @@ function Rc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
3201
3201
|
const J = `${t ?? ""}|${e ?? ""}|`;
|
|
3202
3202
|
for (const L of [...T.current]) L.startsWith(J) && T.current.delete(L);
|
|
3203
3203
|
y(null);
|
|
3204
|
-
}, [t, e]), S = !!d && (d.state === "queued" || d.state === "running") || M === N, A = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : f, P = (a == null ? void 0 : a.join(",")) ?? "", [O, V] =
|
|
3204
|
+
}, [t, e]), S = !!d && (d.state === "queued" || d.state === "running") || M === N, A = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : f, P = (a == null ? void 0 : a.join(",")) ?? "", [O, V] = z(null), I = ze(() => new Set((d == null ? void 0 : d.clips) ?? []), [d]), W = ze(() => n && P ? P.split(",").map(Number).filter((J) => !I.has(J)) : [], [n, P, I]), E = w(null);
|
|
3205
3205
|
x(() => {
|
|
3206
3206
|
if (!n || !t || !e || !W.length) return;
|
|
3207
3207
|
const J = O ?? W[0], L = W.find((me) => me >= J) ?? W[0], ie = `${t}|${e}|${h ?? ""}`, ne = E.current;
|
|
3208
3208
|
if (ne && ne.key === ie && Math.abs(ne.near - L) < 12 && Date.now() - ne.at < 6e4) return;
|
|
3209
3209
|
E.current = { key: ie, near: L, at: Date.now() };
|
|
3210
|
-
const G =
|
|
3211
|
-
G && G.size ? X.voiceBySpeaker = Object.fromEntries([...G].map(([me, le]) => [String(me), le])) : h && (X.voice = h),
|
|
3210
|
+
const G = Ei(h), X = { langs: [e], near: L };
|
|
3211
|
+
G && G.size ? X.voiceBySpeaker = Object.fromEntries([...G].map(([me, le]) => [String(me), le])) : h && (X.voice = h), Ci(o, `/v1/recordings/${t}/voice`, { method: "POST", body: X }).then((me) => {
|
|
3212
3212
|
me.ok || (E.current = null);
|
|
3213
3213
|
}).catch(() => {
|
|
3214
3214
|
E.current = null;
|
|
@@ -3226,13 +3226,13 @@ function Rc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
3226
3226
|
const C = ze(() => {
|
|
3227
3227
|
if (!t) return [];
|
|
3228
3228
|
const J = P ? P.split(",").map(Number).filter((ie) => !n || I.has(ie)) : void 0, L = d ?? (J != null && J.length && e ? { lang: e, voiceKey: s ?? "", clips: [], voice: null } : null);
|
|
3229
|
-
return
|
|
3229
|
+
return $o(L, t, o.origin, r, J);
|
|
3230
3230
|
}, [d, t, o, r, P, e, s, n, I]), te = ze(() => new Set(W), [W]);
|
|
3231
3231
|
return { listed: l, rows: u, track: d, renderVoiceId: h, rendering: S, failed: A, clips: C, requestRender: p, forget: b, reload: c, setNear: V, missing: W.length, coming: te };
|
|
3232
3232
|
}
|
|
3233
|
-
const
|
|
3234
|
-
function
|
|
3235
|
-
const o = s && t.length <= 3, l = t.some((T) => T.key === e), [c, u] =
|
|
3233
|
+
const Qc = { share: ee.share, delay: ee.tabGauge, video: ee.video, source: ee.tabSources, script: ee.tabScript, fix: ee.tabFix, ending: ee.tabEnding, summary: ee.tabSummary, export: ee.tabExport, settings: ee.tabSettings, sources: ee.tabSources, recs: ee.mic };
|
|
3234
|
+
function va({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s }) {
|
|
3235
|
+
const o = s && t.length <= 3, l = t.some((T) => T.key === e), [c, u] = z(null), d = w(null), [h, M] = z(0);
|
|
3236
3236
|
x(() => {
|
|
3237
3237
|
d.current && M(d.current.offsetWidth);
|
|
3238
3238
|
}, [c == null ? void 0 : c.k]);
|
|
@@ -3249,7 +3249,7 @@ function Ta({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
3249
3249
|
let y = null;
|
|
3250
3250
|
if (c) {
|
|
3251
3251
|
const T = { l: 0, r: typeof window < "u" ? window.innerWidth : 0 }, N = h || 80, p = Math.max(T.l + 8, Math.min(T.r - N - 8, c.x - N / 2));
|
|
3252
|
-
y =
|
|
3252
|
+
y = po(
|
|
3253
3253
|
/* @__PURE__ */ i("div", { className: "vsp vsp-portal", "data-theme": "dark", children: /* @__PURE__ */ m("div", { ref: d, "data-theme": "dark", className: "vs-tip__bubble vs-tip__bubble--top tabtip", style: { position: "fixed", left: p, top: c.y - 8, bottom: "auto", width: "auto", whiteSpace: "nowrap", transform: "translateY(-100%)", zIndex: 2147483e3, pointerEvents: "none" }, children: [
|
|
3254
3254
|
/* @__PURE__ */ i("span", { className: "vs-tip__row", children: /* @__PURE__ */ i("span", { className: "vs-tip__copy", children: c.label }) }),
|
|
3255
3255
|
/* @__PURE__ */ i("span", { className: "vs-tip__arrow", style: { left: Math.round(Math.max(8, Math.min(N - 19, c.x - p - 5.5))) } })
|
|
@@ -3259,7 +3259,7 @@ function Ta({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
3259
3259
|
}
|
|
3260
3260
|
return /* @__PURE__ */ m("div", { role: "tablist", className: `tabbar tabbar--icons${s ? "" : " tabbar--desk"}`, "data-desk-tabs": a ? "" : void 0, "data-tab-n": a ? t.length : void 0, style: { marginBottom: r ? 12 : 0 }, onMouseLeave: f, children: [
|
|
3261
3261
|
t.map((T) => {
|
|
3262
|
-
const N = e === T.key, p = o || N, b = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", S = T.icon ??
|
|
3262
|
+
const N = e === T.key, p = o || N, b = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", S = T.icon ?? Qc[T.key], A = () => {
|
|
3263
3263
|
f(), n(s && N ? "none" : T.key);
|
|
3264
3264
|
};
|
|
3265
3265
|
return s ? /* @__PURE__ */ m("button", { type: "button", role: "tab", "aria-selected": N, title: T.label, className: `tabbar__tab${N ? " is-on" : ""}`, style: { flex: b }, onClick: A, children: [
|
|
@@ -3273,9 +3273,9 @@ function Ta({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
3273
3273
|
y
|
|
3274
3274
|
] });
|
|
3275
3275
|
}
|
|
3276
|
-
const
|
|
3277
|
-
function
|
|
3278
|
-
const [s, a] =
|
|
3276
|
+
const Vc = "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3", Bc = "m9 9 10.5-3m0 6.553v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 1 1-.99-3.467l2.31-.66a2.25 2.25 0 0 0 1.632-2.163Zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 0 1-.99-3.467l2.31-.66A2.25 2.25 0 0 0 9 15.553Z";
|
|
3277
|
+
function Hc({ audio: t, video: e, formats: n, onExport: r }) {
|
|
3278
|
+
const [s, a] = z(null), [o, l] = z(null), c = w(void 0), u = w(!0);
|
|
3279
3279
|
x(() => (u.current = !0, () => {
|
|
3280
3280
|
u.current = !1, window.clearTimeout(c.current);
|
|
3281
3281
|
}), []);
|
|
@@ -3303,11 +3303,11 @@ function Bc({ audio: t, video: e, formats: n, onExport: r }) {
|
|
|
3303
3303
|
/* @__PURE__ */ i("span", { style: { fontSize: 13, fontWeight: 500, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: y.name }),
|
|
3304
3304
|
/* @__PURE__ */ i("span", { style: { font: "500 9.5px var(--vs-font-mono)", color: "var(--ink-40)", letterSpacing: ".04em" }, children: y.meta })
|
|
3305
3305
|
] }),
|
|
3306
|
-
/* @__PURE__ */ i(oe, { d: s === f ? ee.check :
|
|
3306
|
+
/* @__PURE__ */ i(oe, { d: s === f ? ee.check : Vc, size: 17, sw: 1.6, style: { flex: "none", color: s === f ? "var(--brand)" : "var(--ink-62)" } })
|
|
3307
3307
|
] })
|
|
3308
3308
|
] });
|
|
3309
3309
|
return /* @__PURE__ */ m("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
|
|
3310
|
-
t && g("audio", t,
|
|
3310
|
+
t && g("audio", t, Bc, "DOWNLOAD AUDIO"),
|
|
3311
3311
|
e && g("video", e, ee.video, "DOWNLOAD VIDEO"),
|
|
3312
3312
|
n !== !1 && /* @__PURE__ */ m(xe, { children: [
|
|
3313
3313
|
/* @__PURE__ */ i(xr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "EXPORT AS" }),
|
|
@@ -3332,8 +3332,8 @@ function Gr(t, e, n) {
|
|
|
3332
3332
|
}
|
|
3333
3333
|
r();
|
|
3334
3334
|
}
|
|
3335
|
-
function
|
|
3336
|
-
const [r, s] =
|
|
3335
|
+
function Wc(t, e, n) {
|
|
3336
|
+
const [r, s] = z(null), a = t.state === "ready", o = `${e ?? ""}|${n ?? ""}|${a ? `${t.title}
|
|
3337
3337
|
${t.summary}` : ""}`, l = Gt();
|
|
3338
3338
|
return x(() => {
|
|
3339
3339
|
if (!e || !n || !a) return;
|
|
@@ -3349,13 +3349,13 @@ ${t.summary}` : ""}`, l = Gt();
|
|
|
3349
3349
|
};
|
|
3350
3350
|
}, [o, l]), !n || !a ? t : (r == null ? void 0 : r.key) === o ? r.s : { state: "pending", retry: t.retry };
|
|
3351
3351
|
}
|
|
3352
|
-
function
|
|
3352
|
+
function Fc(t) {
|
|
3353
3353
|
return t != null && t.title && (t != null && t.summary) ? { state: "ready", title: t.title, summary: t.summary, retry: () => {
|
|
3354
3354
|
} } : { state: "unavailable", retry: () => {
|
|
3355
3355
|
} };
|
|
3356
3356
|
}
|
|
3357
|
-
function
|
|
3358
|
-
const [e, n] =
|
|
3357
|
+
function Zc({ s: t }) {
|
|
3358
|
+
const [e, n] = z(!1), r = w(void 0);
|
|
3359
3359
|
x(() => () => window.clearTimeout(r.current), []);
|
|
3360
3360
|
const s = t.title ?? "", a = t.summary ?? "", o = () => {
|
|
3361
3361
|
var c;
|
|
@@ -3371,7 +3371,7 @@ ${a}`).catch(() => {
|
|
|
3371
3371
|
/* @__PURE__ */ m("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 8, minHeight: 24 }, children: [
|
|
3372
3372
|
/* @__PURE__ */ i(xr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "SUMMARY" }),
|
|
3373
3373
|
t.state === "ready" && /* @__PURE__ */ m("button", { type: "button", className: "sumcopy", title: "Copy title and summary", style: { color: e ? "var(--brand)" : "var(--ink-70)" }, onClick: o, children: [
|
|
3374
|
-
/* @__PURE__ */ i(oe, { d: e ? ee.check :
|
|
3374
|
+
/* @__PURE__ */ i(oe, { d: e ? ee.check : Kc, size: 13, sw: 1.6 }),
|
|
3375
3375
|
e ? "Copied" : "Copy"
|
|
3376
3376
|
] })
|
|
3377
3377
|
] }),
|
|
@@ -3384,15 +3384,15 @@ ${a}`).catch(() => {
|
|
|
3384
3384
|
] })
|
|
3385
3385
|
] });
|
|
3386
3386
|
}
|
|
3387
|
-
function
|
|
3387
|
+
function Gc({ ytId: t, title: e, timeLabel: n, radius: r, style: s, large: a, children: o, picture: l }) {
|
|
3388
3388
|
return /* @__PURE__ */ m("div", { className: "livevid", style: { ...r != null ? { borderRadius: r } : null, ...s }, children: [
|
|
3389
3389
|
/* @__PURE__ */ i(oe, { d: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", size: a ? 34 : 30, sw: 1.2 }),
|
|
3390
|
-
l ?? /* @__PURE__ */ i("iframe", { src:
|
|
3390
|
+
l ?? /* @__PURE__ */ i("iframe", { src: Tc(t), title: e, referrerPolicy: "strict-origin-when-cross-origin", allow: "autoplay; encrypted-media; picture-in-picture" }),
|
|
3391
3391
|
n && /* @__PURE__ */ i("span", { className: "livevid__t", style: a ? { bottom: 10, right: 10 } : void 0, children: n }),
|
|
3392
3392
|
o
|
|
3393
3393
|
] });
|
|
3394
3394
|
}
|
|
3395
|
-
function
|
|
3395
|
+
function qc(t = !0, e) {
|
|
3396
3396
|
const n = w(null), r = e ?? n;
|
|
3397
3397
|
return x(() => {
|
|
3398
3398
|
const s = r.current;
|
|
@@ -3413,9 +3413,9 @@ function Gc(t = !0, e) {
|
|
|
3413
3413
|
};
|
|
3414
3414
|
}, [t]), r;
|
|
3415
3415
|
}
|
|
3416
|
-
const
|
|
3417
|
-
function
|
|
3418
|
-
const [n, r] =
|
|
3416
|
+
const Kc = "M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75";
|
|
3417
|
+
function Jc(t, e) {
|
|
3418
|
+
const [n, r] = Po(t), s = e.tabs.map((p) => p.key), a = e.tabbed !== !1, o = e.pinnable ?? s;
|
|
3419
3419
|
let l = n;
|
|
3420
3420
|
[...e.autoPin ?? []].reverse().forEach((p) => {
|
|
3421
3421
|
s.includes(p) && !l.includes(p) && !l.includes(`!${p}`) && (l = [p, ...l]);
|
|
@@ -3453,8 +3453,8 @@ function Kc(t, e) {
|
|
|
3453
3453
|
};
|
|
3454
3454
|
return { id: t, tabbed: a && h.length > 1, cur: M, seq: d, pinnable: o, tabKeys: h, stripTabs: e.tabs.filter((p) => h.includes(p.key)), panel: N, pin: f, unpin: y };
|
|
3455
3455
|
}
|
|
3456
|
-
function
|
|
3457
|
-
return
|
|
3456
|
+
function Xc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
|
|
3457
|
+
return eu(t), /* @__PURE__ */ m(xe, { children: [
|
|
3458
3458
|
e.map((o) => {
|
|
3459
3459
|
const l = t.panel(o);
|
|
3460
3460
|
if (!l.show) return null;
|
|
@@ -3464,13 +3464,13 @@ function Jc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
|
|
|
3464
3464
|
l.pill && /* @__PURE__ */ i("button", { type: "button", "data-pin-pill": "", className: `pinpill${l.pinned ? " is-on" : ""}`, title: l.title, "aria-label": l.title, "aria-pressed": l.pinned, onClick: l.toggle, children: /* @__PURE__ */ i(oe, { d: ee.pin, size: 12, sw: 2 }) })
|
|
3465
3465
|
] }, o) : null;
|
|
3466
3466
|
}),
|
|
3467
|
-
t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(
|
|
3467
|
+
t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(va, { tabs: t.stripTabs, current: t.cur, onPick: (o) => {
|
|
3468
3468
|
o !== "none" && (s ?? (() => {
|
|
3469
3469
|
}))(o);
|
|
3470
3470
|
}, fold: !1 }) })
|
|
3471
3471
|
] });
|
|
3472
3472
|
}
|
|
3473
|
-
function
|
|
3473
|
+
function eu(t) {
|
|
3474
3474
|
const e = w(t);
|
|
3475
3475
|
e.current = t;
|
|
3476
3476
|
const n = t.id;
|
|
@@ -3571,9 +3571,9 @@ function Xc(t) {
|
|
|
3571
3571
|
};
|
|
3572
3572
|
}, [n]);
|
|
3573
3573
|
}
|
|
3574
|
-
function
|
|
3575
|
-
const [o, l] =
|
|
3576
|
-
|
|
3574
|
+
function tu({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
|
|
3575
|
+
const [o, l] = Vo(t), c = w(null), u = w(null);
|
|
3576
|
+
nu(u), x(() => {
|
|
3577
3577
|
document.documentElement.style.setProperty("--colw", `${o}px`);
|
|
3578
3578
|
}, [o]);
|
|
3579
3579
|
const d = (M) => {
|
|
@@ -3597,7 +3597,7 @@ function eu({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
|
|
|
3597
3597
|
/* @__PURE__ */ i("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...h }, children: s ? a : /* @__PURE__ */ i("div", { ref: u, "data-panel-grid": "", className: "panelgrid", children: a }) })
|
|
3598
3598
|
] });
|
|
3599
3599
|
}
|
|
3600
|
-
function
|
|
3600
|
+
function nu(t) {
|
|
3601
3601
|
x(() => {
|
|
3602
3602
|
const e = t.current;
|
|
3603
3603
|
if (!e) return;
|
|
@@ -3625,12 +3625,12 @@ function tu(t) {
|
|
|
3625
3625
|
};
|
|
3626
3626
|
}, [t]);
|
|
3627
3627
|
}
|
|
3628
|
-
function
|
|
3628
|
+
function ru(t) {
|
|
3629
3629
|
return /\bwas not captured\b/i.test(t ?? "");
|
|
3630
3630
|
}
|
|
3631
|
-
const
|
|
3632
|
-
function
|
|
3633
|
-
const e = Gt(), [n, r] =
|
|
3631
|
+
const su = 1500, iu = 3e5;
|
|
3632
|
+
function au(t) {
|
|
3633
|
+
const e = Gt(), [n, r] = z(null), [s, a] = z(null), [o, l] = z(null), [c, u] = z(null), d = w(null), h = w(null), M = w(null), g = w(0), f = Je(() => {
|
|
3634
3634
|
M.current && (clearTimeout(M.current), M.current = null), d.current && (d.current.pause(), d.current.removeAttribute("src"), d.current.load(), d.current = null), h.current && (URL.revokeObjectURL(h.current), h.current = null);
|
|
3635
3635
|
}, []), y = Je(() => {
|
|
3636
3636
|
g.current += 1, f(), a(null), l(null);
|
|
@@ -3645,7 +3645,7 @@ function iu(t) {
|
|
|
3645
3645
|
const b = g.current;
|
|
3646
3646
|
if (f(), r(p.id), a(null), l(null), u(null), !t) return;
|
|
3647
3647
|
let S = p.previewUrl ? `${e.origin}${p.previewUrl}` : `${e.origin}/v1/voices/preview?voice=${encodeURIComponent(p.id)}&lang=${encodeURIComponent(t)}`;
|
|
3648
|
-
|
|
3648
|
+
Zn() === "caf" && (S += `${S.includes("?") ? "&" : "?"}format=caf`);
|
|
3649
3649
|
const A = Date.now();
|
|
3650
3650
|
e.shareCode && S.includes("recording=") && (S += `&shareCode=${encodeURIComponent(e.shareCode)}`);
|
|
3651
3651
|
const P = async () => {
|
|
@@ -3661,13 +3661,13 @@ function iu(t) {
|
|
|
3661
3661
|
}
|
|
3662
3662
|
if (g.current !== b) return;
|
|
3663
3663
|
if (O.status === 202 || O.status === 503) {
|
|
3664
|
-
if (Date.now() - A >
|
|
3664
|
+
if (Date.now() - A > iu) {
|
|
3665
3665
|
l(null), u({ message: "This voice is still being fetched. Try it again in a moment." });
|
|
3666
3666
|
return;
|
|
3667
3667
|
}
|
|
3668
3668
|
l(p.id), M.current = setTimeout(() => {
|
|
3669
3669
|
P();
|
|
3670
|
-
},
|
|
3670
|
+
}, su);
|
|
3671
3671
|
return;
|
|
3672
3672
|
}
|
|
3673
3673
|
if (!O.ok) {
|
|
@@ -3692,16 +3692,16 @@ function iu(t) {
|
|
|
3692
3692
|
}, [t, f, e]);
|
|
3693
3693
|
return { armId: n, sampleId: s, dlId: o, error: c, clearError: () => u(null), arm: N, stop: y, reset: T };
|
|
3694
3694
|
}
|
|
3695
|
-
const Ur = 0.05,
|
|
3695
|
+
const Ur = 0.05, wa = (t, e) => {
|
|
3696
3696
|
let n = 0;
|
|
3697
3697
|
for (let r = 0; r < t.length; r++) t[r].start <= e + 1e-6 && (n = r);
|
|
3698
3698
|
return n;
|
|
3699
3699
|
};
|
|
3700
|
-
function
|
|
3701
|
-
const s = Math.max(0, e), a = r > 0 && s >= r - Ur, o = t.length && t[0].start <= s + 1e-6 ?
|
|
3700
|
+
function ou(t, e, n, r) {
|
|
3701
|
+
const s = Math.max(0, e), a = r > 0 && s >= r - Ur, o = t.length && t[0].start <= s + 1e-6 ? wa(t, s) : -1;
|
|
3702
3702
|
return o < 0 ? { t: s, playing: n && !a, sentenceId: null, offset: 0, ended: a } : { t: s, playing: n && !a, sentenceId: t[o].sentenceId ?? null, offset: Math.max(0, s - t[o].start), ended: a };
|
|
3703
3703
|
}
|
|
3704
|
-
function
|
|
3704
|
+
function Rn(t, e, n) {
|
|
3705
3705
|
var l;
|
|
3706
3706
|
const r = Math.max(0, n);
|
|
3707
3707
|
if (t.ended) return { t: r, playing: !1, index: Math.max(0, e.length - 1) };
|
|
@@ -3713,19 +3713,19 @@ function Un(t, e, n) {
|
|
|
3713
3713
|
}
|
|
3714
3714
|
a = Math.max(0, Math.min(r, a));
|
|
3715
3715
|
const o = r > 0 && a >= r - Ur && s < 0;
|
|
3716
|
-
return { t: a, playing: t.playing && !o, index: s >= 0 ? s :
|
|
3716
|
+
return { t: a, playing: t.playing && !o, index: s >= 0 ? s : wa(e, a) };
|
|
3717
3717
|
}
|
|
3718
|
-
function
|
|
3718
|
+
function lu(t) {
|
|
3719
3719
|
return t.on ? t.want || t.relang ? "asked" : t.playing && (t.preparing || t.starting != null) ? "line" : null : null;
|
|
3720
3720
|
}
|
|
3721
|
-
const
|
|
3722
|
-
function
|
|
3721
|
+
const Yi = "Preparing the voice…";
|
|
3722
|
+
function cu(t) {
|
|
3723
3723
|
if (!t.lang) return null;
|
|
3724
3724
|
const e = t.langName;
|
|
3725
3725
|
return t.translateFailed === t.lang ? { kind: "translateFailed", lang: e } : t.voiceFailed ? { kind: "voiceFailed", lang: e } : t.translating ? { kind: "translating", lang: e } : t.starting != null ? { kind: "starting", lang: e, since: t.starting } : t.relang || t.slowLine ? { kind: "voice", lang: e, since: t.lineSince } : null;
|
|
3726
3726
|
}
|
|
3727
|
-
function
|
|
3728
|
-
const [n, r] =
|
|
3727
|
+
function ka(t, e) {
|
|
3728
|
+
const [n, r] = z(null), [s, a] = z(!1);
|
|
3729
3729
|
return x(() => {
|
|
3730
3730
|
if (!t) {
|
|
3731
3731
|
r(null), a(!1);
|
|
@@ -3737,9 +3737,9 @@ function wa(t, e) {
|
|
|
3737
3737
|
return () => clearTimeout(l);
|
|
3738
3738
|
}, [t, e]), [s, n];
|
|
3739
3739
|
}
|
|
3740
|
-
const
|
|
3741
|
-
function
|
|
3742
|
-
const [s, a] =
|
|
3740
|
+
const uu = (t) => `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
3741
|
+
function du({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
3742
|
+
const [s, a] = z(() => Date.now());
|
|
3743
3743
|
x(() => {
|
|
3744
3744
|
if (t.since == null) return;
|
|
3745
3745
|
const d = setInterval(() => a(Date.now()), 1e3);
|
|
@@ -3771,7 +3771,7 @@ function uu({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
|
3771
3771
|
/* @__PURE__ */ m("div", { className: "pwait__head", children: [
|
|
3772
3772
|
l ? /* @__PURE__ */ i("div", { className: "pwait__mark", "aria-hidden": "true", children: /* @__PURE__ */ i(oe, { d: ee.warnCircle, size: 18, sw: 1.8 }) }) : /* @__PURE__ */ i("div", { className: "pwait__spin", "aria-hidden": "true" }),
|
|
3773
3773
|
/* @__PURE__ */ i("div", { className: "pwait__t", children: c }),
|
|
3774
|
-
!l && o != null && o >= 3 && /* @__PURE__ */ i("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children:
|
|
3774
|
+
!l && o != null && o >= 3 && /* @__PURE__ */ i("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children: uu(o) })
|
|
3775
3775
|
] }),
|
|
3776
3776
|
/* @__PURE__ */ i("div", { className: "pwait__note", children: u }),
|
|
3777
3777
|
!l && /* @__PURE__ */ i("div", { className: "pwait__bar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", {}) }),
|
|
@@ -3784,16 +3784,16 @@ function uu({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
|
3784
3784
|
}
|
|
3785
3785
|
);
|
|
3786
3786
|
}
|
|
3787
|
-
function
|
|
3787
|
+
function La(t, e, n) {
|
|
3788
3788
|
var c;
|
|
3789
3789
|
const r = t[e], s = n && r.translations[n] && r.language !== n ? r.translations[n] : null;
|
|
3790
3790
|
if (!s && r.words.length) return r.words;
|
|
3791
|
-
const a = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l =
|
|
3792
|
-
return
|
|
3791
|
+
const a = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l = Na(r, t[e + 1], r.start + Math.max(2, a.length * 0.4));
|
|
3792
|
+
return kc(a, o, l).map((u, d) => ({ ...u, seq: r.seqs[0] ?? 0, idx: d }));
|
|
3793
3793
|
}
|
|
3794
|
-
function
|
|
3794
|
+
function Ui(t, e, n) {
|
|
3795
3795
|
if (!t.engaged || e !== t.idx || !n.length) return null;
|
|
3796
|
-
if (!t.wordSync) return t.clipPos ?
|
|
3796
|
+
if (!t.wordSync) return t.clipPos ? ta(n.map((a) => ({ t: a.text, sp: " " })), t.clipPos) : null;
|
|
3797
3797
|
const r = t.t;
|
|
3798
3798
|
let s = -1;
|
|
3799
3799
|
for (let a = 0; a < n.length && n[a].start <= r; a++) s = a;
|
|
@@ -3811,8 +3811,8 @@ function Ft(t, e, n) {
|
|
|
3811
3811
|
const r = (s = t == null ? void 0 : t.words[t.words.length - 1]) == null ? void 0 : s.end;
|
|
3812
3812
|
return r != null && r > e ? r : (t == null ? void 0 : t.end) != null && t.end > e ? t.end : n > e ? n : e + 4;
|
|
3813
3813
|
}
|
|
3814
|
-
function
|
|
3815
|
-
const g = w(null), [f, y] =
|
|
3814
|
+
function hu({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd: o, endT: l, onGone: c, onKnown: u, lead: d, onTime: h, waiting: M = !1 }) {
|
|
3815
|
+
const g = w(null), [f, y] = z(!1);
|
|
3816
3816
|
x(() => {
|
|
3817
3817
|
if (!M) {
|
|
3818
3818
|
y(!1);
|
|
@@ -3821,7 +3821,7 @@ function du({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3821
3821
|
const Z = setTimeout(() => y(!0), 300);
|
|
3822
3822
|
return () => clearTimeout(Z);
|
|
3823
3823
|
}, [M]);
|
|
3824
|
-
const T = r && !f, N = w(!1), [p, b] =
|
|
3824
|
+
const T = r && !f, N = w(!1), [p, b] = z(!1), S = (Z, Ne = []) => {
|
|
3825
3825
|
var q, Le;
|
|
3826
3826
|
if (!(N.current && (Z === "pauseVideo" || Z === "seekTo" || Z === "setPlaybackRate")))
|
|
3827
3827
|
try {
|
|
@@ -3846,7 +3846,7 @@ function du({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3846
3846
|
C.current = n;
|
|
3847
3847
|
const te = w(h);
|
|
3848
3848
|
te.current = h;
|
|
3849
|
-
const J = w(null), L = w(null), [ie, ne] =
|
|
3849
|
+
const J = w(null), L = w(null), [ie, ne] = z(!0), [G, X] = z(!1), me = () => {
|
|
3850
3850
|
S("unloadModule", ["captions"]), S("unloadModule", ["cc"]);
|
|
3851
3851
|
}, le = w([]), Te = () => {
|
|
3852
3852
|
me(), le.current.forEach(clearTimeout), le.current = [400, 1200, 2500, 5e3].map((Z) => window.setTimeout(me, Z));
|
|
@@ -3871,7 +3871,7 @@ function du({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3871
3871
|
$e.current = c;
|
|
3872
3872
|
const De = w(u);
|
|
3873
3873
|
De.current = u;
|
|
3874
|
-
const B = w(!1), [F, _] =
|
|
3874
|
+
const B = w(!1), [F, _] = z(!1), D = (Z) => {
|
|
3875
3875
|
const Ne = Se.current;
|
|
3876
3876
|
return !!Ne && (Z < Ne.start - 1 || Z > Ne.end + 5);
|
|
3877
3877
|
}, H = () => {
|
|
@@ -3939,22 +3939,22 @@ function du({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3939
3939
|
] })
|
|
3940
3940
|
] });
|
|
3941
3941
|
}
|
|
3942
|
-
const
|
|
3942
|
+
const fu = /* @__PURE__ */ m(xe, { children: [
|
|
3943
3943
|
/* @__PURE__ */ i("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
|
|
3944
3944
|
/* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
|
|
3945
|
-
] }),
|
|
3946
|
-
function
|
|
3945
|
+
] }), Mu = /* @__PURE__ */ i("path", { d: "M7.5 5.6a1 1 0 0 1 1.52-.85l9.1 5.55a1 1 0 0 1 0 1.7l-9.1 5.55a1 1 0 0 1-1.52-.85V5.6Z" });
|
|
3946
|
+
function gu({ player: t, size: e }) {
|
|
3947
3947
|
const n = t.muted ? "Unmute" : "Mute";
|
|
3948
3948
|
return /* @__PURE__ */ i("button", { type: "button", className: `mutebtn${e < 36 ? " mutebtn--sm" : e > 36 ? " mutebtn--lg" : ""}`, "aria-label": n, title: n, "aria-pressed": t.muted, onClick: t.toggleMute, children: /* @__PURE__ */ i(oe, { d: t.muted ? ee.volumeOff : ee.volume, size: 17, sw: 1.6, style: { color: t.muted ? "var(--ink-38)" : "var(--ink-70)" } }) });
|
|
3949
3949
|
}
|
|
3950
|
-
function
|
|
3951
|
-
const [t, e] =
|
|
3950
|
+
function mu() {
|
|
3951
|
+
const [t, e] = z(""), n = w(null), r = Je((s) => {
|
|
3952
3952
|
clearTimeout(n.current), e(s), n.current = setTimeout(() => e(""), 3e3);
|
|
3953
3953
|
}, []);
|
|
3954
3954
|
return x(() => () => clearTimeout(n.current), []), [t, r];
|
|
3955
3955
|
}
|
|
3956
|
-
const
|
|
3957
|
-
function
|
|
3956
|
+
const pu = 0.2, yu = 140, Nu = 320;
|
|
3957
|
+
function Tu(t, e) {
|
|
3958
3958
|
const n = w(t);
|
|
3959
3959
|
n.current = t;
|
|
3960
3960
|
const r = w(0), s = w(1), a = Je((o, l) => {
|
|
@@ -3968,21 +3968,21 @@ function Nu(t, e) {
|
|
|
3968
3968
|
d();
|
|
3969
3969
|
}, []);
|
|
3970
3970
|
x(() => {
|
|
3971
|
-
a(e ?
|
|
3971
|
+
a(e ? pu : 1, e ? yu : Nu);
|
|
3972
3972
|
}, [e, a]), x(() => () => {
|
|
3973
3973
|
cancelAnimationFrame(r.current), s.current = 1;
|
|
3974
3974
|
for (const o of n.current) o.setVolume(1);
|
|
3975
3975
|
}, []);
|
|
3976
3976
|
}
|
|
3977
|
-
function
|
|
3977
|
+
function vu(t, e, n, r) {
|
|
3978
3978
|
var De;
|
|
3979
|
-
const s = w(null), a = w(!1), o = w(!1), [l, c] =
|
|
3979
|
+
const s = w(null), a = w(!1), o = w(!1), [l, c] = z(null), [u, d] = z(!0), h = w(!0), M = w(!1), [g, f] = z(0), y = w(0);
|
|
3980
3980
|
y.current = g;
|
|
3981
3981
|
const T = w({ t: 0, at: 0 }), N = w(n);
|
|
3982
3982
|
N.current = n;
|
|
3983
3983
|
const p = w(r);
|
|
3984
3984
|
p.current = r;
|
|
3985
|
-
const [b, S] =
|
|
3985
|
+
const [b, S] = z(!1), A = w(!1), P = (B) => {
|
|
3986
3986
|
A.current = B, S(B);
|
|
3987
3987
|
}, O = (B, F) => {
|
|
3988
3988
|
var _;
|
|
@@ -4021,7 +4021,7 @@ function Tu(t, e, n, r) {
|
|
|
4021
4021
|
let B = 0;
|
|
4022
4022
|
for (let F = 0; F < t.length; F++) t[F].start <= g + 0.05 && (B = F);
|
|
4023
4023
|
return B;
|
|
4024
|
-
}, [t, g]), [te, J] =
|
|
4024
|
+
}, [t, g]), [te, J] = z(0), L = (B) => {
|
|
4025
4025
|
const F = Math.max(0, p.current != null ? Math.min(B, Math.max(0, p.current - 0.5)) : B);
|
|
4026
4026
|
O("seekTo", [F + N.current, !0]), T.current = { t: F, at: performance.now() }, f(F), J((_) => _ + 1);
|
|
4027
4027
|
}, ie = w(!1), ne = w(void 0), G = (B) => {
|
|
@@ -4117,13 +4117,13 @@ function Tu(t, e, n, r) {
|
|
|
4117
4117
|
setVolume: (B) => O("setVolume", [Math.round(B * 100)])
|
|
4118
4118
|
}, lead: E, setVideoSound: ve };
|
|
4119
4119
|
}
|
|
4120
|
-
function
|
|
4120
|
+
function wu(t, e, n, r, s = 0, a = null) {
|
|
4121
4121
|
var _;
|
|
4122
|
-
const o = w(null), [l, c] =
|
|
4122
|
+
const o = w(null), [l, c] = z(!1), [u, d] = z(0), [h, M] = z(!1), g = w(h);
|
|
4123
4123
|
g.current = h;
|
|
4124
|
-
const f = w(!1), [y, T] =
|
|
4124
|
+
const f = w(!1), [y, T] = z(null), [N, p] = z(!1), b = w(s);
|
|
4125
4125
|
b.current = s;
|
|
4126
|
-
const S = w(null), [A, P] =
|
|
4126
|
+
const S = w(null), [A, P] = z(0);
|
|
4127
4127
|
x(() => {
|
|
4128
4128
|
p(!1);
|
|
4129
4129
|
const D = S.current;
|
|
@@ -4131,16 +4131,16 @@ function vu(t, e, n, r, s = 0, a = null) {
|
|
|
4131
4131
|
c(!1), o.current = null;
|
|
4132
4132
|
return;
|
|
4133
4133
|
}
|
|
4134
|
-
const H =
|
|
4134
|
+
const H = Ji(t), ce = b.current;
|
|
4135
4135
|
return H.preload = "metadata", H.muted = g.current || f.current, H.onplay = () => c(!0), H.onpause = () => c(!1), H.onended = () => c(!1), H.onloadedmetadata = () => {
|
|
4136
4136
|
p(!0), H.currentTime = ((D == null ? void 0 : D.t) ?? 0) + ce, D != null && D.playing && H.play().catch((Z) => {
|
|
4137
4137
|
D.asked && (Z == null ? void 0 : Z.name) === "NotAllowedError" || T(Ct(Z));
|
|
4138
4138
|
});
|
|
4139
4139
|
}, H.onerror = () => {
|
|
4140
4140
|
c(!1);
|
|
4141
|
-
const Z = H.error, Ne =
|
|
4142
|
-
|
|
4143
|
-
|
|
4141
|
+
const Z = H.error, Ne = Eo(Z, !1);
|
|
4142
|
+
xo(t).then((q) => {
|
|
4143
|
+
ru(q == null ? void 0 : q.message) || qi(Z), o.current === H && (T({ message: (q == null ? void 0 : q.message) ?? Ne }), q != null && q.permanent || (o.current = null));
|
|
4144
4144
|
});
|
|
4145
4145
|
}, o.current = H, () => {
|
|
4146
4146
|
S.current = { t: Math.max(0, H.currentTime - ce), playing: !H.paused && !H.ended }, H.pause(), H.onplay = H.onpause = H.onended = H.onloadedmetadata = H.onerror = null, o.current = null;
|
|
@@ -4154,7 +4154,7 @@ function vu(t, e, n, r, s = 0, a = null) {
|
|
|
4154
4154
|
E.current = V;
|
|
4155
4155
|
const k = w(a);
|
|
4156
4156
|
k.current = a;
|
|
4157
|
-
const [Y, C] =
|
|
4157
|
+
const [Y, C] = z(!1), te = w(!1), J = (D) => {
|
|
4158
4158
|
te.current = D, C(D);
|
|
4159
4159
|
};
|
|
4160
4160
|
x(() => {
|
|
@@ -4191,7 +4191,7 @@ function vu(t, e, n, r, s = 0, a = null) {
|
|
|
4191
4191
|
let D = 0;
|
|
4192
4192
|
for (let H = 0; H < n.length; H++) n[H].start <= u + 0.05 && (D = H);
|
|
4193
4193
|
return D;
|
|
4194
|
-
}, [n, u]), [ie, ne] =
|
|
4194
|
+
}, [n, u]), [ie, ne] = z(0), G = (D) => {
|
|
4195
4195
|
const H = k.current != null ? Math.min(D, Math.max(0, k.current - 0.5)) : D, ce = o.current;
|
|
4196
4196
|
d(H), ce && (ce.currentTime = H + b.current), ne((Z) => Z + 1);
|
|
4197
4197
|
}, X = (D) => {
|
|
@@ -4220,7 +4220,7 @@ function vu(t, e, n, r, s = 0, a = null) {
|
|
|
4220
4220
|
const H = n[Math.max(0, Math.min(n.length - 1, D))];
|
|
4221
4221
|
H && G(H.start);
|
|
4222
4222
|
}, Te = (D) => G(Math.max(0, Math.min(1, D)) * I), je = (D) => {
|
|
4223
|
-
const H =
|
|
4223
|
+
const H = Rn(D, n, I);
|
|
4224
4224
|
G(H.t);
|
|
4225
4225
|
const ce = o.current;
|
|
4226
4226
|
if (ce) {
|
|
@@ -4309,14 +4309,14 @@ function vu(t, e, n, r, s = 0, a = null) {
|
|
|
4309
4309
|
}
|
|
4310
4310
|
};
|
|
4311
4311
|
}
|
|
4312
|
-
function
|
|
4312
|
+
function ku(t, e, n, r, s, a, o = !1, l) {
|
|
4313
4313
|
const c = w(/* @__PURE__ */ new Set());
|
|
4314
4314
|
c.current = l ?? c.current;
|
|
4315
|
-
const u = w(null), [d, h] =
|
|
4315
|
+
const u = w(null), [d, h] = z(!1), [M, g] = z(0), [f, y] = z(0), [T, N] = z(!1), p = w(T);
|
|
4316
4316
|
p.current = T;
|
|
4317
|
-
const [b, S] =
|
|
4317
|
+
const [b, S] = z(null), [A, P] = z(null), [O, V] = z(null), [I, W] = z(null), E = w(I);
|
|
4318
4318
|
E.current = I;
|
|
4319
|
-
const [k, Y] =
|
|
4319
|
+
const [k, Y] = z(null), [C, te] = z(null), [J, L] = z(null), [ie, ne] = z(!1), G = w(e);
|
|
4320
4320
|
G.current = e;
|
|
4321
4321
|
const X = w(o), me = w([]);
|
|
4322
4322
|
X.current = o, u.current && (u.current.flow = o);
|
|
@@ -4330,7 +4330,7 @@ function wu(t, e, n, r, s, a, o = !1, l) {
|
|
|
4330
4330
|
const K = G.current.findIndex((se) => se.sentenceId === $);
|
|
4331
4331
|
K >= 0 && g(K);
|
|
4332
4332
|
}, U.onError = ($) => {
|
|
4333
|
-
h(U.playing), S($ instanceof
|
|
4333
|
+
h(U.playing), S($ instanceof Xi ? { message: "The voice could not be started. Press Play to try again.", code: "voice_not_started" } : { message: "A line of this reading could not be played." });
|
|
4334
4334
|
}, U.gapBefore = ($, K) => {
|
|
4335
4335
|
if (!X.current) return 0;
|
|
4336
4336
|
const se = G.current, he = se.find((Oe) => Oe.sentenceId === $), be = se.find((Oe) => Oe.sentenceId === K);
|
|
@@ -4351,10 +4351,10 @@ function wu(t, e, n, r, s, a, o = !1, l) {
|
|
|
4351
4351
|
const se = G.current.find((he) => he.sentenceId === $);
|
|
4352
4352
|
return !se || !K.has(se.speaker);
|
|
4353
4353
|
};
|
|
4354
|
-
}, []), we = w(null), ve = w(null), Ee = w(null), [$e, De] =
|
|
4354
|
+
}, []), we = w(null), ve = w(null), Ee = w(null), [$e, De] = z(!1), B = w(() => {
|
|
4355
4355
|
}), F = (U) => {
|
|
4356
4356
|
if (Ee.current = U, De(!!(U != null && U.playing)), !U) return;
|
|
4357
|
-
const $ =
|
|
4357
|
+
const $ = Rn(U, G.current, Ie).index;
|
|
4358
4358
|
g($), Ae.current = $;
|
|
4359
4359
|
}, _ = () => {
|
|
4360
4360
|
Ee.current && F(null);
|
|
@@ -4423,7 +4423,7 @@ function wu(t, e, n, r, s, a, o = !1, l) {
|
|
|
4423
4423
|
return { from: K, span: Math.max(0, se - K) };
|
|
4424
4424
|
}, fe = Q(q), de = Math.max(0, Math.min(fe.span, Ft(e[q], fe.from, fe.from + 4) - fe.from)), ae = I ? I.t : o ? C != null && ie ? fe.from + Math.min(fe.span, C) : C != null ? J != null ? Math.min(fe.from, J + C) : fe.from + Math.min(fe.span, de + C) : k && k.dur > 0 ? fe.from + Math.min(de, k.t / k.dur * de) : fe.from : k && k.dur > 0 ? fe.from + Math.min(fe.span, k.t / k.dur * fe.span) : fe.from;
|
|
4425
4425
|
x(() => {
|
|
4426
|
-
ve.current = Ee.current ??
|
|
4426
|
+
ve.current = Ee.current ?? ou(e, ae, d, Ie);
|
|
4427
4427
|
});
|
|
4428
4428
|
const ge = {
|
|
4429
4429
|
playing: d || $e,
|
|
@@ -4547,10 +4547,10 @@ function wu(t, e, n, r, s, a, o = !1, l) {
|
|
|
4547
4547
|
te((K == null ? void 0 : K.s) ?? null), ne(!!(K != null && K.silent)), h(!!((ye = u.current) != null && ye.playing));
|
|
4548
4548
|
}
|
|
4549
4549
|
return ge.joinAt = o ? (U) => {
|
|
4550
|
-
_(), Ye(
|
|
4550
|
+
_(), Ye(Rn({ t: U, playing: !0, sentenceId: null, offset: 0, ended: !1 }, e, Ie).index);
|
|
4551
4551
|
} : void 0, B.current = (U) => {
|
|
4552
4552
|
var K;
|
|
4553
|
-
const $ =
|
|
4553
|
+
const $ = Rn(U, e, Ie);
|
|
4554
4554
|
if (X.current) {
|
|
4555
4555
|
g($.index), Ae.current = $.index, $.playing && Ye($.index);
|
|
4556
4556
|
return;
|
|
@@ -4558,22 +4558,22 @@ function wu(t, e, n, r, s, a, o = !1, l) {
|
|
|
4558
4558
|
(K = ge.seekFrac) == null || K.call(ge, $.t / Ie), $.playing && ue(Ae.current);
|
|
4559
4559
|
}, ge;
|
|
4560
4560
|
}
|
|
4561
|
-
const
|
|
4562
|
-
},
|
|
4563
|
-
function
|
|
4561
|
+
const Lu = () => {
|
|
4562
|
+
}, ju = "The language this recording is read aloud in.", zu = { title: "READ IN", note: "The transcript and its voice switch to this language." };
|
|
4563
|
+
function Iu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, langs: o, srcLang: l, canTranslate: c, pickedLang: u, setPickedLang: d, side: h, hearOriginal: M = !1, timed: g = !1, stockVoices: f = !1, stickyPicker: y = !1, pickerBusy: T = null, voiceSheet: N, forcedVoice: p = null }) {
|
|
4564
4564
|
var yn, pt, Nn, ln;
|
|
4565
|
-
const { onAddVoice: b, onPickVoice: S, onSelectSpeaker: A, noCloneFor: P, castNoClone: O, castShort: V, castBuilding: I, castWarn: W, badge: E, titleNode: k } = N ?? {}, Y = !!N, C = !!(N != null && N.pendingClones), [te, J] =
|
|
4565
|
+
const { onAddVoice: b, onPickVoice: S, onSelectSpeaker: A, noCloneFor: P, castNoClone: O, castShort: V, castBuilding: I, castWarn: W, badge: E, titleNode: k } = N ?? {}, Y = !!N, C = !!(N != null && N.pendingClones), [te, J] = ra(), [L, ie] = z(null), [ne, G] = z(!1), [X, me] = z(!1), [le, Te] = z(!1), [je, Se] = z(!1), we = u ?? l, ve = u === null, Ee = u != null || L != null, De = ((R) => !!R && !!(o != null && o.voice.includes(R)))(ve ? l : we) ? ve ? l : we : "en", B = au(De), F = (N == null ? void 0 : N.cloneOn) ?? !0, [_, D] = z(0), H = w(F);
|
|
4566
4566
|
x(() => {
|
|
4567
4567
|
H.current !== F && (H.current = F, D((R) => R + 1));
|
|
4568
4568
|
}, [F]);
|
|
4569
|
-
const ce =
|
|
4570
|
-
const R =
|
|
4569
|
+
const ce = $c(De, Ee || s || X, Rc(e) * 1e3 + _, { id: t ?? null, shareCode: a.shareCode ?? null }), Z = ze(() => ((ce == null ? void 0 : ce.voices) ?? []).filter((R) => Y || !R.cloned || R.speaker != null), [ce, Y]), Ne = Z.length > 1, q = Yr(o, we), Le = ma(), Ie = ze(() => sa(o, "translation"), [o]), [Fe, Ae] = z(null), [ue] = z(() => /* @__PURE__ */ new Set()), [_e, Ve] = z({}), Q = ze(() => Ac(n, e, Le.vcUnknownSpk), [n, e, Le]), fe = Ne && Q.filter((R) => R.key >= 0).length > 1, de = Fe != null && Q.some((R) => R.key === Fe) ? Fe : ((yn = Q[0]) == null ? void 0 : yn.key) ?? null, ae = ze(() => {
|
|
4570
|
+
const R = _i(Q, Z, F);
|
|
4571
4571
|
for (const [Ce, Qe] of Object.entries(_e[De ?? ""] ?? {})) R.set(Number(Ce), Qe);
|
|
4572
4572
|
return R;
|
|
4573
|
-
}, [Q, Z, _e, De, F]), ge = fe && Object.keys(_e[De ?? ""] ?? {}).length > 0, Ye = ze(() => f && !ge ?
|
|
4573
|
+
}, [Q, Z, _e, De, F]), ge = fe && Object.keys(_e[De ?? ""] ?? {}).length > 0, Ye = ze(() => f && !ge ? _i(Q, Z, !1) : null, [f, ge, Q, Z]), U = ze(() => ge ? Ai(ae) || null : Ye && Ai(Ye) || null, [ge, ae, Ye]), $ = ge ? ae : Ye, K = Z.some((R) => R.cloned && R.consent !== "pending"), se = !!we && !!(o != null && o.voice.includes(we)), he = se && !M, be = ze(
|
|
4574
4574
|
() => n.filter((R) => !R.suppressed && !R.unclear).map((R) => R.sentenceId).filter((R) => R != null),
|
|
4575
4575
|
[n]
|
|
4576
|
-
), ye =
|
|
4576
|
+
), ye = Pc({ recordingId: t, lang: we, ended: s, cred: a, pickedVoice: p || (U ?? L), sentenceIds: s && he ? be : void 0 }), ke = Z.find((R) => R.id === L) ?? Z.find((R) => {
|
|
4577
4577
|
var Ce;
|
|
4578
4578
|
return R.id === ((Ce = ye.track) == null ? void 0 : Ce.voice);
|
|
4579
4579
|
}) ?? Z.find((R) => R.default) ?? Z[0] ?? null, Oe = (ke == null ? void 0 : ke.id) ?? null;
|
|
@@ -4582,7 +4582,7 @@ function zu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4582
4582
|
const R = setInterval(ye.reload, 4e3);
|
|
4583
4583
|
return () => clearInterval(R);
|
|
4584
4584
|
}, [ye.rendering, ye.reload]);
|
|
4585
|
-
const He = `${t ?? ""}|${we ?? ""}|${p || (U ?? L ?? ((pt = ye.track) == null ? void 0 : pt.voiceKey) ?? "default")}`, Pe =
|
|
4585
|
+
const He = `${t ?? ""}|${we ?? ""}|${p || (U ?? L ?? ((pt = ye.track) == null ? void 0 : pt.voiceKey) ?? "default")}`, Pe = ku(ye.clips, n, r, He, ue, (Nn = ye.track) == null ? void 0 : Nn.wordTimes, g, ye.coming);
|
|
4586
4586
|
x(() => {
|
|
4587
4587
|
var Ce;
|
|
4588
4588
|
const R = (Ce = n[Pe.idx]) == null ? void 0 : Ce.sentenceId;
|
|
@@ -4636,7 +4636,7 @@ function zu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4636
4636
|
return;
|
|
4637
4637
|
}
|
|
4638
4638
|
ie(R);
|
|
4639
|
-
}, v = ve ? { ...Yr(o, null), flag: /* @__PURE__ */ i(oe, { d: ee.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : q,
|
|
4639
|
+
}, v = ve ? { ...Yr(o, null), flag: /* @__PURE__ */ i(oe, { d: ee.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : q, Gn = c ? h ? /* @__PURE__ */ i("span", { className: "barchip", style: ct ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(Bn, { flag: v.flag, code: v.code, bordered: !1, onClick: rn, flagOnly: !0, label: v.label }) }) : /* @__PURE__ */ i(Bn, { flag: v.flag, code: v.code, bordered: !1, onClick: it, flagOnly: !0, label: v.label }) : null, Ut = ee.voiceClone, $t = Ee && (!!ye.track || ht), Rt = at ? "var(--conf-low)" : $t || h && ot ? "var(--brand)" : "var(--ink-55)", qt = lu({ on: Ee, want: je, relang: st, playing: Pe.playing, preparing: !!Pe.preparing, starting: Pe.starting }), [mn] = ka(qt === "line", 400), qe = qt === "asked" || qt === "line" && mn, lt = ht || qe, sn = qt === "asked" ? Yi : Pe.preparing ? `Speaking this line in ${(ke == null ? void 0 : ke.name) ?? "this voice"}…` : ht ? `Preparing this recording in ${(ke == null ? void 0 : ke.name) ?? "this voice"} — it will play as soon as it is ready` : at ? `This voice could not be prepared: ${at}` : se ? Ne ? "Choose a voice" : ke ? ke.name : Le.vcNoVoice + q.label : `${Le.vcNoVoice}${q.label}`, vt = /* @__PURE__ */ i(Bo, { open: ne, onClose: Be, keepOpen: (!!h || y) && !le, value: ve ? null : we, onSelect: Mn, languages: Ie, title: (h == null ? void 0 : h.title) ?? "SPOKEN LANGUAGE", note: (h == null ? void 0 : h.note) ?? ju, searchPlaceholder: Le.search, none: "Original", pinned: (ve ? l : we) ? [ve ? l : we] : [], recent: te, requireVoice: le, sticky: y, busy: T }), mt = ze(() => Z.filter((R) => R.cloned && !R.auto), [Z]), Kt = (R) => R.voiceId ? mt.find((Ce) => Ce.id === `clone:${R.voiceId}`) ?? null : null, ft = ze(() => Q.filter((R) => R.key >= 0), [Q]), an = ze(() => {
|
|
4640
4640
|
const R = Z.filter((Qe) => !Qe.cloned);
|
|
4641
4641
|
if (!fe) return [...R, ...s && ft.length === 1 ? mt.filter((Qe) => Qe.id === `clone:${ft[0].voiceId}`) : []];
|
|
4642
4642
|
const Ce = [];
|
|
@@ -4654,11 +4654,11 @@ function zu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4654
4654
|
lt && /* @__PURE__ */ i("span", { "aria-hidden": "true", style: { position: "absolute", inset: 0, boxSizing: "border-box", borderRadius: "50%", border: "2px solid var(--fill-12)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite", pointerEvents: "none" } }),
|
|
4655
4655
|
tt.length > 0 ? /* @__PURE__ */ i("span", { className: "txvoice__warn", title: tt.join(" · "), children: "!" }) : !!Qt && /* @__PURE__ */ i("span", { className: "txvoice__n", title: `${Qt} speaker${Qt === 1 ? "" : "s"} can get a cloned voice`, children: Qt })
|
|
4656
4656
|
] }), Dt = /* @__PURE__ */ i(nn, { open: X, onClose: Xe, title: Le.vcSheet, titleNode: k, doneLabel: Le.done, children: /* @__PURE__ */ i(
|
|
4657
|
-
|
|
4657
|
+
_c,
|
|
4658
4658
|
{
|
|
4659
4659
|
t: Le,
|
|
4660
4660
|
cast: fe && /* @__PURE__ */ i(
|
|
4661
|
-
|
|
4661
|
+
Ec,
|
|
4662
4662
|
{
|
|
4663
4663
|
t: Le,
|
|
4664
4664
|
roster: Q,
|
|
@@ -4701,26 +4701,26 @@ function zu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4701
4701
|
},
|
|
4702
4702
|
onUse: gn
|
|
4703
4703
|
}
|
|
4704
|
-
) }),
|
|
4704
|
+
) }), qn = h ? null : /* @__PURE__ */ m(xe, { children: [
|
|
4705
4705
|
vt,
|
|
4706
4706
|
Dt
|
|
4707
|
-
] }),
|
|
4707
|
+
] }), Kn = h && (ne || X) ? /* @__PURE__ */ i("div", { className: "vs-side", children: ne ? vt : Dt }) : null, At = Ge ? at ? `This voice could not be prepared: ${at}` : qe && (je || Pe.playing) ? Yi : null : null, Jn = Tt;
|
|
4708
4708
|
return {
|
|
4709
4709
|
barChip: { flag: v.flag, code: v.code, label: v.label, onClick: h || y ? rn : it, active: !!((h || y) && ct), can: c },
|
|
4710
4710
|
sheetsOpen: ne || X,
|
|
4711
4711
|
on: Ge,
|
|
4712
4712
|
player: gt,
|
|
4713
|
-
chip:
|
|
4713
|
+
chip: Gn,
|
|
4714
4714
|
voiceBtn: pn,
|
|
4715
4715
|
voiceWaiting: lt,
|
|
4716
|
-
sheets:
|
|
4717
|
-
sidePanel:
|
|
4716
|
+
sheets: qn,
|
|
4717
|
+
sidePanel: Kn,
|
|
4718
4718
|
voicesMine: ot,
|
|
4719
4719
|
toggleVoices: re,
|
|
4720
4720
|
cloningOn: F,
|
|
4721
4721
|
playTitle: At,
|
|
4722
4722
|
noVoice: Tt,
|
|
4723
|
-
noVoiceNote:
|
|
4723
|
+
noVoiceNote: Jn,
|
|
4724
4724
|
relang: st,
|
|
4725
4725
|
sampling: B.sampleId != null,
|
|
4726
4726
|
error: B.error,
|
|
@@ -4756,12 +4756,12 @@ function zu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4756
4756
|
langList: { value: ve ? null : we, onSelect: Mn, languages: Ie, searchPlaceholder: Le.search, none: "Original", pinned: (ve ? l : we) ? [ve ? l : we] : [], recent: te }
|
|
4757
4757
|
};
|
|
4758
4758
|
}
|
|
4759
|
-
function
|
|
4759
|
+
function bu({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: h = !0, tail: M, tailFg: g, running: f, desk: y, feedRef: T, listener: N, showLabels: p, find: b, findOpen: S, lang: A, warm: P, onVisible: O, wordHl: V = !0 }) {
|
|
4760
4760
|
const { playing: I, engaged: W, t: E, idx: k, seekN: Y, wordSync: C, clipPos: te } = n;
|
|
4761
|
-
|
|
4761
|
+
qc(!0, T);
|
|
4762
4762
|
const J = w(null);
|
|
4763
|
-
|
|
4764
|
-
const [L, ie] =
|
|
4763
|
+
Lc(T, J);
|
|
4764
|
+
const [L, ie] = z(null), ne = (b ?? "").trim().toLowerCase(), [G, X] = z(0), me = w(0), le = w(null), Te = w(k), je = (F) => {
|
|
4765
4765
|
var _;
|
|
4766
4766
|
return ((_ = T.current) == null ? void 0 : _.querySelector(`[data-tx-row="${F}"]`)) ?? null;
|
|
4767
4767
|
}, Se = w("");
|
|
@@ -4838,27 +4838,27 @@ function Iu({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4838
4838
|
"Now playing"
|
|
4839
4839
|
] }) });
|
|
4840
4840
|
return /* @__PURE__ */ m("div", { ref: T, "data-tx-feed": "1", className: `txfeed${y ? " txfeed--desk" : ""}${S && !f ? " is-find" : ""}`, children: [
|
|
4841
|
-
/* @__PURE__ */ i(
|
|
4841
|
+
/* @__PURE__ */ i(jc, { thumbRef: J }),
|
|
4842
4842
|
I && G === -1 && B("up"),
|
|
4843
4843
|
e.map((F, _) => {
|
|
4844
4844
|
var fe;
|
|
4845
4845
|
const D = I && _ === k, H = W && _ === k, ce = !!u && u === F.id, Z = ne && !F.text.toLowerCase().includes(ne) && !(A && ((fe = F.translations[A]) != null && fe.toLowerCase().includes(ne))) ? 0.22 : !W || _ <= k || ce ? 1 : 0.38, Ne = N ? () => n.playRow(_) : c && l ? () => {
|
|
4846
4846
|
I && !D && n.seekRow(_), l(F);
|
|
4847
|
-
} : I && D ? void 0 : () => n.playRow(_), q = N ? null :
|
|
4847
|
+
} : I && D ? void 0 : () => n.playRow(_), q = N ? null : bc(F, s, r), Le = !!q && (q.script > 0 || q.manual), Ie = y && !!a && L === F.id && !!q && !Le, Fe = Hr(t, F.speaker), Ae = Wr(t, F.speaker), ue = Ae.lane, _e = A && F.translations[A] && F.language !== A ? F.translations[A] : null, Ve = La(e, _, A), Q = H && !C && te ? ta(Ve.map((de) => ({ t: de.text, sp: " " })), te) : null;
|
|
4848
4848
|
return /* @__PURE__ */ m("div", { "data-tx-row": _, "data-sentence": F.sentenceId, className: `txline${P ? " txline--warm" : ""}${ce ? " txline--fixing" : ""}`, "aria-current": ce || void 0, style: { opacity: Z }, onClick: Ne, onMouseEnter: y && a ? () => ie(F.id) : void 0, onMouseLeave: y && a ? () => ie(null) : void 0, children: [
|
|
4849
4849
|
/* @__PURE__ */ m("div", { className: "txline__meta", children: [
|
|
4850
4850
|
/* @__PURE__ */ i("span", { className: "txline__at", children: Ot(F.start) }),
|
|
4851
4851
|
p && F.speaker >= 0 && /* @__PURE__ */ m(xe, { children: [
|
|
4852
|
-
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${ue}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children:
|
|
4852
|
+
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${ue}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children: ua(t, F.speaker) }),
|
|
4853
4853
|
/* @__PURE__ */ i("span", { className: `txline__who lane-${ue}`, style: Ae.fg ? { color: Ae.fg } : void 0, children: Fe }),
|
|
4854
|
-
Ae.hasVoice && /* @__PURE__ */ i(
|
|
4854
|
+
Ae.hasVoice && /* @__PURE__ */ i(Ta, { color: Ae.fg ?? `var(--lane-${ue})` })
|
|
4855
4855
|
] }),
|
|
4856
4856
|
D && /* @__PURE__ */ i("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ i(oe, { d: ee.headphones, size: y ? 15 : 14, sw: 1.6, stroke: p && F.speaker >= 0 ? Ae.fg ?? `var(--lane-${ue})` : "var(--ink-45)" }) }),
|
|
4857
|
-
q && h && /* @__PURE__ */ i(
|
|
4858
|
-
Ie && /* @__PURE__ */ i(
|
|
4857
|
+
q && h && /* @__PURE__ */ i(Oc, { f: q, desk: y, onOpen: a ? () => a(F, !0) : void 0 }),
|
|
4858
|
+
Ie && /* @__PURE__ */ i(xc, { alone: !0, onOpen: () => a == null ? void 0 : a(F, !1) })
|
|
4859
4859
|
] }),
|
|
4860
4860
|
/* @__PURE__ */ i("div", { className: "txline__text", children: Ve.map((de, ae) => {
|
|
4861
|
-
const ge = `${de.seq}:${de.idx}`, Ye =
|
|
4861
|
+
const ge = `${de.seq}:${de.idx}`, Ye = Gl(de.prob), U = H && V, $ = U && (C ? E >= de.start && (E < de.end || ae === Ve.length - 1 || E < Ve[ae + 1].start) : ae === Q), K = U && !$ && (C ? de.start > E : Q != null && ae > Q), se = !_e && !N && (!!(r != null && r.has(ge)) || !!de.script), he = !_e && !N && d && !!Ye && !se, be = he ? Ye === "low" ? "var(--conf-low-half)" : "var(--conf-mid-half)" : null, ye = se ? "var(--brand)" : K ? "var(--ink-40)" : be ?? "var(--ink-96)";
|
|
4862
4862
|
return /* @__PURE__ */ m("span", { children: [
|
|
4863
4863
|
/* @__PURE__ */ i(
|
|
4864
4864
|
"span",
|
|
@@ -4894,7 +4894,7 @@ function Iu({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4894
4894
|
I && G === 1 && B("down")
|
|
4895
4895
|
] });
|
|
4896
4896
|
}
|
|
4897
|
-
function
|
|
4897
|
+
function Ou({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: a, inline: o, flash: l }) {
|
|
4898
4898
|
return /* @__PURE__ */ i("div", { className: o ? "searchbar searchbar--inline" : `searchbar searchbar--float${a ? " searchbar--desk" : ""}${t ? "" : " is-hidden"}`, children: /* @__PURE__ */ m("div", { children: [
|
|
4899
4899
|
/* @__PURE__ */ i(oe, { d: ee.search, size: 16, sw: 1.7, style: { color: "var(--ink-45)", flex: "none" } }),
|
|
4900
4900
|
/* @__PURE__ */ i("input", { value: e, onChange: (c) => n(c.target.value), onKeyDown: (c) => {
|
|
@@ -4908,12 +4908,12 @@ function bu({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: a, inline: o, fl
|
|
|
4908
4908
|
e.trim() && /* @__PURE__ */ i("button", { type: "button", className: "searchbar__x", onClick: () => n(""), "aria-label": "Clear", title: "Clear", children: /* @__PURE__ */ i(oe, { d: ee.close, size: 15, sw: 1.7 }) })
|
|
4909
4909
|
] }) });
|
|
4910
4910
|
}
|
|
4911
|
-
function
|
|
4911
|
+
function xu(t, e, n, r, s) {
|
|
4912
4912
|
const a = w(n);
|
|
4913
4913
|
a.current = n;
|
|
4914
4914
|
const o = w(r);
|
|
4915
4915
|
o.current = r;
|
|
4916
|
-
const [l, c] =
|
|
4916
|
+
const [l, c] = z(0), u = r.trim().toLowerCase();
|
|
4917
4917
|
return x(() => {
|
|
4918
4918
|
c(u ? e.filter((d) => d.text.toLowerCase().includes(u)).length : 0);
|
|
4919
4919
|
}, [e, u]), x(() => {
|
|
@@ -4938,7 +4938,7 @@ function Ou(t, e, n, r, s) {
|
|
|
4938
4938
|
}, []), l;
|
|
4939
4939
|
}
|
|
4940
4940
|
const fn = { formatBits: 0, perBlock: [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28], blocks: [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49] };
|
|
4941
|
-
function
|
|
4941
|
+
function ja(t) {
|
|
4942
4942
|
let e = (16 * t + 128) * t + 64;
|
|
4943
4943
|
if (t >= 2) {
|
|
4944
4944
|
const n = Math.floor(t / 7) + 2;
|
|
@@ -4946,14 +4946,14 @@ function La(t) {
|
|
|
4946
4946
|
}
|
|
4947
4947
|
return e;
|
|
4948
4948
|
}
|
|
4949
|
-
const
|
|
4949
|
+
const $i = (t) => Math.floor(ja(t) / 8) - fn.perBlock[t] * fn.blocks[t];
|
|
4950
4950
|
function $r(t, e) {
|
|
4951
4951
|
let n = 0;
|
|
4952
4952
|
for (let r = 7; r >= 0; r--)
|
|
4953
4953
|
n = n << 1 ^ (n >>> 7) * 285, n ^= (e >>> r & 1) * t;
|
|
4954
4954
|
return n;
|
|
4955
4955
|
}
|
|
4956
|
-
function
|
|
4956
|
+
function Cu(t) {
|
|
4957
4957
|
const e = new Array(t).fill(0);
|
|
4958
4958
|
e[t - 1] = 1;
|
|
4959
4959
|
let n = 1;
|
|
@@ -4963,7 +4963,7 @@ function xu(t) {
|
|
|
4963
4963
|
}
|
|
4964
4964
|
return e;
|
|
4965
4965
|
}
|
|
4966
|
-
function
|
|
4966
|
+
function Su(t, e) {
|
|
4967
4967
|
const n = new Array(e.length).fill(0);
|
|
4968
4968
|
for (const r of t) {
|
|
4969
4969
|
const s = r ^ n.shift();
|
|
@@ -4973,19 +4973,19 @@ function Cu(t, e) {
|
|
|
4973
4973
|
}
|
|
4974
4974
|
return n;
|
|
4975
4975
|
}
|
|
4976
|
-
function
|
|
4976
|
+
function Du(t) {
|
|
4977
4977
|
if (t === 1) return [];
|
|
4978
4978
|
const e = Math.floor(t / 7) + 2, n = t * 4 + 17, r = t === 32 ? 26 : Math.ceil((t * 4 + 4) / (e * 2 - 2)) * 2, s = [6];
|
|
4979
4979
|
for (let a = n - 7; s.length < e; a -= r) s.splice(1, 0, a);
|
|
4980
4980
|
return s;
|
|
4981
4981
|
}
|
|
4982
|
-
function
|
|
4982
|
+
function Au(t) {
|
|
4983
4983
|
const e = Array.from(new TextEncoder().encode(t));
|
|
4984
4984
|
let n = 1;
|
|
4985
|
-
for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <=
|
|
4985
|
+
for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= $i(n) * 8); n++)
|
|
4986
4986
|
;
|
|
4987
4987
|
if (n > 40) throw new Error("Text too long for a QR code");
|
|
4988
|
-
const r = n * 4 + 17, s =
|
|
4988
|
+
const r = n * 4 + 17, s = $i(n) * 8, a = [], o = (k, Y) => {
|
|
4989
4989
|
for (let C = Y - 1; C >= 0; C--) a.push(k >>> C & 1);
|
|
4990
4990
|
};
|
|
4991
4991
|
o(4, 4), o(e.length, n <= 9 ? 8 : 16);
|
|
@@ -4994,11 +4994,11 @@ function Du(t) {
|
|
|
4994
4994
|
for (let k = 236; a.length < s; k ^= 253) o(k, 8);
|
|
4995
4995
|
const l = [];
|
|
4996
4996
|
for (let k = 0; k < a.length; k += 8) l.push(a.slice(k, k + 8).reduce((Y, C) => Y << 1 | C, 0));
|
|
4997
|
-
const c = fn.blocks[n], u = fn.perBlock[n], d = Math.floor(
|
|
4997
|
+
const c = fn.blocks[n], u = fn.perBlock[n], d = Math.floor(ja(n) / 8), h = c - d % c, M = Math.floor(d / c), g = [], f = Cu(u);
|
|
4998
4998
|
for (let k = 0, Y = 0; k < c; k++) {
|
|
4999
4999
|
const C = l.slice(Y, Y + M - u + (k < h ? 0 : 1));
|
|
5000
5000
|
Y += C.length;
|
|
5001
|
-
const te =
|
|
5001
|
+
const te = Su(C, f);
|
|
5002
5002
|
k < h && C.push(0), g.push(C.concat(te));
|
|
5003
5003
|
}
|
|
5004
5004
|
const y = [];
|
|
@@ -5017,7 +5017,7 @@ function Du(t) {
|
|
|
5017
5017
|
}
|
|
5018
5018
|
};
|
|
5019
5019
|
b(3, 3), b(r - 4, 3), b(3, r - 4);
|
|
5020
|
-
const S =
|
|
5020
|
+
const S = Du(n);
|
|
5021
5021
|
for (let k = 0; k < S.length; k++) for (let Y = 0; Y < S.length; Y++)
|
|
5022
5022
|
if (!(k === 0 && Y === 0 || k === 0 && Y === S.length - 1 || k === S.length - 1 && Y === 0))
|
|
5023
5023
|
for (let C = -2; C <= 2; C++) for (let te = -2; te <= 2; te++) p(S[k] + te, S[Y] + C, Math.max(Math.abs(te), Math.abs(C)) !== 1);
|
|
@@ -5104,27 +5104,27 @@ function Du(t) {
|
|
|
5104
5104
|
}
|
|
5105
5105
|
return V(W), A(W), T;
|
|
5106
5106
|
}
|
|
5107
|
-
function
|
|
5108
|
-
const e =
|
|
5107
|
+
function Eu(t) {
|
|
5108
|
+
const e = Au(t), n = e.length, r = 2;
|
|
5109
5109
|
let s = "";
|
|
5110
5110
|
for (let o = 0; o < n; o++) for (let l = 0; l < n; l++) e[o][l] && (s += `M${l} ${o}h1v1h-1z`);
|
|
5111
5111
|
const a = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${-r} ${-r} ${n + r * 2} ${n + r * 2}" shape-rendering="crispEdges"><rect x="${-r}" y="${-r}" width="${n + r * 2}" height="${n + r * 2}" fill="#fff"/><path fill="#111" d="${s}"/></svg>`;
|
|
5112
5112
|
return `data:image/svg+xml,${encodeURIComponent(a)}`;
|
|
5113
5113
|
}
|
|
5114
|
-
const
|
|
5114
|
+
const za = "M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15", _u = "M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25";
|
|
5115
5115
|
function zr() {
|
|
5116
5116
|
const t = document;
|
|
5117
5117
|
return t.fullscreenElement ?? t.webkitFullscreenElement ?? null;
|
|
5118
5118
|
}
|
|
5119
5119
|
let qr = null;
|
|
5120
|
-
function
|
|
5120
|
+
function Ri(t) {
|
|
5121
5121
|
qr = t;
|
|
5122
5122
|
}
|
|
5123
|
-
function
|
|
5123
|
+
function Pi() {
|
|
5124
5124
|
const t = document;
|
|
5125
5125
|
return !!(t.fullscreenEnabled || t.webkitFullscreenEnabled);
|
|
5126
5126
|
}
|
|
5127
|
-
function
|
|
5127
|
+
function Yu() {
|
|
5128
5128
|
var e;
|
|
5129
5129
|
if (typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches)) return !1;
|
|
5130
5130
|
const t = qr ?? document.documentElement;
|
|
@@ -5132,9 +5132,9 @@ function _u() {
|
|
|
5132
5132
|
}
|
|
5133
5133
|
function dn(t) {
|
|
5134
5134
|
var e;
|
|
5135
|
-
typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches) ||
|
|
5135
|
+
typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches) || Pn(t);
|
|
5136
5136
|
}
|
|
5137
|
-
function
|
|
5137
|
+
function Pn(t) {
|
|
5138
5138
|
var s, a, o, l;
|
|
5139
5139
|
if (typeof document > "u") return;
|
|
5140
5140
|
const e = document, n = qr ?? document.documentElement, r = e.fullscreenElement ?? e.webkitFullscreenElement;
|
|
@@ -5145,8 +5145,8 @@ function $n(t) {
|
|
|
5145
5145
|
} catch {
|
|
5146
5146
|
}
|
|
5147
5147
|
}
|
|
5148
|
-
function
|
|
5149
|
-
const [e, n] =
|
|
5148
|
+
function Uu(t) {
|
|
5149
|
+
const [e, n] = z(() => {
|
|
5150
5150
|
var r;
|
|
5151
5151
|
return typeof window < "u" && !!((r = window.matchMedia) != null && r.call(window, t).matches);
|
|
5152
5152
|
});
|
|
@@ -5158,8 +5158,8 @@ function Yu(t) {
|
|
|
5158
5158
|
return s(), r.addEventListener("change", s), () => r.removeEventListener("change", s);
|
|
5159
5159
|
}, [t]), e;
|
|
5160
5160
|
}
|
|
5161
|
-
function
|
|
5162
|
-
const [r, s] =
|
|
5161
|
+
function Qn({ pos: t, interactive: e, axis: n = "x" }) {
|
|
5162
|
+
const [r, s] = z(null), a = (c) => {
|
|
5163
5163
|
const u = c.currentTarget.getBoundingClientRect(), d = n === "y" ? (c.clientY - u.top) / Math.max(1, u.height) : (c.clientX - u.left) / Math.max(1, u.width);
|
|
5164
5164
|
return Math.min(1, Math.max(0, d));
|
|
5165
5165
|
}, o = (c) => {
|
|
@@ -5197,8 +5197,8 @@ function Rn({ pos: t, interactive: e, axis: n = "x" }) {
|
|
|
5197
5197
|
/* @__PURE__ */ i("span", { className: "gfull__t gfull__end", style: { color: t.live ? "#ec634d" : "rgba(234,236,250,.6)" }, children: t.endLabel })
|
|
5198
5198
|
] });
|
|
5199
5199
|
}
|
|
5200
|
-
function
|
|
5201
|
-
const [e, n] =
|
|
5200
|
+
function Id({ pos: t }) {
|
|
5201
|
+
const [e, n] = z(null), r = (l) => {
|
|
5202
5202
|
const c = l.currentTarget.getBoundingClientRect();
|
|
5203
5203
|
return Math.min(1, Math.max(0, (l.clientX - c.left) / Math.max(1, c.width)));
|
|
5204
5204
|
}, s = (l) => {
|
|
@@ -5238,7 +5238,7 @@ function zd({ pos: t }) {
|
|
|
5238
5238
|
] })
|
|
5239
5239
|
] });
|
|
5240
5240
|
}
|
|
5241
|
-
function
|
|
5241
|
+
function Vn({ t, mini: e }) {
|
|
5242
5242
|
return /* @__PURE__ */ m("div", { className: "gfull__transport", children: [
|
|
5243
5243
|
/* @__PURE__ */ i("button", { type: "button", className: "gfull__step", "aria-label": "Previous line", title: "Previous line", style: { opacity: t.prevOn ? 1 : 0.3 }, onClick: t.onPrev, children: /* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) }),
|
|
5244
5244
|
/* @__PURE__ */ i(
|
|
@@ -5251,7 +5251,7 @@ function Pn({ t, mini: e }) {
|
|
|
5251
5251
|
disabled: !t.playable,
|
|
5252
5252
|
style: { background: t.playable ? t.playing ? "rgba(238,240,248,.92)" : "var(--brand)" : "rgba(5,6,21,.42)", color: t.playable ? t.playing ? "#131326" : "var(--brand-ink)" : "rgba(234,236,250,.5)", cursor: t.playable ? "pointer" : "default" },
|
|
5253
5253
|
onClick: t.onPlay,
|
|
5254
|
-
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(
|
|
5254
|
+
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(Lo, { size: e ? 14 : 18 }) : /* @__PURE__ */ i(xt, { size: e ? 15 : 19 })
|
|
5255
5255
|
}
|
|
5256
5256
|
),
|
|
5257
5257
|
/* @__PURE__ */ i("button", { type: "button", className: "gfull__step", "aria-label": "Next line", title: "Next line", style: { opacity: t.nextOn ? 1 : 0.3 }, onClick: t.onNext, children: /* @__PURE__ */ i(oe, { d: ee.chevronRight, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) })
|
|
@@ -5259,7 +5259,7 @@ function Pn({ t, mini: e }) {
|
|
|
5259
5259
|
}
|
|
5260
5260
|
function Rr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
5261
5261
|
return /* @__PURE__ */ m("div", { className: `gfull__brand${s ? " gfull__brand--mark" : ""}`, children: [
|
|
5262
|
-
/* @__PURE__ */ i("a", { href:
|
|
5262
|
+
/* @__PURE__ */ i("a", { href: Zi, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: s ? /* @__PURE__ */ i(Pr, { dark: !0, size: 22 }) : /* @__PURE__ */ i(Fn, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
|
|
5263
5263
|
t && /* @__PURE__ */ m("span", { className: "gfull__live", children: [
|
|
5264
5264
|
/* @__PURE__ */ i("i", {}),
|
|
5265
5265
|
"LIVE"
|
|
@@ -5267,35 +5267,35 @@ function Rr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
|
5267
5267
|
r != null && /* @__PURE__ */ i("span", { className: "gfull__txpct", title: "Still being transcribed: it plays as far as it is written", children: `TRANSCRIBING ${r}%` })
|
|
5268
5268
|
] });
|
|
5269
5269
|
}
|
|
5270
|
-
function
|
|
5270
|
+
function Ia({ v: t, size: e }) {
|
|
5271
5271
|
return /* @__PURE__ */ m("button", { type: "button", className: "gfull__btn", "aria-label": "Voices", "aria-busy": t.busy || void 0, title: t.busy ? "Preparing the voice…" : t.title, disabled: !t.on, style: { position: "relative", opacity: t.on || t.busy ? 1 : 0.45, cursor: t.on ? "pointer" : "default" }, onClick: t.on ? t.onClick : void 0, children: [
|
|
5272
5272
|
/* @__PURE__ */ i(oe, { d: ee.headphones, size: e, sw: 1.6 }),
|
|
5273
5273
|
t.busy && /* @__PURE__ */ i("span", { "aria-hidden": "true", style: { position: "absolute", inset: 0, boxSizing: "border-box", borderRadius: "50%", border: "2px solid var(--fill-12)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite", pointerEvents: "none" } })
|
|
5274
5274
|
] });
|
|
5275
5275
|
}
|
|
5276
|
-
function
|
|
5276
|
+
function $u({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: a, copied: o }) {
|
|
5277
5277
|
return /* @__PURE__ */ m("div", { className: "gmini", "data-theme": "dark", children: [
|
|
5278
5278
|
/* @__PURE__ */ i("div", { className: "gmini__shade", "aria-hidden": "true" }),
|
|
5279
5279
|
/* @__PURE__ */ i("div", { className: "gmini__top", children: /* @__PURE__ */ i(Rr, { live: t.live, mini: !0 }) }),
|
|
5280
5280
|
/* @__PURE__ */ m("div", { className: "gmini__foot", children: [
|
|
5281
|
-
/* @__PURE__ */ i("div", { className: "gmini__row", children: /* @__PURE__ */ i(
|
|
5281
|
+
/* @__PURE__ */ i("div", { className: "gmini__row", children: /* @__PURE__ */ i(Qn, { pos: t, interactive: !0 }) }),
|
|
5282
5282
|
/* @__PURE__ */ m("div", { className: "gmini__row gmini__row--ctl", children: [
|
|
5283
|
-
/* @__PURE__ */ i(
|
|
5283
|
+
/* @__PURE__ */ i(Vn, { t: e, mini: !0 }),
|
|
5284
5284
|
/* @__PURE__ */ i("span", { style: { flex: 1 } }),
|
|
5285
5285
|
/* @__PURE__ */ i("div", { className: "gfull__chip", children: n }),
|
|
5286
|
-
/* @__PURE__ */ i(
|
|
5286
|
+
/* @__PURE__ */ i(Ia, { v: r, size: 14 }),
|
|
5287
5287
|
s && /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Share", title: "Share", onClick: (l) => {
|
|
5288
5288
|
l.stopPropagation(), s();
|
|
5289
5289
|
}, children: /* @__PURE__ */ i(oe, { d: ee.share, size: 13, sw: 1.8 }) }),
|
|
5290
|
-
/* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(oe, { d:
|
|
5290
|
+
/* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(oe, { d: za, size: 14, sw: 1.8 }) })
|
|
5291
5291
|
] })
|
|
5292
5292
|
] }),
|
|
5293
5293
|
o
|
|
5294
5294
|
] });
|
|
5295
5295
|
}
|
|
5296
|
-
const
|
|
5297
|
-
function
|
|
5298
|
-
const [W, E] =
|
|
5296
|
+
const Ru = { color: "rgba(255,255,255,.4)" };
|
|
5297
|
+
function ba({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title: s, desk: a, pos: o, sub: l, wait: c, pct: u, mute: d, cc: h, ad: M, chip: g, transport: f, picker: y, sheet: T, voices: N, voicesBtn: p, sheetOpen: b, onShare: S, onSettings: A, paused: P, copied: O, onTouch: V, onClose: I }) {
|
|
5298
|
+
const [W, E] = z(() => !!zr());
|
|
5299
5299
|
x(() => {
|
|
5300
5300
|
const Q = () => E(!!zr());
|
|
5301
5301
|
return document.addEventListener("fullscreenchange", Q), document.addEventListener("webkitfullscreenchange", Q), () => {
|
|
@@ -5306,8 +5306,8 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5306
5306
|
k.current = I;
|
|
5307
5307
|
const Y = w(f.playable ? f.onPlay : void 0);
|
|
5308
5308
|
Y.current = f.playable ? f.onPlay : void 0;
|
|
5309
|
-
const [C, te] =
|
|
5310
|
-
x(() => () =>
|
|
5309
|
+
const [C, te] = z(!1), [J, L] = z(0), ie = w(!1);
|
|
5310
|
+
x(() => () => Pn(!1), []), x(() => {
|
|
5311
5311
|
if (!n) return;
|
|
5312
5312
|
const Q = [document.documentElement, document.body], fe = Q.map((ge) => ge.style.background);
|
|
5313
5313
|
Q.forEach((ge) => {
|
|
@@ -5320,7 +5320,7 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5320
5320
|
}), de && ae && (de.content = ae);
|
|
5321
5321
|
};
|
|
5322
5322
|
}, []);
|
|
5323
|
-
const ne = ze(() => n &&
|
|
5323
|
+
const ne = ze(() => n && Yu(), [n]), [G, X] = z(ne);
|
|
5324
5324
|
x(() => {
|
|
5325
5325
|
if (!n) return;
|
|
5326
5326
|
const Q = [document.documentElement, document.body], fe = Q.map((ge) => [ge.style.overflow, ge.style.overscrollBehavior]);
|
|
@@ -5343,7 +5343,7 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5343
5343
|
me.current = b, x(() => {
|
|
5344
5344
|
const Q = (ae) => ae instanceof HTMLElement && (ae.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(ae.tagName)), fe = (ae) => {
|
|
5345
5345
|
var ge;
|
|
5346
|
-
ae.key === "Escape" && !me.current && k.current && (ae.stopPropagation(), k.current()), ae.key === " " && !me.current && !Q(ae.target) && (ae.preventDefault(), ae.stopPropagation(), ae.repeat || (ge = Y.current) == null || ge.call(Y)), (ae.key === "f" || ae.key === "F") && !ae.metaKey && !ae.ctrlKey && !ae.altKey && !me.current && !Q(ae.target) &&
|
|
5346
|
+
ae.key === "Escape" && !me.current && k.current && (ae.stopPropagation(), k.current()), ae.key === " " && !me.current && !Q(ae.target) && (ae.preventDefault(), ae.stopPropagation(), ae.repeat || (ge = Y.current) == null || ge.call(Y)), (ae.key === "f" || ae.key === "F") && !ae.metaKey && !ae.ctrlKey && !ae.altKey && !me.current && !Q(ae.target) && Pi() && (ae.preventDefault(), ae.repeat || Pn(!zr()));
|
|
5347
5347
|
}, de = (ae) => {
|
|
5348
5348
|
ae.key === " " && !me.current && !Q(ae.target) && ae.preventDefault();
|
|
5349
5349
|
};
|
|
@@ -5351,7 +5351,7 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5351
5351
|
window.removeEventListener("keydown", fe, !0), window.removeEventListener("keyup", de, !0);
|
|
5352
5352
|
};
|
|
5353
5353
|
}, []);
|
|
5354
|
-
const le =
|
|
5354
|
+
const le = Uu("(orientation: landscape) and (max-height: 540px)"), Te = w(null), [je, Se] = z(null);
|
|
5355
5355
|
tn(() => {
|
|
5356
5356
|
const Q = Te.current;
|
|
5357
5357
|
if (!Q || (Se(Q.getBoundingClientRect().width), typeof ResizeObserver > "u")) return;
|
|
@@ -5382,9 +5382,9 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5382
5382
|
const U = (he) => Math.round((he.getBoundingClientRect().top - Q.getBoundingClientRect().top + Q.scrollTop) / ae), $ = Math.max(1, Math.round(Q.clientHeight / ae)), K = fe ? de.length ? Math.floor(U(de[de.length - 1]) / $) * $ * ae : 0 : Ye, se = Math.max(0, Math.min(Ye, K));
|
|
5383
5383
|
Math.abs(se - Q.scrollTop) > 1 && (Q.scrollTop = se);
|
|
5384
5384
|
}, [D, F]);
|
|
5385
|
-
const [H, ce] =
|
|
5385
|
+
const [H, ce] = z(!0), [Z, Ne] = z(!1), q = w(void 0);
|
|
5386
5386
|
x(() => () => window.clearTimeout(q.current), []);
|
|
5387
|
-
const Le = P != null && P.share ? P.share.url(H && P.share.at >= 1 ? Math.floor(P.share.at) : null) : "", Ie = ze(() => ve && Le && !f.playing ?
|
|
5387
|
+
const Le = P != null && P.share ? P.share.url(H && P.share.at >= 1 ? Math.floor(P.share.at) : null) : "", Ie = ze(() => ve && Le && !f.playing ? Eu(Le) : "", [ve, Le, f.playing]), Fe = () => {
|
|
5388
5388
|
var Q;
|
|
5389
5389
|
(Q = navigator.clipboard) == null || Q.writeText(Le).then(() => {
|
|
5390
5390
|
Ne(!0), window.clearTimeout(q.current), q.current = window.setTimeout(() => Ne(!1), 1800);
|
|
@@ -5412,9 +5412,9 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5412
5412
|
] })
|
|
5413
5413
|
] })
|
|
5414
5414
|
] }), ue = (Q, fe, de, ae, ge, Ye = 0) => /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", title: Q, "aria-label": Q, onClick: ae, children: /* @__PURE__ */ i(oe, { d: fe, size: (ve ? 20 : Ee ? 15 : 18) + Ye, sw: de, style: ge }) }), _e = /* @__PURE__ */ m("div", { className: "gfull__acts", children: [
|
|
5415
|
-
p && /* @__PURE__ */ i(
|
|
5415
|
+
p && /* @__PURE__ */ i(Ia, { v: p, size: ve ? 20 : Ee ? 15 : 18 }),
|
|
5416
5416
|
S && ue("Share", ee.share, 1.6, S),
|
|
5417
|
-
|
|
5417
|
+
Pi() && !e && ue(W ? "Exit full screen" : "Full screen", W ? _u : za, 1.7, () => Pn(!W)),
|
|
5418
5418
|
I && ue("Close player", ee.close, 1.7, I)
|
|
5419
5419
|
] }), Ve = (d || h || A) && /* @__PURE__ */ m("div", { className: "gfull__top", children: [
|
|
5420
5420
|
d && ue(d.muted ? "Unmute" : "Mute", d.muted ? ee.volumeOff : ee.volume, 1.6, d.onToggle),
|
|
@@ -5479,7 +5479,7 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5479
5479
|
] }),
|
|
5480
5480
|
" "
|
|
5481
5481
|
] }),
|
|
5482
|
-
l.words.map((Q, fe) => /* @__PURE__ */ m("span", { "data-said": Q.dim ? void 0 : "", "data-at": l.cursor != null && fe <= l.cursor ? "" : void 0, style: Q.dim ?
|
|
5482
|
+
l.words.map((Q, fe) => /* @__PURE__ */ m("span", { "data-said": Q.dim ? void 0 : "", "data-at": l.cursor != null && fe <= l.cursor ? "" : void 0, style: Q.dim ? Ru : void 0, children: [
|
|
5483
5483
|
Q.t,
|
|
5484
5484
|
Q.sp
|
|
5485
5485
|
] }, fe))
|
|
@@ -5487,22 +5487,22 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5487
5487
|
] }) }),
|
|
5488
5488
|
/* @__PURE__ */ i("div", { className: `gfull__prog${ve ? "" : " gfull__prog--two"}`, children: ve ? /* @__PURE__ */ m(xe, { children: [
|
|
5489
5489
|
/* @__PURE__ */ i(Rr, { live: o.live, desk: !0, pct: u }),
|
|
5490
|
-
/* @__PURE__ */ i(
|
|
5491
|
-
/* @__PURE__ */ i(
|
|
5490
|
+
/* @__PURE__ */ i(Vn, { t: f }),
|
|
5491
|
+
/* @__PURE__ */ i(Qn, { pos: o, interactive: !0 }),
|
|
5492
5492
|
/* @__PURE__ */ i("div", { className: "gfull__chip", children: g }),
|
|
5493
5493
|
_e
|
|
5494
5494
|
] }) : Ee ? /* @__PURE__ */ m("div", { className: "gfull__row", children: [
|
|
5495
|
-
/* @__PURE__ */ i(
|
|
5496
|
-
/* @__PURE__ */ i(
|
|
5495
|
+
/* @__PURE__ */ i(Vn, { t: f, mini: !0 }),
|
|
5496
|
+
/* @__PURE__ */ i(Qn, { pos: o, interactive: !0 }),
|
|
5497
5497
|
/* @__PURE__ */ i("div", { className: "gfull__chip", children: g }),
|
|
5498
5498
|
_e
|
|
5499
5499
|
] }) : /* @__PURE__ */ m(xe, { children: [
|
|
5500
5500
|
/* @__PURE__ */ m("div", { className: "gfull__row", children: [
|
|
5501
5501
|
/* @__PURE__ */ i(Rr, { live: o.live, pct: u, mark: !0 }),
|
|
5502
|
-
/* @__PURE__ */ i(
|
|
5502
|
+
/* @__PURE__ */ i(Qn, { pos: o, interactive: !0 })
|
|
5503
5503
|
] }),
|
|
5504
5504
|
/* @__PURE__ */ m("div", { className: "gfull__row", children: [
|
|
5505
|
-
/* @__PURE__ */ i(
|
|
5505
|
+
/* @__PURE__ */ i(Vn, { t: f }),
|
|
5506
5506
|
/* @__PURE__ */ i("span", { style: { flex: 1 } }),
|
|
5507
5507
|
/* @__PURE__ */ i("div", { className: "gfull__chip", children: g }),
|
|
5508
5508
|
_e
|
|
@@ -5516,31 +5516,31 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5516
5516
|
}
|
|
5517
5517
|
);
|
|
5518
5518
|
}
|
|
5519
|
-
function
|
|
5519
|
+
function Pu({ dark: t, back: e, home: n, live: r, title: s, badge: a, subline: o, onOptions: l, optionsActive: c }) {
|
|
5520
5520
|
return /* @__PURE__ */ m("div", { className: "ghead", children: [
|
|
5521
5521
|
e && /* @__PURE__ */ i("button", { type: "button", className: "ghead__back", "aria-label": "Back", title: "Back", onClick: e, children: /* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: 19, sw: 1.7 }) }),
|
|
5522
5522
|
r && /* @__PURE__ */ i("span", { className: "mark", children: /* @__PURE__ */ i(Pr, { dark: t, size: 30 }) }),
|
|
5523
|
-
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0, display: "flex" }, children: n ? /* @__PURE__ */ i("div", { className: "ghead__logo", children: /* @__PURE__ */ i(
|
|
5523
|
+
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0, display: "flex" }, children: n ? /* @__PURE__ */ i("div", { className: "ghead__logo", children: /* @__PURE__ */ i(Fn, { dark: t, height: 22 }) }) : /* @__PURE__ */ m("div", { className: "ghead__title", onClick: e, title: e ? "Back" : void 0, style: { cursor: e ? "pointer" : "default" }, children: [
|
|
5524
5524
|
/* @__PURE__ */ m("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
5525
5525
|
/* @__PURE__ */ i("span", { className: "ghead__name", children: s }),
|
|
5526
5526
|
a
|
|
5527
5527
|
] }),
|
|
5528
5528
|
o && /* @__PURE__ */ i("div", { className: "ghead__sub", children: o })
|
|
5529
5529
|
] }) }),
|
|
5530
|
-
/* @__PURE__ */ i(
|
|
5530
|
+
/* @__PURE__ */ i(jo, { size: "sm", bordered: !1, variant: c ? "primary" : void 0, onClick: l, label: "Options", children: /* @__PURE__ */ m("svg", { viewBox: "0 0 24 24", width: "19", height: "19", fill: "currentColor", "aria-hidden": "true", children: [
|
|
5531
5531
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "5.5", r: "1.85" }),
|
|
5532
5532
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "12", r: "1.85" }),
|
|
5533
5533
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "18.5", r: "1.85" })
|
|
5534
5534
|
] }) })
|
|
5535
5535
|
] });
|
|
5536
5536
|
}
|
|
5537
|
-
const
|
|
5538
|
-
function
|
|
5537
|
+
const Qu = "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", Vu = (t, e = !1) => [{ value: "read", label: t.read, icon: /* @__PURE__ */ i(oe, { d: ee.book, size: 17 }) }, { value: "listen", label: /* @__PURE__ */ i("span", { style: { display: "inline-block", minWidth: 52, textAlign: "center" }, children: e ? t.watch : t.listen }), icon: /* @__PURE__ */ i(oe, { d: e ? Qu : ee.headphones, size: 19, sw: 1.5 }) }], Kr = "https://app.vocalstack.com", Bu = "/connect/transcribe";
|
|
5538
|
+
function Hu() {
|
|
5539
5539
|
const t = new Uint8Array(24);
|
|
5540
5540
|
return crypto.getRandomValues(t), btoa(String.fromCharCode(...t)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
5541
5541
|
}
|
|
5542
|
-
function
|
|
5543
|
-
const r = new URL(t ?? Kr), s =
|
|
5542
|
+
function Oa(t, e, n) {
|
|
5543
|
+
const r = new URL(t ?? Kr), s = Hu(), a = new URL(Bu, r);
|
|
5544
5544
|
e.url && a.searchParams.set("url", e.url), e.transcription && a.searchParams.set("transcription", e.transcription), e.ask && a.searchParams.set("ask", "1"), e.connect && a.searchParams.set("connect", "1"), a.searchParams.set("origin", window.location.origin), a.searchParams.set("nonce", s);
|
|
5545
5545
|
const o = 480, l = 640, c = Math.max(0, (window.screenX ?? 0) + ((window.outerWidth ?? o) - o) / 2), u = Math.max(0, (window.screenY ?? 0) + ((window.outerHeight ?? l) - l) / 2), d = window.open(a.toString(), "vocalstack-connect", `popup=yes,width=${o},height=${l},left=${Math.round(c)},top=${Math.round(u)}`);
|
|
5546
5546
|
return d ? new Promise((h, M) => {
|
|
@@ -5580,45 +5580,45 @@ function ba(t, e, n) {
|
|
|
5580
5580
|
}, 500);
|
|
5581
5581
|
}) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
|
|
5582
5582
|
}
|
|
5583
|
-
async function
|
|
5584
|
-
const r = await
|
|
5583
|
+
async function Wu(t, e, n) {
|
|
5584
|
+
const r = await Oa(t, { url: e }, n);
|
|
5585
5585
|
return r === "connected" ? null : r;
|
|
5586
5586
|
}
|
|
5587
|
-
const
|
|
5588
|
-
function
|
|
5587
|
+
const xa = "vsp.connected";
|
|
5588
|
+
function Fu(t) {
|
|
5589
5589
|
try {
|
|
5590
|
-
return localStorage.getItem(
|
|
5590
|
+
return localStorage.getItem(xa) === new URL(t ?? Kr).origin;
|
|
5591
5591
|
} catch {
|
|
5592
5592
|
return !1;
|
|
5593
5593
|
}
|
|
5594
5594
|
}
|
|
5595
|
-
function
|
|
5595
|
+
function Zu(t) {
|
|
5596
5596
|
try {
|
|
5597
|
-
localStorage.setItem(
|
|
5597
|
+
localStorage.setItem(xa, new URL(t ?? Kr).origin);
|
|
5598
5598
|
} catch {
|
|
5599
5599
|
}
|
|
5600
5600
|
}
|
|
5601
|
-
const
|
|
5601
|
+
const Gu = {
|
|
5602
5602
|
"signing-in": "Sign in to VocalStack in the window that opened…",
|
|
5603
5603
|
consent: "Confirm in the VocalStack window…",
|
|
5604
5604
|
looking: "Looking for your transcription of this video…",
|
|
5605
5605
|
confirm: "Confirm in the VocalStack window…",
|
|
5606
5606
|
checking: "Checking the link…",
|
|
5607
5607
|
starting: "Starting the transcription…"
|
|
5608
|
-
},
|
|
5609
|
-
function
|
|
5610
|
-
const [s, a] =
|
|
5608
|
+
}, qu = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
5609
|
+
function Ku({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
5610
|
+
const [s, a] = z(""), [o, l] = z(!1), [c, u] = z(null), [d, h] = z(null);
|
|
5611
5611
|
x(() => {
|
|
5612
5612
|
const y = (T) => {
|
|
5613
5613
|
T.key === "Escape" && r();
|
|
5614
5614
|
};
|
|
5615
5615
|
return window.addEventListener("keydown", y), () => window.removeEventListener("keydown", y);
|
|
5616
5616
|
}, [r]);
|
|
5617
|
-
const M = s.trim(), g =
|
|
5617
|
+
const M = s.trim(), g = qu.test(M), f = async () => {
|
|
5618
5618
|
if (!(!g || o)) {
|
|
5619
5619
|
l(!0), u(null);
|
|
5620
5620
|
try {
|
|
5621
|
-
const y = await
|
|
5621
|
+
const y = await Wu(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`, h);
|
|
5622
5622
|
y && e(y);
|
|
5623
5623
|
} catch (y) {
|
|
5624
5624
|
u(y instanceof Error ? y.message : "Something went wrong. Please try again.");
|
|
@@ -5631,7 +5631,7 @@ function qu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
5631
5631
|
y.stopPropagation(), y.target === y.currentTarget && r();
|
|
5632
5632
|
}, children: /* @__PURE__ */ m("div", { className: "vsp-end__card", children: [
|
|
5633
5633
|
/* @__PURE__ */ i("button", { type: "button", className: "vsp-end__close", "aria-label": "Close", title: "Close", onClick: r, children: /* @__PURE__ */ i(oe, { d: ee.close, size: 16, sw: 1.8 }) }),
|
|
5634
|
-
/* @__PURE__ */ i("div", { className: "vsp-end__brand", children: /* @__PURE__ */ i(
|
|
5634
|
+
/* @__PURE__ */ i("div", { className: "vsp-end__brand", children: /* @__PURE__ */ i(Fn, { dark: !0, link: !1, height: 16 }) }),
|
|
5635
5635
|
/* @__PURE__ */ i("div", { className: "vsp-end__title", children: t.title ?? "Transcribe and translate any video" }),
|
|
5636
5636
|
/* @__PURE__ */ i("div", { className: "vsp-end__note", children: t.note ?? "Paste a link from YouTube, Vimeo or any page with a video. It plays right here with subtitles and spoken translations." }),
|
|
5637
5637
|
/* @__PURE__ */ m("form", { className: "vsp-end__row", onSubmit: (y) => {
|
|
@@ -5642,7 +5642,7 @@ function qu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
5642
5642
|
}, "aria-label": "Video link" }),
|
|
5643
5643
|
/* @__PURE__ */ i("button", { type: "submit", className: "vsp-end__go", disabled: !g || o, children: o ? /* @__PURE__ */ i(Mt, { size: 15, color: "#050507", track: "rgba(5,5,7,.2)" }) : "Transcribe" })
|
|
5644
5644
|
] }),
|
|
5645
|
-
o && /* @__PURE__ */ i("div", { className: "vsp-end__note", role: "status", children:
|
|
5645
|
+
o && /* @__PURE__ */ i("div", { className: "vsp-end__note", role: "status", children: Gu[d ?? "checking"] }),
|
|
5646
5646
|
c && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: c }),
|
|
5647
5647
|
/* @__PURE__ */ m("div", { className: "vsp-end__foot", children: [
|
|
5648
5648
|
/* @__PURE__ */ i("span", { children: "Uses your VocalStack account. You'll be asked to sign in if you're not." }),
|
|
@@ -5653,17 +5653,17 @@ function qu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
5653
5653
|
] })
|
|
5654
5654
|
] }) });
|
|
5655
5655
|
}
|
|
5656
|
-
function
|
|
5657
|
-
const [e, n] =
|
|
5656
|
+
function Ca(t) {
|
|
5657
|
+
const [e, n] = z(() => typeof window > "u" ? !0 : window.innerWidth >= 880);
|
|
5658
5658
|
return x(() => {
|
|
5659
5659
|
if (t != null) return;
|
|
5660
5660
|
const r = () => n(window.innerWidth >= 880);
|
|
5661
5661
|
return window.addEventListener("resize", r), () => window.removeEventListener("resize", r);
|
|
5662
5662
|
}, [t]), t ?? e;
|
|
5663
5663
|
}
|
|
5664
|
-
const
|
|
5665
|
-
function
|
|
5666
|
-
const n =
|
|
5664
|
+
const Ju = { lang: null, subtitles: !0, speakerLabels: !1, wordHighlight: !0, translateAudio: !0, voices: "cloned", removeBackground: !1, muted: !1 };
|
|
5665
|
+
function Xu(t, e) {
|
|
5666
|
+
const n = Ma(), [r, s] = ra(), [a, o] = z(null), [l, c] = z("main"), u = Yr(n, t.lang), d = ze(() => sa(n, "translation"), [n]), h = (O) => {
|
|
5667
5667
|
e({ lang: O }), s(O);
|
|
5668
5668
|
}, M = Vr({ open: a === "lang" || a === "settings" && l === "lang", onClose: () => a === "lang" ? o(null) : c("main"), value: t.lang, onSelect: h, languages: d, none: "As spoken", pinned: t.lang ? [t.lang] : [], recent: r, keepOpen: !0 }), g = () => {
|
|
5669
5669
|
o(null), c("main");
|
|
@@ -5691,7 +5691,7 @@ function Ju(t, e) {
|
|
|
5691
5691
|
] }) : l === "audio" ? /* @__PURE__ */ m("div", { style: p, children: [
|
|
5692
5692
|
b("Translate audio", t.lang ? "Hear the translation read aloud instead of the original speech" : "Pick a language to hear the translation read aloud", /* @__PURE__ */ i(Lt, { checked: t.translateAudio && !!t.lang, onChange: (O) => e({ translateAudio: O }), label: "Translate audio", disabled: !t.lang })),
|
|
5693
5693
|
b("Voices", t.voices === "cloned" ? "Each speaker in their own cloned voice, where they agreed to it" : "Synthetic voices matched to each speaker", /* @__PURE__ */ i(br, { value: t.voices, onChange: (O) => e({ voices: O }), size: "sm", options: [{ value: "synthetic", label: "Synthetic" }, { value: "cloned", label: "Cloned" }] })),
|
|
5694
|
-
b(
|
|
5694
|
+
b(Hn, "Takes out everything that isn't speech: music, ambience and noise.", /* @__PURE__ */ i(Lt, { checked: t.removeBackground, onChange: (O) => e({ removeBackground: O }), label: Hn }))
|
|
5695
5695
|
] }) : /* @__PURE__ */ m("div", { style: p, children: [
|
|
5696
5696
|
/* @__PURE__ */ m("div", { className: "srow srow--tap", role: "button", onClick: () => c("lang"), children: [
|
|
5697
5697
|
/* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -5730,7 +5730,7 @@ function Ju(t, e) {
|
|
|
5730
5730
|
}
|
|
5731
5731
|
};
|
|
5732
5732
|
}
|
|
5733
|
-
function
|
|
5733
|
+
function Qi(t) {
|
|
5734
5734
|
const e = t.trim();
|
|
5735
5735
|
if (!e) return null;
|
|
5736
5736
|
try {
|
|
@@ -5744,7 +5744,7 @@ const kt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "curren
|
|
|
5744
5744
|
/* @__PURE__ */ i("path", { d: "M6.5 2.75h7.25l4.75 4.75v12.25a1.5 1.5 0 0 1-1.5 1.5H6.5a1.5 1.5 0 0 1-1.5-1.5V4.25a1.5 1.5 0 0 1 1.5-1.5Z", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round" }),
|
|
5745
5745
|
/* @__PURE__ */ i("path", { d: "M13.75 2.75V7.5h4.75", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round" }),
|
|
5746
5746
|
/* @__PURE__ */ i("text", { x: "11.75", y: "17.4", textAnchor: "middle", fontSize: t.length > 3 ? 4.4 : 5.2, fontWeight: "800", fill: "currentColor", fontFamily: "inherit", letterSpacing: ".2", children: t })
|
|
5747
|
-
] }),
|
|
5747
|
+
] }), Vi = [
|
|
5748
5748
|
{ name: "YouTube", tint: "#ff3b30", glyph: kt("M21.6 7.2a2.7 2.7 0 0 0-1.9-1.9C18 4.8 12 4.8 12 4.8s-6 0-7.7.5a2.7 2.7 0 0 0-1.9 1.9C2 8.9 2 12 2 12s0 3.1.4 4.8a2.7 2.7 0 0 0 1.9 1.9c1.7.5 7.7.5 7.7.5s6 0 7.7-.5a2.7 2.7 0 0 0 1.9-1.9c.4-1.7.4-4.8.4-4.8s0-3.1-.4-4.8ZM10 15.1V8.9l5.3 3.1L10 15.1Z", "evenodd") },
|
|
5749
5749
|
{ name: "MP3", tint: "#f78472", glyph: Ht("MP3") },
|
|
5750
5750
|
{ name: "Vimeo", tint: "#1ab7ea", glyph: kt("M22 7.4c-.1 2-1.5 4.7-4.2 8.1-2.8 3.6-5.1 5.4-7 5.4-1.2 0-2.2-1.1-3-3.3L6.2 11.6C5.6 9.4 5 8.3 4.3 8.3c-.1 0-.6.3-1.4.9L2 8l2.7-2.4C5.9 4.6 6.8 4 7.4 4c1.4-.1 2.3.9 2.6 2.9.4 2.2.6 3.6.8 4.1.4 1.8.9 2.7 1.4 2.7.4 0 1-.6 1.8-1.9.8-1.2 1.2-2.2 1.3-2.8.1-1.1-.3-1.6-1.3-1.6-.5 0-.9.1-1.4.3.9-3 2.7-4.5 5.3-4.4 1.9.1 2.8 1.3 2.7 3.7Z") },
|
|
@@ -5790,20 +5790,20 @@ const kt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "curren
|
|
|
5790
5790
|
/* @__PURE__ */ i("circle", { cx: "8", cy: "12", r: "1.6", fill: "currentColor", stroke: "none" }),
|
|
5791
5791
|
/* @__PURE__ */ i("path", { d: "M11.5 10h6M11.5 14h4" })
|
|
5792
5792
|
] }) }
|
|
5793
|
-
],
|
|
5794
|
-
function
|
|
5795
|
-
const e =
|
|
5796
|
-
for (let r = 0; r < 11; r++) n.push(
|
|
5793
|
+
], ed = 14, td = 4;
|
|
5794
|
+
function nd(t) {
|
|
5795
|
+
const e = Vi.length, n = [];
|
|
5796
|
+
for (let r = 0; r < 11; r++) n.push(Vi[(r + t * 7) % e]);
|
|
5797
5797
|
return n;
|
|
5798
5798
|
}
|
|
5799
|
-
function
|
|
5799
|
+
function rd({ t }) {
|
|
5800
5800
|
return /* @__PURE__ */ m("span", { className: "vsp-prov__tile", style: { "--tint": t.tint }, children: [
|
|
5801
5801
|
/* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: "100%", height: "100%", "aria-hidden": "true", children: t.glyph }),
|
|
5802
5802
|
/* @__PURE__ */ i("span", { className: "vsp-prov__name", children: t.name })
|
|
5803
5803
|
] });
|
|
5804
5804
|
}
|
|
5805
|
-
function
|
|
5806
|
-
const t = w(null), [e, n] =
|
|
5805
|
+
function sd() {
|
|
5806
|
+
const t = w(null), [e, n] = z(!0), [r, s] = z(() => typeof document > "u" || !document.hidden);
|
|
5807
5807
|
return x(() => {
|
|
5808
5808
|
const a = () => s(!document.hidden);
|
|
5809
5809
|
document.addEventListener("visibilitychange", a);
|
|
@@ -5812,19 +5812,19 @@ function rd() {
|
|
|
5812
5812
|
return o && typeof IntersectionObserver < "u" && (l = new IntersectionObserver(([c]) => n(c.isIntersecting)), l.observe(o)), () => {
|
|
5813
5813
|
document.removeEventListener("visibilitychange", a), l == null || l.disconnect();
|
|
5814
5814
|
};
|
|
5815
|
-
}, []), /* @__PURE__ */ i("div", { ref: t, className: `vsp-prov${e && r ? "" : " vsp-prov--still"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("div", { className: "vsp-prov__plane", children: Array.from({ length:
|
|
5816
|
-
const l =
|
|
5817
|
-
return /* @__PURE__ */ i("div", { className: `vsp-prov__row${o % 2 ? " vsp-prov__row--rev" : ""}`, style: { animationDuration: `${80 + o * 11}s`, animationDelay: `-${o * 17}s` }, children: Array.from({ length:
|
|
5815
|
+
}, []), /* @__PURE__ */ i("div", { ref: t, className: `vsp-prov${e && r ? "" : " vsp-prov--still"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("div", { className: "vsp-prov__plane", children: Array.from({ length: ed }, (a, o) => {
|
|
5816
|
+
const l = nd(o);
|
|
5817
|
+
return /* @__PURE__ */ i("div", { className: `vsp-prov__row${o % 2 ? " vsp-prov__row--rev" : ""}`, style: { animationDuration: `${80 + o * 11}s`, animationDelay: `-${o * 17}s` }, children: Array.from({ length: td }, (c, u) => l.map((d, h) => /* @__PURE__ */ i(rd, { t: d }, `${u}-${h}`))) }, o);
|
|
5818
5818
|
}) }) });
|
|
5819
5819
|
}
|
|
5820
|
-
const
|
|
5820
|
+
const Sa = {
|
|
5821
5821
|
"signing-in": "Sign in to VocalStack in the window that opened…",
|
|
5822
5822
|
consent: "Confirm in the VocalStack window…",
|
|
5823
5823
|
looking: "Looking for your transcription of this video…",
|
|
5824
5824
|
confirm: "Confirm in the VocalStack window…",
|
|
5825
5825
|
checking: "Checking the link…",
|
|
5826
5826
|
starting: "Starting the transcription…"
|
|
5827
|
-
},
|
|
5827
|
+
}, id = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
5828
5828
|
function Ir(t) {
|
|
5829
5829
|
try {
|
|
5830
5830
|
return new URL(t).hostname.replace(/^www\./, "");
|
|
@@ -5832,39 +5832,39 @@ function Ir(t) {
|
|
|
5832
5832
|
return t;
|
|
5833
5833
|
}
|
|
5834
5834
|
}
|
|
5835
|
-
function
|
|
5836
|
-
const [n, r] =
|
|
5835
|
+
function ad(t, e) {
|
|
5836
|
+
const [n, r] = z(!1), [s, a] = z(null), [o, l] = z(null), [c, u] = z(() => Fu(t)), d = Je((g) => {
|
|
5837
5837
|
if (n) return;
|
|
5838
5838
|
r(!0), l(null);
|
|
5839
5839
|
let f;
|
|
5840
5840
|
try {
|
|
5841
|
-
f =
|
|
5841
|
+
f = Oa(t, g, a);
|
|
5842
5842
|
} catch (y) {
|
|
5843
5843
|
f = Promise.reject(y);
|
|
5844
5844
|
}
|
|
5845
5845
|
f.then((y) => {
|
|
5846
|
-
y && (
|
|
5846
|
+
y && (Zu(t), u(!0), y !== "connected" && e(y));
|
|
5847
5847
|
}).catch((y) => l(y instanceof Error ? y.message : "Something went wrong. Please try again.")).finally(() => {
|
|
5848
5848
|
r(!1), a(null);
|
|
5849
5849
|
});
|
|
5850
5850
|
}, [t, n, e]), h = Je(() => d({ connect: !0 }), [d]), M = Je((g, f) => d({ url: g, ask: f }), [d]);
|
|
5851
5851
|
return { busy: n, status: s, err: o, connected: c, connect: h, start: M };
|
|
5852
5852
|
}
|
|
5853
|
-
function
|
|
5853
|
+
function od(t) {
|
|
5854
5854
|
return /\.(mp4|webm|mov|m4v|ogv|mkv)(\?|#|$)/i.test(t);
|
|
5855
5855
|
}
|
|
5856
|
-
function
|
|
5856
|
+
function ld({ poster: t, src: e }) {
|
|
5857
5857
|
var s;
|
|
5858
|
-
const n = e && ((s = Zt(e)) == null ? void 0 : s.id) === "youtube" ?
|
|
5859
|
-
return r ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${r})` } }) : e &&
|
|
5858
|
+
const n = e && ((s = Zt(e)) == null ? void 0 : s.id) === "youtube" ? ya(e) : null, r = t ?? (n ? `https://i.ytimg.com/vi/${n}/hqdefault.jpg` : null);
|
|
5859
|
+
return r ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${r})` } }) : e && od(e) ? /* @__PURE__ */ i("video", { className: "vsp-idle__pic vsp-idle__frame", src: `${e}#t=1`, muted: !0, playsInline: !0, preload: "metadata", "aria-hidden": "true" }) : /* @__PURE__ */ m(xe, { children: [
|
|
5860
5860
|
/* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }),
|
|
5861
|
-
/* @__PURE__ */ i(
|
|
5861
|
+
/* @__PURE__ */ i(sd, {})
|
|
5862
5862
|
] });
|
|
5863
5863
|
}
|
|
5864
|
-
const
|
|
5864
|
+
const cd = { live: !1, atEdge: !1, edgeFrac: null, pct: 0, atLabel: "0:00", labelAt: () => "0:00", endLabel: "0:00", onSeek: () => {
|
|
5865
5865
|
} };
|
|
5866
5866
|
function Jr({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children: o }) {
|
|
5867
|
-
const l =
|
|
5867
|
+
const l = Xu(t.prefs, t.set), c = Ca(), u = w(null), [d, h] = z(!1);
|
|
5868
5868
|
tn(() => {
|
|
5869
5869
|
var T;
|
|
5870
5870
|
const g = (T = u.current) == null ? void 0 : T.parentElement;
|
|
@@ -5878,34 +5878,34 @@ function Jr({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children:
|
|
|
5878
5878
|
}, onNext: () => {
|
|
5879
5879
|
}, playing: !1, playable: !0, playTitle: "Connect to play", onPlay: a };
|
|
5880
5880
|
return /* @__PURE__ */ m("div", { ref: u, className: `vsp-idleroot${d ? " vsp-idleroot--small" : ""}`, children: [
|
|
5881
|
-
/* @__PURE__ */ i(
|
|
5881
|
+
/* @__PURE__ */ i(ba, { page: s, picture: /* @__PURE__ */ i(ld, { poster: e, src: n }), title: r, desk: c, pos: cd, sub: null, mute: { muted: t.prefs.muted, onToggle: () => t.set({ muted: !t.prefs.muted }) }, cc: { on: t.prefs.subtitles, onToggle: () => t.set({ subtitles: !t.prefs.subtitles }) }, chip: l.chip, transport: M, picker: l.sheets, sheet: null, voices: null, voicesBtn: null, sheetOpen: l.sheetOpen, onSettings: l.openSettings, onShare: () => Gr(t.shareUrl ?? window.location.href, r), copied: null, onTouch: () => {
|
|
5882
5882
|
} }),
|
|
5883
5883
|
!l.sheetOpen && /* @__PURE__ */ i("div", { className: "vsp-idle", "data-theme": "dark", children: /* @__PURE__ */ i("div", { className: "vsp-idle__box", children: o }) })
|
|
5884
5884
|
] });
|
|
5885
5885
|
}
|
|
5886
|
-
function
|
|
5886
|
+
function Da({ connect: t, onClick: e, label: n }) {
|
|
5887
5887
|
return /* @__PURE__ */ m(xe, { children: [
|
|
5888
5888
|
/* @__PURE__ */ m("button", { type: "button", className: "vsp-idle__connect", onClick: e, disabled: t.busy, children: [
|
|
5889
5889
|
t.busy ? /* @__PURE__ */ i(Mt, { size: 18, color: "#050507", track: "rgba(5,5,7,.2)" }) : /* @__PURE__ */ i(oe, { d: ee.link, size: 18, sw: 1.8 }),
|
|
5890
5890
|
/* @__PURE__ */ i("span", { children: t.busy ? "Waiting for VocalStack…" : n })
|
|
5891
5891
|
] }),
|
|
5892
|
-
t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children:
|
|
5892
|
+
t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: Sa[t.status ?? "checking"] }),
|
|
5893
5893
|
t.err && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: t.err })
|
|
5894
5894
|
] });
|
|
5895
5895
|
}
|
|
5896
|
-
function
|
|
5896
|
+
function ud({ idle: t, src: e, ask: n, connect: r, page: s, poster: a = null, onClear: o }) {
|
|
5897
5897
|
const l = () => r.start(e, n);
|
|
5898
5898
|
return /* @__PURE__ */ m(Jr, { idle: t, poster: a, src: e, title: Ir(e), page: s, onAct: l, children: [
|
|
5899
|
-
/* @__PURE__ */ i(
|
|
5899
|
+
/* @__PURE__ */ i(Da, { connect: r, onClick: l, label: r.connected ? "Play with VocalStack" : "Connect to VocalStack" }),
|
|
5900
5900
|
!r.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: r.connected ? `Plays ${Ir(e)} with subtitles and spoken translations.` : `Connect to play ${Ir(e)} with subtitles and spoken translations.` }),
|
|
5901
5901
|
o && !r.busy && /* @__PURE__ */ i("button", { type: "button", className: "vsp-idle__other", onClick: o, children: "Choose another video" })
|
|
5902
5902
|
] });
|
|
5903
5903
|
}
|
|
5904
|
-
function
|
|
5905
|
-
const [o, l] =
|
|
5904
|
+
function dd({ idle: t, connect: e, page: n, poster: r = null, onPick: s, onShare: a }) {
|
|
5905
|
+
const [o, l] = z(""), [c, u] = z(!1), [d, h] = z(null), M = w(null), g = w(null), f = o.trim(), y = (O) => id.test(O) || !!Qi(O), T = y(f), N = e.busy || c, p = async (O) => {
|
|
5906
5906
|
const V = /^https?:\/\//i.test(O) ? O : `https://${O}`;
|
|
5907
5907
|
h(null);
|
|
5908
|
-
const I =
|
|
5908
|
+
const I = Qi(V);
|
|
5909
5909
|
if (I && a) {
|
|
5910
5910
|
u(!0);
|
|
5911
5911
|
const W = await a(I).catch(() => !1);
|
|
@@ -5924,7 +5924,7 @@ function ud({ idle: t, connect: e, page: n, poster: r = null, onPick: s, onShare
|
|
|
5924
5924
|
}, A = (O) => {
|
|
5925
5925
|
const V = O.trim();
|
|
5926
5926
|
!y(V) || N || V === g.current || (g.current = V, p(V));
|
|
5927
|
-
}, P = e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children:
|
|
5927
|
+
}, P = e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: Sa[e.status ?? "checking"] }) : c ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: "Opening the shared transcript…" }) : /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: e.connected ? "Paste a VocalStack share link, or a YouTube, Vimeo, mp3 or any video link to play it here with subtitles and spoken translations." : "Paste a VocalStack share link to watch it here, or connect to transcribe any video link." });
|
|
5928
5928
|
return /* @__PURE__ */ m(Jr, { idle: t, poster: r, src: null, title: "VocalStack", page: n, onAct: S, children: [
|
|
5929
5929
|
/* @__PURE__ */ i("form", { className: "vsp-idle__form", onSubmit: (O) => {
|
|
5930
5930
|
O.preventDefault(), b();
|
|
@@ -5937,11 +5937,11 @@ function ud({ idle: t, connect: e, page: n, poster: r = null, onPick: s, onShare
|
|
|
5937
5937
|
N && /* @__PURE__ */ i(Mt, { size: 15, color: "#eef0f8", track: "rgba(255,255,255,.2)" })
|
|
5938
5938
|
] }) }),
|
|
5939
5939
|
P,
|
|
5940
|
-
!e.connected && !N && /* @__PURE__ */ i(
|
|
5940
|
+
!e.connected && !N && /* @__PURE__ */ i(Da, { connect: e, onClick: e.connect, label: "Connect to VocalStack" }),
|
|
5941
5941
|
(d || e.err) && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: d ?? e.err })
|
|
5942
5942
|
] });
|
|
5943
5943
|
}
|
|
5944
|
-
function
|
|
5944
|
+
function hd({ idle: t, message: e, onRetry: n, page: r }) {
|
|
5945
5945
|
return /* @__PURE__ */ m(Jr, { idle: t, poster: null, src: null, title: "VocalStack", page: r, onAct: n, children: [
|
|
5946
5946
|
/* @__PURE__ */ m("div", { className: "vsp-idle__err", role: "alert", children: [
|
|
5947
5947
|
/* @__PURE__ */ i(oe, { d: ee.warn, size: 16, sw: 1.8 }),
|
|
@@ -5953,8 +5953,8 @@ function dd({ idle: t, message: e, onRetry: n, page: r }) {
|
|
|
5953
5953
|
] })
|
|
5954
5954
|
] });
|
|
5955
5955
|
}
|
|
5956
|
-
function
|
|
5957
|
-
const [r, s] =
|
|
5956
|
+
function fd(t, e, n) {
|
|
5957
|
+
const [r, s] = z(t && e ? void 0 : null);
|
|
5958
5958
|
return x(() => {
|
|
5959
5959
|
if (!t) {
|
|
5960
5960
|
s(null);
|
|
@@ -5966,7 +5966,7 @@ function hd(t, e, n) {
|
|
|
5966
5966
|
}
|
|
5967
5967
|
let a = !0;
|
|
5968
5968
|
s(void 0);
|
|
5969
|
-
const o = new
|
|
5969
|
+
const o = new Fi({ baseUrl: (n ?? ha).replace(/\/$/, ""), token: async () => (typeof e == "function" ? await e() : e) || void 0 }), l = o.transcriptions.lookup;
|
|
5970
5970
|
if (!l) {
|
|
5971
5971
|
s(null);
|
|
5972
5972
|
return;
|
|
@@ -5980,24 +5980,24 @@ function hd(t, e, n) {
|
|
|
5980
5980
|
};
|
|
5981
5981
|
}, [t, e, n]), r;
|
|
5982
5982
|
}
|
|
5983
|
-
const
|
|
5984
|
-
function
|
|
5983
|
+
const Md = 100, Bi = (t) => t == null ? null : t ? "on" : "off";
|
|
5984
|
+
function gd(t) {
|
|
5985
5985
|
const e = t.syncUrl && typeof window < "u" ? new URLSearchParams(window.location.search) : null, n = { ...t.initial ?? {}, ...t.settings ?? {} }, r = (a) => a === "on" || a === "off" ? a : null, s = Number(e == null ? void 0 : e.get("t"));
|
|
5986
5986
|
return {
|
|
5987
5987
|
lang: (e == null ? void 0 : e.get("lang")) || n.lang || null,
|
|
5988
|
-
labels: r(e == null ? void 0 : e.get("labels")) ??
|
|
5989
|
-
words: r(e == null ? void 0 : e.get("words")) ??
|
|
5988
|
+
labels: r(e == null ? void 0 : e.get("labels")) ?? Bi(n.speakerLabels),
|
|
5989
|
+
words: r(e == null ? void 0 : e.get("words")) ?? Bi(n.wordHighlight),
|
|
5990
5990
|
cc: e != null && e.get("cc") ? e.get("cc") !== "off" : n.subtitles ?? !0,
|
|
5991
5991
|
translateAudio: e != null && e.get("audio") ? e.get("audio") !== "original" : n.translateAudio ?? !0,
|
|
5992
5992
|
clonedVoices: e != null && e.get("voices") ? e.get("voices") !== "stock" : (n.voices ?? "cloned") === "cloned",
|
|
5993
|
-
removeBackground: e && e.get("bg") ?
|
|
5993
|
+
removeBackground: e && e.get("bg") ? kl(e) : n.removeBackground ?? !1,
|
|
5994
5994
|
startAt: Number.isFinite(s) && s > 0 ? s : t.startAt ?? null
|
|
5995
5995
|
};
|
|
5996
5996
|
}
|
|
5997
|
-
const
|
|
5997
|
+
const bd = go(function(e, n) {
|
|
5998
5998
|
var J;
|
|
5999
5999
|
const r = w(null);
|
|
6000
|
-
|
|
6000
|
+
mo(n, () => ({
|
|
6001
6001
|
seek: (L) => {
|
|
6002
6002
|
var ie;
|
|
6003
6003
|
return (ie = r.current) == null ? void 0 : ie.seek(L);
|
|
@@ -6019,21 +6019,21 @@ const Id = Mo(function(e, n) {
|
|
|
6019
6019
|
return (L = r.current) == null ? void 0 : L.toggle();
|
|
6020
6020
|
}
|
|
6021
6021
|
}), []);
|
|
6022
|
-
const [s, a] =
|
|
6022
|
+
const [s, a] = z({ id: e.id ?? "", token: e.token });
|
|
6023
6023
|
x(() => {
|
|
6024
6024
|
a({ id: e.id ?? "", token: e.token });
|
|
6025
6025
|
}, [e.id, e.token, e.src]);
|
|
6026
|
-
const o =
|
|
6026
|
+
const o = fd(e.src ?? null, e.token ?? null, e.baseUrl ?? null);
|
|
6027
6027
|
x(() => {
|
|
6028
6028
|
o != null && o.id && a({ id: o.id, token: e.token });
|
|
6029
6029
|
}, [o == null ? void 0 : o.id]);
|
|
6030
|
-
const [l, c] =
|
|
6030
|
+
const [l, c] = z(null), [u, d] = z(() => ({ ...Ju, ...Object.fromEntries(Object.entries({ ...e.initial ?? {}, ...e.settings ?? {} }).filter(([, L]) => L !== void 0)) })), [h, M] = z({}), g = { prefs: u, set: (L) => {
|
|
6031
6031
|
d((ie) => ({ ...ie, ...L })), M((ie) => ({ ...ie, ...L }));
|
|
6032
6032
|
}, shareUrl: (J = e.shareUrl) == null ? void 0 : J.call(e, null) }, { muted: f, ...y } = h;
|
|
6033
6033
|
x(() => {
|
|
6034
6034
|
c(null);
|
|
6035
6035
|
}, [e.id, e.src]);
|
|
6036
|
-
const T = e.src ?? l, N = !s.id && !!T && (l != null || o !== void 0), p = !s.id && !e.src && !l, b =
|
|
6036
|
+
const T = e.src ?? l, N = !s.id && !!T && (l != null || o !== void 0), p = !s.id && !e.src && !l, b = fa({ id: s.id, token: s.token, baseUrl: e.baseUrl, listen: s.listen }), { source: S, gone: A, error: P, reload: O } = lc(b, s.id), V = cc(b, (S == null ? void 0 : S.recording.id) ?? null), I = ze(() => ac(b, V), [b, V]);
|
|
6037
6037
|
x(() => {
|
|
6038
6038
|
var L;
|
|
6039
6039
|
S && ((L = e.onSource) == null || L.call(e, S));
|
|
@@ -6041,29 +6041,29 @@ const Id = Mo(function(e, n) {
|
|
|
6041
6041
|
var L;
|
|
6042
6042
|
P && ((L = e.onError) == null || L.call(e, P));
|
|
6043
6043
|
}, [P]);
|
|
6044
|
-
const W =
|
|
6045
|
-
return x(() => (
|
|
6044
|
+
const W = Ca(e.desk), E = (e.layout ?? "embed") === "embed", k = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), Y = Je((L) => a({ id: L.transcriptionId, token: null, listen: { transcriptionId: L.transcriptionId, recordingId: L.recordingId, token: L.token } }), []), C = ad(k, Y), te = w(null);
|
|
6045
|
+
return x(() => (Ri(E ? te.current : null), () => Ri(null)), [E]), /* @__PURE__ */ i(nc, { value: I, children: /* @__PURE__ */ i("div", { ref: te, className: `vsp${E ? " vsp--embed" : ""}${e.className ? ` ${e.className}` : ""}`, "data-theme": (e.mode ?? "video") === "video" || e.dark ? "dark" : "light", "data-mode": (e.mode ?? "video") === "video" ? "video" : "transcript", children: p ? /* @__PURE__ */ i(dd, { idle: g, connect: C, page: !E, poster: e.poster ?? null, onPick: c, onShare: async (L) => {
|
|
6046
6046
|
try {
|
|
6047
6047
|
return await b.client.shareLinks.open(L), a({ id: L, token: null }), !0;
|
|
6048
6048
|
} catch {
|
|
6049
6049
|
return !1;
|
|
6050
6050
|
}
|
|
6051
|
-
} }) : N ? /* @__PURE__ */ i(
|
|
6051
|
+
} }) : N ? /* @__PURE__ */ i(ud, { idle: g, src: T, ask: !l, connect: C, page: !E, poster: e.poster ?? null, onClear: l ? () => c(null) : void 0 }) : s.id ? P && !S ? /* @__PURE__ */ i(hd, { idle: g, message: P.message, onRetry: O, page: !E }) : /* @__PURE__ */ i(md, { ...e, initial: { ...e.initial ?? {}, ...y }, startMuted: f === !0, handle: r, id: s.id, api: I, shared: S, gone: A, loadError: P, reread: O, desk: W, dark: (e.mode ?? "video") === "video" || !!e.dark, onStarted: (L) => a({ id: L.transcriptionId, token: null, listen: { transcriptionId: L.transcriptionId, recordingId: L.recordingId, token: L.token } }) }, s.id) : /* @__PURE__ */ i("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
|
|
6052
6052
|
});
|
|
6053
|
-
function
|
|
6054
|
-
var
|
|
6055
|
-
const { api: e, shared: n, gone: r, desk: s, dark: a } = t, o = t.id ?? "", l = ze(() =>
|
|
6053
|
+
function md(t) {
|
|
6054
|
+
var Cs, Ss, Ds, As, Es, _s, Ys, Us, $s, Rs, Ps, Qs, Vs, Bs, Hs, Ws, Fs, Zs, Gs, qs, Ks, Js, Xs, ei, ti, ni, ri, si, ii, ai, oi, li, ci, ui, di, hi, fi, Mi, gi, mi, pi, yi, Ni, Ti;
|
|
6055
|
+
const { api: e, shared: n, gone: r, desk: s, dark: a } = t, o = t.id ?? "", l = ze(() => gd(t), []), u = (t.mode ?? "video") === "video", [d, h] = z(t.loadError);
|
|
6056
6056
|
x(() => {
|
|
6057
6057
|
t.loadError && h(t.loadError);
|
|
6058
6058
|
}, [t.loadError]);
|
|
6059
|
-
const [M, g] =
|
|
6059
|
+
const [M, g] = z("none"), [f, y] = z(!1), [T, N] = z(""), [p, b] = mu(), [S, A] = z(null), [P, O] = z(u ? "listen" : "read"), [V, I] = z(!1), W = w(null), E = w(/* @__PURE__ */ new Map()), [k, Y] = z("main"), C = (j) => {
|
|
6060
6060
|
const pe = document.querySelector(".vs-sheet--settings"), Re = pe == null ? void 0 : pe.parentElement;
|
|
6061
|
-
pe && Re && k === "main" &&
|
|
6061
|
+
pe && Re && k === "main" && j !== "main" && Re.style.setProperty("--vs-sheet-top", `${Math.round(pe.getBoundingClientRect().top - Re.getBoundingClientRect().top)}px`), Y(j);
|
|
6062
6062
|
};
|
|
6063
6063
|
x(() => {
|
|
6064
6064
|
V || C("main");
|
|
6065
6065
|
}, [V]);
|
|
6066
|
-
const [te, J] =
|
|
6066
|
+
const [te, J] = z(u), L = (n == null ? void 0 : n.recording) ?? null, ie = (L == null ? void 0 : L.id) ?? null, [ne, G] = z(l.lang), X = typeof ne == "string" ? ne : null, [me, le] = z(l.labels), [Te, je] = z(l.words), [Se, we] = z(l.cc), [ve, Ee] = z(l.translateAudio), [$e, De] = z(l.clonedVoices), [B, F] = z(l.removeBackground), _ = t.settings;
|
|
6067
6067
|
x(() => {
|
|
6068
6068
|
(_ == null ? void 0 : _.lang) !== void 0 && G(_.lang);
|
|
6069
6069
|
}, [_ == null ? void 0 : _.lang]), x(() => {
|
|
@@ -6082,21 +6082,21 @@ function gd(t) {
|
|
|
6082
6082
|
const D = { language: !0, subtitles: !0, audio: !0, export: !0, share: !0, fullscreen: !0, settings: !0, ...t.controls ?? {} }, H = u && !ve;
|
|
6083
6083
|
x(() => {
|
|
6084
6084
|
if (!t.syncUrl) return;
|
|
6085
|
-
const
|
|
6086
|
-
X ?
|
|
6085
|
+
const j = new URL(window.location.href);
|
|
6086
|
+
X ? j.searchParams.set("lang", X) : j.searchParams.delete("lang"), me ? j.searchParams.set("labels", me) : j.searchParams.delete("labels"), Te ? j.searchParams.set("words", Te) : j.searchParams.delete("words"), Se ? j.searchParams.delete("cc") : j.searchParams.set("cc", "off"), ve ? j.searchParams.delete("audio") : j.searchParams.set("audio", "original"), $e ? j.searchParams.delete("voices") : j.searchParams.set("voices", "stock"), Ll(j, B), j.href !== window.location.href && window.history.replaceState(window.history.state, "", j);
|
|
6087
6087
|
}, [X, me, Te, Se, ve, $e, B]), x(() => {
|
|
6088
6088
|
n && !n.allowTranslate && X && G(null);
|
|
6089
6089
|
}, [n, X]);
|
|
6090
|
-
const { model: ce, error: Z, clearError: Ne, setLanguage: q, mergeTranslations: Le, translating: Ie, translateFailed: Fe, shownLang: Ae } =
|
|
6090
|
+
const { model: ce, error: Z, clearError: Ne, setLanguage: q, mergeTranslations: Le, translating: Ie, translateFailed: Fe, shownLang: Ae } = fc(ie, {
|
|
6091
6091
|
lang: null,
|
|
6092
|
-
onFrame: (
|
|
6093
|
-
|
|
6092
|
+
onFrame: (j) => {
|
|
6093
|
+
j.type === "job.progress" && A({ state: j.state, processedS: j.processedS ?? 0, totalS: j.totalS ?? null, segmentsDone: j.segmentsDone ?? 0, segmentsTotal: j.segmentsTotal ?? null, pct: j.pct ?? 0, error: j.error ?? null });
|
|
6094
6094
|
}
|
|
6095
|
-
}), ue = ze(() =>
|
|
6095
|
+
}), ue = ze(() => Bl(ce).filter((j) => !j.suppressed), [ce]), _e = Mc((n == null ? void 0 : n.job) ?? null), Ve = ["done", "failed", "stopped"].includes(Lr((_e == null ? void 0 : _e.state) ?? ((Cs = n == null ? void 0 : n.job) == null ? void 0 : Cs.state))), Q = Ve ? _e : S ?? _e, fe = !!S && !["done", "failed", "stopped"].includes(Lr(S.state)), de = w(0);
|
|
6096
6096
|
x(() => {
|
|
6097
6097
|
!Ve || !fe || Date.now() - de.current < 1e4 || (de.current = Date.now(), t.reread());
|
|
6098
6098
|
}, [Ve, fe, S == null ? void 0 : S.state, S == null ? void 0 : S.processedS, o]);
|
|
6099
|
-
const ae = Lr((Q == null ? void 0 : Q.state) ?? ((
|
|
6099
|
+
const ae = Lr((Q == null ? void 0 : Q.state) ?? ((Ss = n == null ? void 0 : n.job) == null ? void 0 : Ss.state) ?? (e.listen ? (L == null ? void 0 : L.state) === "finalized" ? "done" : L != null && L.state ? "transcribing" : void 0 : void 0)), ge = !!ie && (ae === "transcribing" || ae === "queued"), Ye = u && !r && (!n || (ge || ae === "cropping") && ue.length === 0), U = ge ? (Q == null ? void 0 : Q.pct) ?? 0 : 100, $ = mc(n == null ? void 0 : n.job, Q) ?? (L == null ? void 0 : L.mediaDurationS) ?? null, K = ((Ds = ce.segments.values().next().value) == null ? void 0 : Ds.language) ?? (L == null ? void 0 : L.spokenLanguage) ?? null, se = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", he = ((_s = (Es = (As = n == null ? void 0 : n.job) == null ? void 0 : As.source) == null ? void 0 : Es.name) == null ? void 0 : _s.trim()) || null, be = n ? ((Ys = n.name) == null ? void 0 : Ys.trim()) || he : null, ye = !!((Us = n == null ? void 0 : n.job) != null && Us.hasAudio), ke = ($s = n == null ? void 0 : n.job) == null ? void 0 : $s.source, Oe = !ye && !!ke && (ke.kind !== "url" || ke.bytes != null) && (ae === "transcribing" || ae === "queued" || ae === "done"), He = ie && (n != null && n.allowDownload) && ye ? So(e.origin, ie, e.cred) : null, Pe = !!ke && (ke.kind !== "url" || ke.bytes != null), ht = pd(He && Pe ? He : null), at = He && (!Pe || ht === "yes") ? He : He && ht === "unknown" ? null : ie && (n != null && n.allowDownload) && (Oe || ye && Pe) ? An(e.origin, ie, "source", e.cred) : null, Tt = ue[ue.length - 1], Ge = Tt ? ((Rs = Tt.words[Tt.words.length - 1]) == null ? void 0 : Rs.end) ?? Tt.start : 0, st = u && ge ? Math.max(Ge, (Q == null ? void 0 : Q.processedS) ?? 0) : null, gt = wu(at, (ye || Oe) && !!(n != null && n.allowDownload), ue, $, Oe ? ((Qs = (Ps = n == null ? void 0 : n.job) == null ? void 0 : Ps.crop) == null ? void 0 : Qs.startS) ?? 0 : 0, st), it = Xo((Vs = n == null ? void 0 : n.job) == null ? void 0 : Vs.source), Be = it && ((Bs = Zt(it)) == null ? void 0 : Bs.id) === "youtube" ? ya(it) : null, Mn = gl(Be), Yt = vu(ue, $, ((Ws = (Hs = n == null ? void 0 : n.job) == null ? void 0 : Hs.crop) == null ? void 0 : Ws.startS) ?? 0, st), Xe = !!Be, ct = Xe ? Yt.player : gt, ot = Ma(), rn = w(null), re = Iu({ forcedVoice: t.voice ?? null, recordingId: ie, model: ce, rows: ue, lenS: $, ended: !!ie && !ge, cred: e.cred, langs: ot, srcLang: K, canTranslate: !!(n != null && n.allowTranslate), pickedLang: ne, setPickedLang: G, side: s && !te ? zu : void 0, hearOriginal: H, timed: !!Be, stockVoices: u && !$e, stickyPicker: u, pickerBusy: rn.current }), gn = w(null);
|
|
6100
6100
|
x(() => {
|
|
6101
6101
|
!ie || gn.current === X || (gn.current = X, q(X));
|
|
6102
6102
|
}, [X, ie]);
|
|
@@ -6108,65 +6108,65 @@ function gd(t) {
|
|
|
6108
6108
|
}
|
|
6109
6109
|
(re.on ? ct : re.player).pause();
|
|
6110
6110
|
}, [re.on, Xe]);
|
|
6111
|
-
const
|
|
6111
|
+
const Gn = ze(() => ue.filter((j) => j.sentenceId != null).map((j, pe, Re) => {
|
|
6112
6112
|
var We;
|
|
6113
|
-
return { sid:
|
|
6114
|
-
}), [ue]), Ut =
|
|
6113
|
+
return { sid: j.sentenceId, start: j.start, end: ((We = Re[pe + 1]) == null ? void 0 : We.start) ?? Ft(j, j.start, j.start + 4) };
|
|
6114
|
+
}), [ue]), Ut = Yl({ on: Xe && re.on, lines: Gn, clips: re.clips, t: v.t, playing: v.playing, muted: v.muted }), $t = !!X && (Ie || re.relang || re.on && Ut.missing != null);
|
|
6115
6115
|
rn.current = $t ? X : null, x(() => {
|
|
6116
6116
|
Xe && re.on && Ut.sid != null && re.setNear(Ut.sid);
|
|
6117
|
-
}, [Ut.sid, Xe, re.on]),
|
|
6117
|
+
}, [Ut.sid, Xe, re.on]), Tu([ct, re.player], re.sampling);
|
|
6118
6118
|
const Rt = w(null);
|
|
6119
6119
|
x(() => {
|
|
6120
6120
|
ge && !v.playing && Rt.current && (Rt.current.scrollTop = Rt.current.scrollHeight);
|
|
6121
6121
|
}, [ge, ue.length]);
|
|
6122
|
-
const qt =
|
|
6122
|
+
const qt = xu(Rt, ue, f, T, y), mn = /* @__PURE__ */ i(Ou, { open: f, q: T, onQ: N, onClose: () => y(!1), hits: qt, desk: s, inline: s }), qe = pl({ name: n == null ? void 0 : n.name, sourceName: (Zs = (Fs = n == null ? void 0 : n.job) == null ? void 0 : Fs.source) == null ? void 0 : Zs.name, ytTitle: Mn, url: ((qs = (Gs = n == null ? void 0 : n.job) == null ? void 0 : Gs.source) == null ? void 0 : qs.kind) === "url" ? n.job.source.url : t.src ?? null, id: o }), lt = !!(n != null && n.allowDownload), sn = !!(n != null && n.allowExport), vt = re.readLang, mt = vt ? ((Ks = ot == null ? void 0 : ot.languages.find((j) => j.code === vt)) == null ? void 0 : Ks.name) ?? vt.toUpperCase() : null, Kt = async () => {
|
|
6123
6123
|
if (ie)
|
|
6124
6124
|
try {
|
|
6125
6125
|
if (vt && re.canSpeak) {
|
|
6126
|
-
b(`Preparing ${qe} in ${mt}${re.readVoiceName ? `, read by ${re.readVoiceName}` : ""} — the download starts when it is ready.`), await
|
|
6126
|
+
b(`Preparing ${qe} in ${mt}${re.readVoiceName ? `, read by ${re.readVoiceName}` : ""} — the download starts when it is ready.`), await Nc(e, { recordingId: ie, lang: vt, voiceKey: re.readVoiceKey, cred: e.cred, request: re.requestTrack }), b(`Downloading ${qe} in ${mt}.`);
|
|
6127
6127
|
return;
|
|
6128
6128
|
}
|
|
6129
6129
|
if (ye) {
|
|
6130
|
-
b(`Preparing ${qe} as MP3 — the download starts when it is ready.`), await
|
|
6130
|
+
b(`Preparing ${qe} as MP3 — the download starts when it is ready.`), await pc(An(e.origin, ie, "delivery", e.cred)), b(`Downloading ${qe}.`);
|
|
6131
6131
|
return;
|
|
6132
6132
|
}
|
|
6133
|
-
Zr(
|
|
6134
|
-
} catch (
|
|
6135
|
-
throw h(Ct(
|
|
6133
|
+
Zr(An(e.origin, ie, "source", e.cred)), b(`Downloading ${qe} — the full audio, since the transcript is still being written.`);
|
|
6134
|
+
} catch (j) {
|
|
6135
|
+
throw h(Ct(j)), j;
|
|
6136
6136
|
}
|
|
6137
|
-
}, ft = (
|
|
6137
|
+
}, ft = (j) => {
|
|
6138
6138
|
if (!ie) return;
|
|
6139
|
-
const pe = _r.find((We) => We.key ===
|
|
6140
|
-
return
|
|
6139
|
+
const pe = _r.find((We) => We.key === j).name, Re = mt ? ` in ${mt}` : "";
|
|
6140
|
+
return yc(e, ie, j, { lang: vt }).then(() => b(ge ? `${pe} exported${Re} for the first ${ue.length} segments — the rest is still transcribing.` : `${pe} exported${Re}.`)).catch((We) => {
|
|
6141
6141
|
throw h(Ct(We)), We;
|
|
6142
6142
|
});
|
|
6143
|
-
}, an = ge ? "MORE TO COME…" : "END OF TRANSCRIPT", ut = ge ? "var(--brand)" : "var(--ink-28)", on =
|
|
6143
|
+
}, an = ge ? "MORE TO COME…" : "END OF TRANSCRIPT", ut = ge ? "var(--brand)" : "var(--ink-28)", on = gc(Q, ue.length), St = v.has && (!re.relang || !!Be), Ze = w(v);
|
|
6144
6144
|
Ze.current = v;
|
|
6145
6145
|
const Pt = `${X ?? ""}|${re.on ? "voice" : "source"}`, jt = w({ key: Pt, idx: 0, t: 0, playing: !1, until: 0 });
|
|
6146
6146
|
x(() => {
|
|
6147
|
-
const
|
|
6148
|
-
if (
|
|
6149
|
-
if (!
|
|
6150
|
-
|
|
6147
|
+
const j = jt.current;
|
|
6148
|
+
if (j.key !== Pt && (j.key = Pt, j.until = Date.now() + 15e3), !Xe) {
|
|
6149
|
+
if (!j.until) {
|
|
6150
|
+
j.idx = v.idx, j.t = v.t, j.playing = v.playing;
|
|
6151
6151
|
return;
|
|
6152
6152
|
}
|
|
6153
|
-
if (Date.now() >
|
|
6154
|
-
|
|
6153
|
+
if (Date.now() > j.until) {
|
|
6154
|
+
j.until = 0;
|
|
6155
6155
|
return;
|
|
6156
6156
|
}
|
|
6157
|
-
!v.has || re.relang || (
|
|
6157
|
+
!v.has || re.relang || (j.until = 0, Math.abs(v.t - j.t) > 0.5 && (v.seekFrac && v.dur > 0 ? v.seekFrac(j.t / v.dur) : v.seekRow(j.idx)), j.playing && !v.playing && P === "listen" && (tt.current = !0, v.toggle()));
|
|
6158
6158
|
}
|
|
6159
6159
|
});
|
|
6160
6160
|
const Qt = w(!1), tt = w(!1);
|
|
6161
|
-
u && (
|
|
6162
|
-
const [pn, Dt] =
|
|
6161
|
+
u && (Ki.video = !0);
|
|
6162
|
+
const [pn, Dt] = z(!1), [qn, Kn] = z(!1);
|
|
6163
6163
|
x(() => {
|
|
6164
6164
|
if (!u || Qt.current || !St || !te || Ye || t.autoplay === !1) return;
|
|
6165
6165
|
Qt.current = !0;
|
|
6166
|
-
const
|
|
6167
|
-
Ze.current.playing || tt.current || (Ze.current.toggle(), We > 0 && setTimeout(() =>
|
|
6166
|
+
const j = (We) => {
|
|
6167
|
+
Ze.current.playing || tt.current || (Ze.current.toggle(), We > 0 && setTimeout(() => j(We - 1), 1500));
|
|
6168
6168
|
}, pe = () => {
|
|
6169
|
-
Ze.current.muted || Ze.current.toggleMute(), Dt(!0),
|
|
6169
|
+
Ze.current.muted || Ze.current.toggleMute(), Dt(!0), j(3);
|
|
6170
6170
|
}, Re = Ze.current;
|
|
6171
6171
|
if (!Re.autoplay || t.startMuted) {
|
|
6172
6172
|
pe();
|
|
@@ -6176,7 +6176,7 @@ function gd(t) {
|
|
|
6176
6176
|
We === !1 ? Dt(!0) : We == null && !tt.current && pe();
|
|
6177
6177
|
});
|
|
6178
6178
|
}, [u, St, te, Ye]);
|
|
6179
|
-
const At = w(!1),
|
|
6179
|
+
const At = w(!1), Jn = () => {
|
|
6180
6180
|
pn && (Dt(!1), At.current = !0, setTimeout(() => {
|
|
6181
6181
|
At.current = !1;
|
|
6182
6182
|
}, 500), Ze.current.muted && Ze.current.toggleMute());
|
|
@@ -6192,125 +6192,125 @@ function gd(t) {
|
|
|
6192
6192
|
return;
|
|
6193
6193
|
}
|
|
6194
6194
|
tt.current = !0, Ze.current.toggle();
|
|
6195
|
-
}, Nn = (
|
|
6195
|
+
}, Nn = (j) => /* @__PURE__ */ i(gu, { player: v, size: j }), ln = !!ie && !ge, [R, Ce] = z(!1);
|
|
6196
6196
|
x(() => {
|
|
6197
6197
|
if (!Ie) {
|
|
6198
6198
|
Ce(!1);
|
|
6199
6199
|
return;
|
|
6200
6200
|
}
|
|
6201
|
-
const
|
|
6202
|
-
return () => clearTimeout(
|
|
6201
|
+
const j = setTimeout(() => Ce(!0), 180);
|
|
6202
|
+
return () => clearTimeout(j);
|
|
6203
6203
|
}, [Ie]);
|
|
6204
|
-
const Qe = R ? Ae : X, Et =
|
|
6205
|
-
ct.pause(), re.player.pause(), O(
|
|
6204
|
+
const Qe = R ? Ae : X, Et = Cc(ie, X, ue, Le), Vt = Wc(Fc(L), ie, re.readLang), Aa = lt || sn, Ea = (((Xs = (Js = n == null ? void 0 : n.job) == null ? void 0 : Js.crop) == null ? void 0 : Xs.startS) ?? 0) + bt(v, ue), zt = P === "listen", Bt = zt && (!!Be || u), _a = (j) => {
|
|
6205
|
+
ct.pause(), re.player.pause(), O(j), j === "read" && te && (dn(!1), J(!1));
|
|
6206
6206
|
};
|
|
6207
6207
|
x(() => {
|
|
6208
6208
|
zt || (ct.playing && ct.pause(), re.player.playing && re.player.pause());
|
|
6209
6209
|
}, [zt, ct.playing, re.player.playing]);
|
|
6210
|
-
const Ue = re.barChip, Jt =
|
|
6211
|
-
|
|
6212
|
-
|
|
6213
|
-
] }),
|
|
6210
|
+
const Ue = re.barChip, Jt = ma(Ue.label), Xr = /* @__PURE__ */ i(br, { value: P, onChange: _a, bordered: !1, options: Vu(Jt, !!Be) }), Xt = [...ln ? [{ key: "summary", label: "Summary" }] : [], ...Aa ? [{ key: "export", label: "Export" }] : []], es = (j) => /* @__PURE__ */ m(xe, { children: [
|
|
6211
|
+
j === "summary" && ln && /* @__PURE__ */ i(Zc, { s: Vt }),
|
|
6212
|
+
j === "export" && /* @__PURE__ */ i(Hc, { audio: lt ? { name: qe, meta: vt && re.canSpeak || ye ? `MP3${$ ? ` · ${Ot($)}` : ""}` : "ORIGINAL AUDIO", onClick: Kt } : null, formats: sn, onExport: ft })
|
|
6213
|
+
] }), Ya = (j) => /* @__PURE__ */ i(Ic, { index: v.idx, total: Math.max(1, ue.length), frac: v.dur > 0 ? Math.min(1, v.t / v.dur) : 0, glideMs: v.wordSync ? 0 : 220, atLabel: Ot(v.t), durLabel: Ot(v.dur), stepLabel: j ? `${v.idx + 1} / ${ue.length}` : "", onSeek: re.relang ? Lu : v.seekRow, onSeekFrac: re.relang ? void 0 : v.seekFrac, onScrubStart: v.hold, onScrubEnd: v.release }), ts = {
|
|
6214
6214
|
live: !1,
|
|
6215
6215
|
atEdge: !1,
|
|
6216
6216
|
edgeFrac: null,
|
|
6217
6217
|
readyFrac: st != null && v.dur > 0 ? Math.min(1, st / v.dur) : null,
|
|
6218
6218
|
pct: v.dur > 0 ? Math.min(100, Math.round(v.t / v.dur * 1e3) / 10) : 0,
|
|
6219
6219
|
atLabel: Ot(v.t),
|
|
6220
|
-
labelAt: (
|
|
6220
|
+
labelAt: (j) => Ot(j * v.dur),
|
|
6221
6221
|
endLabel: Ot(v.dur),
|
|
6222
|
-
onSeek: (
|
|
6222
|
+
onSeek: (j) => {
|
|
6223
6223
|
var pe;
|
|
6224
|
-
re.relang || (pe = v.seekFrac) == null || pe.call(v,
|
|
6224
|
+
re.relang || (pe = v.seekFrac) == null || pe.call(v, j);
|
|
6225
6225
|
}
|
|
6226
|
-
}, [
|
|
6226
|
+
}, [Ua, $a] = ka(re.on && !!v.preparing && v.playing, 1500), Xn = re.on && ((ei = v.error) == null ? void 0 : ei.code) === "voice_not_started", er = re.canSpeak && !re.error && !Xn, Tn = X ? ((ti = ot == null ? void 0 : ot.languages.find((j) => j.code === X)) == null ? void 0 : ti.name) ?? Ue.label : "", nt = te ? cu({ lang: X, langName: Tn, translating: Ie && !!X, translateFailed: Fe, voiceFailed: Xn, relang: re.relang, starting: re.on ? v.starting : null, slowLine: Ua, lineSince: $a }) : null, tr = !!Be && !!nt && (nt.kind === "translating" || nt.kind === "voice" && re.relang), ns = !tr || !nt ? null : nt.kind === "translating" ? `Translating into ${Tn || "the new language"}…` : `Preparing the ${Tn || "translated"} voice…`, yt = !tr && ((nt == null ? void 0 : nt.kind) === "voice" || (nt == null ? void 0 : nt.kind) === "starting"), rs = Vr({ ...re.langList, keepOpen: !0, open: k === "lang", onClose: () => C("main") }), ss = wl(B, re.on), Ra = u && ss.bed && lt && ie && (!ge || at) ? wi(e.origin, ie, e.cred) : null, is = Cl(Ra, { t: bt(v, ue), playing: v.playing && !yt && !(v.timed && v.preparing), muted: v.muted }), Pa = u && ss.speech && lt && ie && (!ge || at) ? wi(e.origin, ie, e.cred, "speech") : null, nr = la(Pa, { t: bt(v, ue), playing: !re.on && v.playing, muted: v.muted }), rr = !re.on && nr.on;
|
|
6227
6227
|
x(() => {
|
|
6228
|
-
var
|
|
6229
|
-
Yt.setVideoSound(!(Xe && (re.on ||
|
|
6230
|
-
}, [Xe, re.on,
|
|
6231
|
-
const
|
|
6228
|
+
var j;
|
|
6229
|
+
Yt.setVideoSound(!(Xe && (re.on || rr))), (j = gt.silence) == null || j.call(gt, !Xe && rr);
|
|
6230
|
+
}, [Xe, re.on, rr, at]);
|
|
6231
|
+
const sr = lt ? re.on ? is : nr.state : "unavailable", ir = ve && er && !!X, Qa = ir ? [`Translated${re.hasClone ? $e ? ", cloned voices" : ", synthetic voices" : ""}`, !B && lt && is !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : B && sr !== "unavailable" ? "Original speech, background removed" : "Original sound", Va = () => {
|
|
6232
6232
|
if ((nt == null ? void 0 : nt.kind) === "translateFailed") {
|
|
6233
6233
|
q(X);
|
|
6234
6234
|
return;
|
|
6235
6235
|
}
|
|
6236
6236
|
tt.current = !0, v.toggle();
|
|
6237
|
-
},
|
|
6238
|
-
const
|
|
6239
|
-
v.pause(), G(null), tt.current = !0, ct.playRow(
|
|
6237
|
+
}, Ba = () => {
|
|
6238
|
+
const j = v.idx;
|
|
6239
|
+
v.pause(), G(null), tt.current = !0, ct.playRow(j);
|
|
6240
6240
|
}, as = { prevOn: v.idx > 0, nextOn: v.idx < ue.length - 1, onPrev: v.prev, onNext: v.next, playing: v.playing, playable: St, playTitle: re.playTitle ?? (v.playing ? "Pause" : "Play"), onPlay: () => {
|
|
6241
6241
|
tt.current = !0, v.toggle();
|
|
6242
6242
|
}, busy: re.relang && !Be || yt };
|
|
6243
|
-
|
|
6243
|
+
Rl(St && zt ? { playing: v.playing, toggle: () => {
|
|
6244
6244
|
tt.current = !0, v.toggle();
|
|
6245
6245
|
}, next: v.next, prev: v.prev } : null, be);
|
|
6246
|
-
const
|
|
6246
|
+
const ar = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, or = (j, pe) => !Ue.can || !D.language ? null : u ? /* @__PURE__ */ m("button", { type: "button", className: "gfull__btn", title: $t ? `${Ue.label ?? Ue.code}: still being prepared` : Ue.label ?? Ue.code, "aria-label": `Language: ${Ue.label ?? Ue.code}`, "aria-busy": $t || void 0, onClick: () => {
|
|
6247
6247
|
I(!1), Ue.onClick();
|
|
6248
6248
|
}, style: { position: "relative" }, children: [
|
|
6249
6249
|
/* @__PURE__ */ i("span", { style: { fontSize: pe === "sm" ? 17 : 21, lineHeight: 1 }, children: Ue.flag }),
|
|
6250
6250
|
$t && /* @__PURE__ */ i("span", { style: { position: "absolute", right: 2, bottom: 2, display: "flex", borderRadius: 999, background: "rgba(5,6,21,.7)", padding: 1 }, children: /* @__PURE__ */ i(Mt, { size: 11, color: "#eef0f8", track: "rgba(255,255,255,.25)" }) })
|
|
6251
|
-
] }) : /* @__PURE__ */ i(
|
|
6252
|
-
}, busy: re.voiceWaiting || yt }, [
|
|
6251
|
+
] }) : /* @__PURE__ */ i(Bn, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, size: pe, onClick: Ue.onClick, style: j }), os = { on: !1, title: "Voices", onClick: () => {
|
|
6252
|
+
}, busy: re.voiceWaiting || yt }, [Ha, Wa] = z(!1);
|
|
6253
6253
|
x(() => {
|
|
6254
|
-
v.t > 0.3 &&
|
|
6254
|
+
v.t > 0.3 && Wa(!0);
|
|
6255
6255
|
}, [v.t]);
|
|
6256
|
-
const
|
|
6256
|
+
const Fa = !Be && u && ie && (n != null && n.allowDownload) && !ge && ((ni = n == null ? void 0 : n.job) == null ? void 0 : ni.hasVideo) !== !1 && ((si = (ri = n == null ? void 0 : n.job) == null ? void 0 : ri.source) == null ? void 0 : si.kind) !== "url" ? /* @__PURE__ */ i(Li, { src: An(e.origin, ie, "video", e.cred), t: bt(v, ue), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, ie) : null, dt = !Be && u && it && Ko(it) ? it : null, vn = dt ? aa(dt) : null, ls = ze(() => vn ? Ml(vn) : void 0, [vn]), lr = dt && ((ii = Zt(dt)) == null ? void 0 : ii.id) === "facebook" ? dt : null, cr = dt && ((ai = Zt(dt)) == null ? void 0 : ai.id) === "wistia" ? el(dt) : null, ur = dt && ((oi = Zt(dt)) == null ? void 0 : oi.id) === "vidyard" ? tl(dt) : null, Za = ur ? /* @__PURE__ */ i(dl, { uuid: ur, t: bt(v, ue) + (((ci = (li = n == null ? void 0 : n.job) == null ? void 0 : li.crop) == null ? void 0 : ci.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, ur) : cr ? /* @__PURE__ */ i(cl, { id: cr, t: bt(v, ue) + (((di = (ui = n == null ? void 0 : n.job) == null ? void 0 : ui.crop) == null ? void 0 : di.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, cr) : lr ? /* @__PURE__ */ i(ol, { url: lr, t: bt(v, ue) + (((fi = (hi = n == null ? void 0 : n.job) == null ? void 0 : hi.crop) == null ? void 0 : fi.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, lr) : ls ? /* @__PURE__ */ i(Li, { setup: ls, seekOver: 1, t: bt(v, ue) + (((gi = (Mi = n == null ? void 0 : n.job) == null ? void 0 : Mi.crop) == null ? void 0 : gi.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, vn) : dt ? /* @__PURE__ */ i(sl, { url: dt, t: bt(v, ue) + (((pi = (mi = n == null ? void 0 : n.job) == null ? void 0 : mi.crop) == null ? void 0 : pi.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, title: qe, onToggle: v.has ? pt : void 0 }) : null, Ga = v.has ? /* @__PURE__ */ m("div", { className: "txyt vsp-follow", children: [
|
|
6257
6257
|
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: pt, style: { cursor: "pointer" } }),
|
|
6258
6258
|
/* @__PURE__ */ i("div", { className: `txyt__paused${v.playing ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) }) })
|
|
6259
|
-
] }) : null,
|
|
6260
|
-
/* @__PURE__ */ i(
|
|
6259
|
+
] }) : null, dr = ((Ni = (yi = n == null ? void 0 : n.job) == null ? void 0 : yi.source) == null ? void 0 : Ni.thumbnailUrl) ?? null, qa = dr && /^https:\/\//.test(dr) ? /* @__PURE__ */ i("div", { className: "vsp-thumbpic", "aria-hidden": "true", style: { backgroundImage: `url(${JSON.stringify(dr)})` } }) : null, cs = Be ? /* @__PURE__ */ m(xe, { children: [
|
|
6260
|
+
/* @__PURE__ */ i(hu, { ytId: Be, title: qe, t: Ea, playing: v.playing && !yt, waiting: re.on && !!v.timed && !!v.preparing, seekN: v.seekN, onTime: (j) => {
|
|
6261
6261
|
var pe, Re, We;
|
|
6262
|
-
return (We = v.videoAt) == null ? void 0 : We.call(v,
|
|
6263
|
-
}, onToggle: v.has ? pt : void 0, onAd:
|
|
6264
|
-
/* @__PURE__ */ m("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity:
|
|
6262
|
+
return (We = v.videoAt) == null ? void 0 : We.call(v, j - (((Re = (pe = n == null ? void 0 : n.job) == null ? void 0 : pe.crop) == null ? void 0 : Re.startS) ?? 0));
|
|
6263
|
+
}, onToggle: v.has ? pt : void 0, onAd: Kn, lead: Xe ? Yt.lead : void 0 }),
|
|
6264
|
+
/* @__PURE__ */ m("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity: Ha ? 0 : 1 }, children: [
|
|
6265
6265
|
/* @__PURE__ */ i("div", { className: "vsp-poster__img", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Be}/hqdefault.jpg)` } }),
|
|
6266
6266
|
/* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) })
|
|
6267
6267
|
] })
|
|
6268
6268
|
] }) : u ? /* @__PURE__ */ m(xe, { children: [
|
|
6269
6269
|
/* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }),
|
|
6270
|
+
qa,
|
|
6270
6271
|
Ga,
|
|
6271
6272
|
Za,
|
|
6272
|
-
Fa
|
|
6273
|
-
|
|
6274
|
-
] }) : null, us = Bt && Be && !te ? /* @__PURE__ */ i(Zc, { ytId: Be, title: qe, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: cs, children: /* @__PURE__ */ i(Uu, { pos: ts, transport: as, chip: ir({ ...sr, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: os, onFull: () => {
|
|
6273
|
+
Fa
|
|
6274
|
+
] }) : null, us = Bt && Be && !te ? /* @__PURE__ */ i(Gc, { ytId: Be, title: qe, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: cs, children: /* @__PURE__ */ i($u, { pos: ts, transport: as, chip: or({ ...ar, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: os, onFull: () => {
|
|
6275
6275
|
dn(!0), J(!0);
|
|
6276
|
-
}, copied: null }) }) : null, et = v.wordSync ?
|
|
6277
|
-
for (const
|
|
6278
|
-
const ds = (
|
|
6279
|
-
et &&
|
|
6280
|
-
const hs = et && It && et.language !== It ? ds(et, It) : null,
|
|
6276
|
+
}, copied: null }) }) : null, et = v.wordSync ? wc(ue, v.idx, v.t) ? ue[v.idx] : void 0 : ue[v.idx];
|
|
6277
|
+
for (const j of ue) for (const [pe, Re] of Object.entries(j.translations)) Re && E.current.set(`${j.sentenceId ?? j.start}|${pe}`, Re);
|
|
6278
|
+
const ds = (j, pe) => j.translations[pe] || E.current.get(`${j.sentenceId ?? j.start}|${pe}`) || null, hr = (j, pe) => !j || !pe || j.language === pe || !!ds(j, pe), It = hr(et, X) ? X : hr(et, W.current) ? W.current : X;
|
|
6279
|
+
et && hr(et, It) && (W.current = It);
|
|
6280
|
+
const hs = et && It && et.language !== It ? ds(et, It) : null, Ka = et && hs && It && !et.translations[It] ? Object.assign([...ue], { [v.idx]: { ...et, translations: { ...et.translations, [It]: hs } } }) : ue, wn = et ? La(Ka, v.idx, It) : [], kn = Te ? Te === "on" : !u || re.on || !Qe || Qe === K, fs = kn ? Ui(v, v.idx, wn) : null, Ms = wn.map((j, pe) => ({ t: j.text, sp: pe < wn.length - 1 ? " " : "", dim: fs != null && pe > fs })), Ln = me ? me === "on" : u ? !1 : ec(ce, ue, L == null ? void 0 : L.settings), gs = { lang: X, subtitles: Se, speakerLabels: Ln, wordHighlight: kn, translateAudio: ve, voices: $e ? "cloned" : "synthetic", removeBackground: B }, Ja = JSON.stringify(gs), jn = w(t.onSettingsChange);
|
|
6281
6281
|
jn.current = t.onSettingsChange, x(() => {
|
|
6282
|
-
var
|
|
6283
|
-
(
|
|
6284
|
-
}, [
|
|
6285
|
-
const zn = et && et.speaker >= 0 && Ln ? Wr(ce, et.speaker) : null, [
|
|
6286
|
-
x(() => () => window.clearTimeout(
|
|
6287
|
-
const
|
|
6288
|
-
x(() => () => window.clearTimeout(
|
|
6289
|
-
const Ns = (
|
|
6290
|
-
if (t.shareUrl) return t.shareUrl(
|
|
6282
|
+
var j;
|
|
6283
|
+
(j = jn.current) == null || j.call(jn, gs);
|
|
6284
|
+
}, [Ja]);
|
|
6285
|
+
const zn = et && et.speaker >= 0 && Ln ? Wr(ce, et.speaker) : null, [Xa, ms] = z(!1), [fr, ps] = z(null), [eo, ys] = z(null), Mr = w(void 0);
|
|
6286
|
+
x(() => () => window.clearTimeout(Mr.current), []);
|
|
6287
|
+
const gr = w(void 0);
|
|
6288
|
+
x(() => () => window.clearTimeout(gr.current), []);
|
|
6289
|
+
const Ns = (j) => {
|
|
6290
|
+
if (t.shareUrl) return t.shareUrl(j);
|
|
6291
6291
|
const pe = new URL(window.location.href);
|
|
6292
|
-
return
|
|
6293
|
-
}, In = w(l.startAt),
|
|
6292
|
+
return j != null && j > 0 ? pe.searchParams.set("t", String(j)) : pe.searchParams.delete("t"), pe.href;
|
|
6293
|
+
}, In = w(l.startAt), mr = (j) => {
|
|
6294
6294
|
if (v.seekFrac && v.dur > 0) {
|
|
6295
|
-
v.seekFrac(Math.min(1,
|
|
6295
|
+
v.seekFrac(Math.min(1, j / v.dur));
|
|
6296
6296
|
return;
|
|
6297
6297
|
}
|
|
6298
6298
|
let pe = 0;
|
|
6299
|
-
for (let Re = 0; Re < ue.length; Re++) ue[Re].start <=
|
|
6299
|
+
for (let Re = 0; Re < ue.length; Re++) ue[Re].start <= j && (pe = Re);
|
|
6300
6300
|
v.seekRow(pe);
|
|
6301
6301
|
}, Ts = w(!1);
|
|
6302
6302
|
x(() => {
|
|
6303
|
-
const
|
|
6304
|
-
|
|
6303
|
+
const j = In.current;
|
|
6304
|
+
j == null || Ts.current || !v.has || ue.length === 0 || (Ts.current = !0, mr(j));
|
|
6305
6305
|
}, [v.has, ue.length]), x(() => {
|
|
6306
|
-
const
|
|
6307
|
-
|
|
6306
|
+
const j = In.current;
|
|
6307
|
+
j == null || !v.playing || (In.current = null, Math.abs(v.t - j) > 2 && mr(j));
|
|
6308
6308
|
}, [v.playing]);
|
|
6309
|
-
const
|
|
6310
|
-
tt.current = !0, In.current = null,
|
|
6309
|
+
const to = (j) => {
|
|
6310
|
+
tt.current = !0, In.current = null, mr(Math.max(0, j));
|
|
6311
6311
|
};
|
|
6312
6312
|
t.handle.current = {
|
|
6313
|
-
seek: (
|
|
6313
|
+
seek: (j) => to(j),
|
|
6314
6314
|
play: () => {
|
|
6315
6315
|
tt.current = !0, zt && !Ze.current.playing && Ze.current.toggle();
|
|
6316
6316
|
},
|
|
@@ -6330,24 +6330,24 @@ function gd(t) {
|
|
|
6330
6330
|
vs.current = t.onPlayback;
|
|
6331
6331
|
const ws = w(X);
|
|
6332
6332
|
ws.current = X, x(() => {
|
|
6333
|
-
let
|
|
6333
|
+
let j = "";
|
|
6334
6334
|
const pe = () => {
|
|
6335
6335
|
const We = vs.current;
|
|
6336
6336
|
if (!We) return;
|
|
6337
|
-
const wt = Ze.current, Nt = { t: wt.t, dur: wt.dur, playing: wt.playing, idx: wt.idx, seekN: wt.seekN, lang: ws.current, muted: wt.muted },
|
|
6338
|
-
|
|
6337
|
+
const wt = Ze.current, Nt = { t: wt.t, dur: wt.dur, playing: wt.playing, idx: wt.idx, seekN: wt.seekN, lang: ws.current, muted: wt.muted }, Dn = `${Nt.t.toFixed(2)}|${Nt.dur}|${Nt.playing}|${Nt.idx}|${Nt.seekN}|${Nt.lang}|${Nt.muted}`;
|
|
6338
|
+
Dn !== j && (j = Dn, We(Nt));
|
|
6339
6339
|
};
|
|
6340
6340
|
pe();
|
|
6341
|
-
const Re = window.setInterval(pe,
|
|
6341
|
+
const Re = window.setInterval(pe, Md);
|
|
6342
6342
|
return () => window.clearInterval(Re);
|
|
6343
6343
|
}, []);
|
|
6344
|
-
const
|
|
6345
|
-
window.clearTimeout(
|
|
6346
|
-
}), ks = (
|
|
6347
|
-
const We = _r.find((
|
|
6348
|
-
return /* @__PURE__ */ m("div", { className: "srow srow--tap", role: "button", "aria-busy": wt || void 0, style:
|
|
6349
|
-
|
|
6350
|
-
ys(
|
|
6344
|
+
const no = () => t.onShare ? t.onShare() : Gr(Ns(null), qe, () => {
|
|
6345
|
+
window.clearTimeout(gr.current), ms(!0), gr.current = window.setTimeout(() => ms(!1), 2200);
|
|
6346
|
+
}), ks = (j, pe, Re) => {
|
|
6347
|
+
const We = _r.find((Dn) => Dn.key === j), wt = fr === j, Nt = eo === j;
|
|
6348
|
+
return /* @__PURE__ */ m("div", { className: "srow srow--tap", role: "button", "aria-busy": wt || void 0, style: fr && !wt ? { opacity: 0.45, pointerEvents: "none" } : void 0, onClick: () => {
|
|
6349
|
+
fr || (ps(j), Promise.resolve().then(() => ft(j)).then(() => {
|
|
6350
|
+
ys(j), window.clearTimeout(Mr.current), Mr.current = window.setTimeout(() => ys(null), 1600);
|
|
6351
6351
|
}).catch(() => {
|
|
6352
6352
|
}).finally(() => ps(null)));
|
|
6353
6353
|
}, children: [
|
|
@@ -6358,13 +6358,13 @@ function gd(t) {
|
|
|
6358
6358
|
] }),
|
|
6359
6359
|
/* @__PURE__ */ i(oe, { d: Nt ? ee.check : ee.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: Nt ? "var(--brand)" : "var(--ink-62)" } })
|
|
6360
6360
|
] });
|
|
6361
|
-
},
|
|
6361
|
+
}, ro = /* @__PURE__ */ m("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
|
|
6362
6362
|
" ",
|
|
6363
6363
|
/* @__PURE__ */ m("button", { type: "button", onClick: () => C("main"), "aria-label": "Back", style: { position: "absolute", left: -6, top: "50%", transform: "translateY(-50%)", display: "inline-flex", alignItems: "center", gap: 2, padding: "4px 6px 4px 0", border: 0, background: "none", color: "var(--ink-96)", fontFamily: "var(--vs-font-sans)", fontSize: 15, fontWeight: 600, letterSpacing: 0, lineHeight: 1, whiteSpace: "nowrap", cursor: "pointer" }, children: [
|
|
6364
6364
|
/* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: 18, sw: 1.8 }),
|
|
6365
6365
|
"Back"
|
|
6366
6366
|
] })
|
|
6367
|
-
] }), bn = /* @__PURE__ */ i(oe, { d: ee.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }),
|
|
6367
|
+
] }), bn = /* @__PURE__ */ i(oe, { d: ee.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), so = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[k], On = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, pr = u ? /* @__PURE__ */ i(nn, { open: V, onClose: () => I(!1), title: so, titleNode: k === "main" ? void 0 : ro, doneLabel: Jt.done, kind: k === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(Or, { children: k === "lang" ? /* @__PURE__ */ m("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
6368
6368
|
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: rs.search }),
|
|
6369
6369
|
rs.list
|
|
6370
6370
|
] }) : k === "subs" ? /* @__PURE__ */ m("div", { style: On, children: [
|
|
@@ -6380,36 +6380,36 @@ function gd(t) {
|
|
|
6380
6380
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Show speaker labels" }),
|
|
6381
6381
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Who is speaking, before each line" })
|
|
6382
6382
|
] }),
|
|
6383
|
-
/* @__PURE__ */ i(Lt, { checked: Ln, onChange: (
|
|
6383
|
+
/* @__PURE__ */ i(Lt, { checked: Ln, onChange: (j) => le(j ? "on" : "off"), label: "Show speaker labels" })
|
|
6384
6384
|
] }),
|
|
6385
6385
|
/* @__PURE__ */ m("div", { className: "srow", children: [
|
|
6386
6386
|
/* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6387
6387
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Highlight words" }),
|
|
6388
6388
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Follow each word as it is spoken" })
|
|
6389
6389
|
] }),
|
|
6390
|
-
/* @__PURE__ */ i(Lt, { checked: kn, onChange: (
|
|
6390
|
+
/* @__PURE__ */ i(Lt, { checked: kn, onChange: (j) => je(j ? "on" : "off"), label: "Highlight words" })
|
|
6391
6391
|
] })
|
|
6392
6392
|
] }) : k === "audio" ? /* @__PURE__ */ m("div", { style: On, children: [
|
|
6393
6393
|
/* @__PURE__ */ m("div", { className: "srow", children: [
|
|
6394
6394
|
/* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6395
6395
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Translate audio" }),
|
|
6396
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children: X ?
|
|
6396
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: X ? er ? "Hear the translation read aloud instead of the original speech" : re.canSpeak ? "Not available right now" : "Not available in this language" : "Pick a language to hear the translation read aloud" })
|
|
6397
6397
|
] }),
|
|
6398
|
-
/* @__PURE__ */ i(Lt, { checked:
|
|
6398
|
+
/* @__PURE__ */ i(Lt, { checked: ir, onChange: Ee, label: "Translate audio", disabled: !er || !X })
|
|
6399
6399
|
] }),
|
|
6400
|
-
|
|
6400
|
+
ir && re.hasClone && /* @__PURE__ */ m("div", { className: "srow", children: [
|
|
6401
6401
|
/* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6402
6402
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Voices" }),
|
|
6403
6403
|
/* @__PURE__ */ i("div", { className: "srow__s", children: $e ? "Each speaker in their own cloned voice" : "Synthetic voices matched to each speaker" })
|
|
6404
6404
|
] }),
|
|
6405
|
-
/* @__PURE__ */ i(br, { value: $e ? "clone" : "stock", onChange: (
|
|
6405
|
+
/* @__PURE__ */ i(br, { value: $e ? "clone" : "stock", onChange: (j) => De(j === "clone"), size: "sm", options: [{ value: "stock", label: "Synthetic" }, { value: "clone", label: "Cloned" }] })
|
|
6406
6406
|
] }),
|
|
6407
6407
|
/* @__PURE__ */ m("div", { className: "srow", children: [
|
|
6408
6408
|
/* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6409
|
-
/* @__PURE__ */ i("div", { className: "srow__t", children:
|
|
6410
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children:
|
|
6409
|
+
/* @__PURE__ */ i("div", { className: "srow__t", children: Hn }),
|
|
6410
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: vl(B, sr, "video", re.on ? 0 : nr.untilS) })
|
|
6411
6411
|
] }),
|
|
6412
|
-
/* @__PURE__ */ i(Lt, { checked: B && lt, onChange: F, label:
|
|
6412
|
+
/* @__PURE__ */ i(Lt, { checked: B && lt, onChange: F, label: Hn, disabled: !lt || sr === "unavailable" && !B })
|
|
6413
6413
|
] })
|
|
6414
6414
|
] }) : k === "export" ? /* @__PURE__ */ m("div", { style: On, children: [
|
|
6415
6415
|
ks("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
|
|
@@ -6433,7 +6433,7 @@ function gd(t) {
|
|
|
6433
6433
|
D.audio && /* @__PURE__ */ m("div", { className: "srow srow--tap", role: "button", onClick: () => C("audio"), children: [
|
|
6434
6434
|
/* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6435
6435
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Audio" }),
|
|
6436
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children:
|
|
6436
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: Qa })
|
|
6437
6437
|
] }),
|
|
6438
6438
|
bn
|
|
6439
6439
|
] }, "audio"),
|
|
@@ -6447,7 +6447,7 @@ function gd(t) {
|
|
|
6447
6447
|
] }),
|
|
6448
6448
|
bn
|
|
6449
6449
|
] }, "export")
|
|
6450
|
-
].filter(Boolean).flatMap((
|
|
6450
|
+
].filter(Boolean).flatMap((j, pe) => pe ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${pe}`), j] : [j]) }) }) }) : /* @__PURE__ */ i(nn, { open: V, onClose: () => I(!1), title: Jt.settings, doneLabel: Jt.done, drawer: s, children: /* @__PURE__ */ m("div", { style: { display: "flex", flexDirection: "column", gap: 2 }, children: [
|
|
6451
6451
|
Ue.can && /* @__PURE__ */ m(xe, { children: [
|
|
6452
6452
|
/* @__PURE__ */ m("div", { className: "srow srow--tap", onClick: () => {
|
|
6453
6453
|
I(!1), Ue.onClick();
|
|
@@ -6464,7 +6464,7 @@ function gd(t) {
|
|
|
6464
6464
|
] }),
|
|
6465
6465
|
t.settingsExtra
|
|
6466
6466
|
] }) }), _t = te && Bt && (!!Be || u) && /* @__PURE__ */ i(
|
|
6467
|
-
|
|
6467
|
+
ba,
|
|
6468
6468
|
{
|
|
6469
6469
|
page: (t.layout ?? "embed") === "page",
|
|
6470
6470
|
picture: cs,
|
|
@@ -6472,26 +6472,26 @@ function gd(t) {
|
|
|
6472
6472
|
desk: s,
|
|
6473
6473
|
pos: ts,
|
|
6474
6474
|
mute: { muted: v.muted, onToggle: yn },
|
|
6475
|
-
cc: D.subtitles ? { on: Se, onToggle: () => we((
|
|
6475
|
+
cc: D.subtitles ? { on: Se, onToggle: () => we((j) => !j) } : void 0,
|
|
6476
6476
|
noFull: !D.fullscreen,
|
|
6477
|
-
ad:
|
|
6478
|
-
wait: nt && !
|
|
6477
|
+
ad: qn,
|
|
6478
|
+
wait: nt && !tr ? /* @__PURE__ */ i(du, { state: nt, line: yt ? Ms.map((j) => j.t + j.sp).join("") : null, onRetry: Va, onOriginal: Ba }) : v.edgeWait ? `Transcribing ${Math.round(U)}% — it plays on as more is written` : null,
|
|
6479
6479
|
pct: ge ? Math.round(U) : null,
|
|
6480
|
-
sub: Se && et ? { who: zn ? Hr(ce, et.speaker) : null, color: zn ? zn.fg ?? `var(--lane-${zn.lane})` : "#fff", words: Ms, cursor:
|
|
6481
|
-
chip:
|
|
6480
|
+
sub: Se && et ? { who: zn ? Hr(ce, et.speaker) : null, color: zn ? zn.fg ?? `var(--lane-${zn.lane})` : "#fff", words: Ms, cursor: Ui(v, v.idx, wn) } : null,
|
|
6481
|
+
chip: or(s ? ar : { ...ar, width: 64, padding: "0 6px" }, s ? void 0 : "sm"),
|
|
6482
6482
|
transport: as,
|
|
6483
6483
|
picker: re.sheets,
|
|
6484
|
-
sheet: u ?
|
|
6484
|
+
sheet: u ? pr : null,
|
|
6485
6485
|
voices: null,
|
|
6486
6486
|
voicesBtn: u ? null : os,
|
|
6487
6487
|
sheetOpen: re.sheetsOpen || V,
|
|
6488
|
-
onShare: u && D.share ?
|
|
6488
|
+
onShare: u && D.share ? no : void 0,
|
|
6489
6489
|
onSettings: u && D.settings ? () => {
|
|
6490
|
-
re.closePicker(), I((
|
|
6490
|
+
re.closePicker(), I((j) => !j);
|
|
6491
6491
|
} : void 0,
|
|
6492
6492
|
compact: !!t.compact,
|
|
6493
6493
|
paused: { title: qe, summary: Vt.state === "ready" ? Vt.summary ?? null : null, share: D.share && (t.shareUrl || !t.onShare) ? { url: Ns, at: v.t } : null },
|
|
6494
|
-
copied:
|
|
6494
|
+
copied: Xa ? /* @__PURE__ */ m("div", { className: "gfull__toast", "aria-live": "polite", children: [
|
|
6495
6495
|
/* @__PURE__ */ i(oe, { d: ee.check, size: 13, sw: 2 }),
|
|
6496
6496
|
"Link copied"
|
|
6497
6497
|
] }) : pn ? /* @__PURE__ */ m("div", { className: "gfull__toast gfull__soundtip", "aria-live": "polite", children: [
|
|
@@ -6505,7 +6505,7 @@ function gd(t) {
|
|
|
6505
6505
|
`${Tn || "Translated"} voice is still being prepared · playing with subtitles`
|
|
6506
6506
|
] }) : null,
|
|
6507
6507
|
onTouch: () => {
|
|
6508
|
-
dn(!0),
|
|
6508
|
+
dn(!0), Jn();
|
|
6509
6509
|
},
|
|
6510
6510
|
onClose: u ? void 0 : () => {
|
|
6511
6511
|
dn(!1), J(!1);
|
|
@@ -6523,20 +6523,20 @@ function gd(t) {
|
|
|
6523
6523
|
/* @__PURE__ */ i("span", { className: "s", children: on })
|
|
6524
6524
|
] }),
|
|
6525
6525
|
!s && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) })
|
|
6526
|
-
] }),
|
|
6526
|
+
] }), yr = r && /* @__PURE__ */ i("div", { className: "hint", style: { padding: "30px 20px", textAlign: "center", fontSize: 13 }, children: "This link is no longer shared. Ask the person who sent it for a new one." }), js = /* @__PURE__ */ i(bu, { model: ce, rows: ue, player: zt ? v : { ...v, playRow: v.seekRow }, tail: an, tailFg: ut, running: ge, desk: s, feedRef: Rt, listener: !0, showLabels: Ln, find: T, findOpen: !s && f, lang: Qe, warm: R, onVisible: Et, wordHl: kn }), Nr = /* @__PURE__ */ i(zc, { error: d ?? Z ?? (Xn && te ? null : v.error) ?? re.error, onClose: () => {
|
|
6527
6527
|
h(null), Ne(), v.clearError(), re.clearError();
|
|
6528
|
-
} }), zs = [$ ? Ot($) : null, K ? K.toUpperCase() : null, se || "Read-only copy"].filter(Boolean).join(" · "), Is = (
|
|
6528
|
+
} }), zs = [$ ? Ot($) : null, K ? K.toUpperCase() : null, se || "Read-only copy"].filter(Boolean).join(" · "), Is = (j) => /* @__PURE__ */ i("div", { className: "ctrans", children: re.noVoice ? re.noVoiceNote : /* @__PURE__ */ m(xe, { children: [
|
|
6529
6529
|
/* @__PURE__ */ m("div", { className: "ctrans__row", children: [
|
|
6530
6530
|
/* @__PURE__ */ i("span", { className: "ctrans__sp", "aria-hidden": "true" }),
|
|
6531
6531
|
/* @__PURE__ */ m("div", { className: "ctrans__mid", children: [
|
|
6532
6532
|
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: v.idx <= 0 ? 0.3 : 1 }, onClick: v.prev, children: /* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: 16, sw: 1.8 }) }),
|
|
6533
|
-
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" : v.playing ? "Pause" : "Play", title: re.relang ? "Preparing audio…" : re.playTitle ?? (v.playing ? "Pause" : "Play"), disabled: !St, onClick: v.toggle, children: re.relang ? /* @__PURE__ */ i("span", { className: "ctrans__spin" }) : /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: v.playing ? void 0 : { marginLeft: 2 }, children: v.playing ?
|
|
6533
|
+
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" : v.playing ? "Pause" : "Play", title: re.relang ? "Preparing audio…" : re.playTitle ?? (v.playing ? "Pause" : "Play"), disabled: !St, onClick: v.toggle, children: re.relang ? /* @__PURE__ */ i("span", { className: "ctrans__spin" }) : /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: v.playing ? void 0 : { marginLeft: 2 }, children: v.playing ? fu : Mu }) }),
|
|
6534
6534
|
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: v.idx >= ue.length - 1 ? 0.3 : 1 }, onClick: v.next, children: /* @__PURE__ */ i(oe, { d: ee.chevronRight, size: 16, sw: 1.8 }) })
|
|
6535
6535
|
] }),
|
|
6536
6536
|
/* @__PURE__ */ i("span", { className: "ctrans__mute", children: Nn(36) })
|
|
6537
6537
|
] }),
|
|
6538
|
-
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children:
|
|
6539
|
-
] }) }),
|
|
6538
|
+
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children: Ya(j) })
|
|
6539
|
+
] }) }), io = Jc("ga", { tabs: Xt, cur: M, pref: (Ti = Xt[0]) == null ? void 0 : Ti.key, onPick: g }), bs = Math.max(0, Math.min(100, Math.round(U))), ao = Ye && /* @__PURE__ */ m("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
|
|
6540
6540
|
Be && /* @__PURE__ */ i("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Be}/hqdefault.jpg)` } }),
|
|
6541
6541
|
/* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ m(xe, { children: [
|
|
6542
6542
|
qe && /* @__PURE__ */ i("div", { className: "gfull__holdt", children: qe }),
|
|
@@ -6550,27 +6550,33 @@ function gd(t) {
|
|
|
6550
6550
|
] }) : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) })
|
|
6551
6551
|
] }), Os = u && n && (ge || ae === "cropping") ? Math.max(0, Math.min(100, Math.round(U))) : null, xn = w(t.onProgress);
|
|
6552
6552
|
xn.current = t.onProgress, x(() => {
|
|
6553
|
-
var
|
|
6554
|
-
(
|
|
6553
|
+
var j;
|
|
6554
|
+
(j = xn.current) == null || j.call(xn, Os);
|
|
6555
6555
|
}, [Os]);
|
|
6556
|
-
const [
|
|
6556
|
+
const [xs, Cn] = z(!1), Sn = !!_t && !Ye && (Xe ? !!v.ended : !v.playing && v.dur > 0 && v.t >= v.dur - 0.5);
|
|
6557
6557
|
x(() => {
|
|
6558
|
-
|
|
6559
|
-
}, [
|
|
6560
|
-
const oo = t.endCard !== !1 &&
|
|
6561
|
-
|
|
6562
|
-
} })
|
|
6558
|
+
Sn || Cn(!1);
|
|
6559
|
+
}, [Sn]);
|
|
6560
|
+
const oo = t.endCard !== !1 && Sn && !xs && /* @__PURE__ */ i(Ku, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => Cn(!0), onReplay: () => {
|
|
6561
|
+
Cn(!0), tt.current = !0, v.seekFrac ? v.seekFrac(0) : v.seekRow(0), v.playing || v.toggle();
|
|
6562
|
+
} }), lo = t.endCard !== !1 && Sn && xs && /* @__PURE__ */ m("button", { type: "button", className: "vsp-endpill", onClick: (j) => {
|
|
6563
|
+
j.stopPropagation(), Cn(!1);
|
|
6564
|
+
}, children: [
|
|
6565
|
+
/* @__PURE__ */ i(oe, { d: ee.link, size: 15, sw: 1.8 }),
|
|
6566
|
+
"Transcribe a video"
|
|
6567
|
+
] });
|
|
6563
6568
|
if (u) return /* @__PURE__ */ m(xe, { children: [
|
|
6564
|
-
r ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children:
|
|
6569
|
+
r ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: yr }) : ao || _t || /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark" }),
|
|
6565
6570
|
oo,
|
|
6566
|
-
|
|
6571
|
+
lo,
|
|
6572
|
+
Nr
|
|
6567
6573
|
] });
|
|
6568
6574
|
if (s) {
|
|
6569
|
-
const
|
|
6575
|
+
const j = zt && !Bt && !r && /* @__PURE__ */ i("div", { className: "pubdeskctl", children: Is(!0) }), pe = !r && (Xt.length > 0 || Bt || !!re.sidePanel || !!j);
|
|
6570
6576
|
return /* @__PURE__ */ m(xe, { children: [
|
|
6571
6577
|
/* @__PURE__ */ i("div", { className: "dhead dhead--listener dhead--cols", children: /* @__PURE__ */ m("div", { className: "gcolhead", children: [
|
|
6572
6578
|
/* @__PURE__ */ i("div", { className: "gcolhead__main", children: /* @__PURE__ */ m("div", { className: "gcolhead__col", children: [
|
|
6573
|
-
/* @__PURE__ */ i("div", { style: { flex: "none" }, children: /* @__PURE__ */ i(
|
|
6579
|
+
/* @__PURE__ */ i("div", { style: { flex: "none" }, children: /* @__PURE__ */ i(Fn, { dark: a, height: 20.38 }) }),
|
|
6574
6580
|
!r && /* @__PURE__ */ m("div", { className: "dhead__session", children: [
|
|
6575
6581
|
/* @__PURE__ */ i("span", { className: "t", children: n ? qe : "" }),
|
|
6576
6582
|
/* @__PURE__ */ i("span", { className: "s", children: n ? zs : "" })
|
|
@@ -6580,38 +6586,38 @@ function gd(t) {
|
|
|
6580
6586
|
] }) }),
|
|
6581
6587
|
/* @__PURE__ */ m("div", { className: "listenerlive listenerlive--cols listenerlive--pub", children: [
|
|
6582
6588
|
/* @__PURE__ */ m("div", { className: "listenerlive__main", children: [
|
|
6583
|
-
|
|
6589
|
+
yr,
|
|
6584
6590
|
!r && mn,
|
|
6585
6591
|
Ls,
|
|
6586
6592
|
p && /* @__PURE__ */ i("div", { className: "pubflash", children: p }),
|
|
6587
6593
|
!r && /* @__PURE__ */ i("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children: js }),
|
|
6588
6594
|
!r && /* @__PURE__ */ m("div", { className: "listenerlive__inner gdeskbar", "data-transport": "1", children: [
|
|
6589
|
-
Ue.can && /* @__PURE__ */ i("span", { className: "barchip", style: Ue.active ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)", borderRadius: 12 } : void 0, children: /* @__PURE__ */ i(
|
|
6595
|
+
Ue.can && /* @__PURE__ */ i("span", { className: "barchip", style: Ue.active ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)", borderRadius: 12 } : void 0, children: /* @__PURE__ */ i(Bn, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, onClick: Ue.onClick }) }),
|
|
6590
6596
|
Xr
|
|
6591
6597
|
] })
|
|
6592
6598
|
] }),
|
|
6593
|
-
pe && /* @__PURE__ */ m(
|
|
6594
|
-
!re.sidePanel &&
|
|
6599
|
+
pe && /* @__PURE__ */ m(tu, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
|
|
6600
|
+
!re.sidePanel && j,
|
|
6595
6601
|
!re.sidePanel && us,
|
|
6596
|
-
!re.sidePanel && Xt.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(
|
|
6602
|
+
!re.sidePanel && Xt.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(Xc, { col: io, order: ["summary", "export"], onPick: g, grip: { summary: 40, export: 28 }, render: (Re) => /* @__PURE__ */ i(vi, { panel: !0, children: es(Re) }) }) }),
|
|
6597
6603
|
re.sidePanel
|
|
6598
6604
|
] })
|
|
6599
6605
|
] }),
|
|
6600
6606
|
!_t && re.sheets,
|
|
6601
|
-
!(u && _t) &&
|
|
6607
|
+
!(u && _t) && pr,
|
|
6602
6608
|
_t,
|
|
6603
|
-
|
|
6609
|
+
Nr
|
|
6604
6610
|
] });
|
|
6605
6611
|
}
|
|
6606
|
-
const
|
|
6607
|
-
/* @__PURE__ */ i(
|
|
6612
|
+
const co = Xt.length > 0 && !f && /* @__PURE__ */ i("div", { className: "txwidget", children: /* @__PURE__ */ m(vi, { panel: !0, children: [
|
|
6613
|
+
/* @__PURE__ */ i(va, { tabs: Xt, current: M, onPick: g, gap: M !== "none" }),
|
|
6608
6614
|
M !== "none" && es(M)
|
|
6609
6615
|
] }) });
|
|
6610
6616
|
return /* @__PURE__ */ m(xe, { children: [
|
|
6611
|
-
/* @__PURE__ */ i(
|
|
6612
|
-
|
|
6617
|
+
/* @__PURE__ */ i(Pu, { dark: a, title: n ? qe : "", subline: n ? zs : "", onOptions: () => I(!0), optionsActive: V }),
|
|
6618
|
+
yr,
|
|
6613
6619
|
Ls,
|
|
6614
|
-
!r &&
|
|
6620
|
+
!r && co,
|
|
6615
6621
|
!r && us,
|
|
6616
6622
|
!r && /* @__PURE__ */ m("div", { style: { position: "relative", flex: 1, minHeight: 0, display: "flex", flexDirection: "column" }, children: [
|
|
6617
6623
|
mn,
|
|
@@ -6621,23 +6627,23 @@ function gd(t) {
|
|
|
6621
6627
|
!r && /* @__PURE__ */ m("div", { className: "gbottom", "data-transport": "1", children: [
|
|
6622
6628
|
zt && !Bt && /* @__PURE__ */ i("div", { className: "pubctl", children: Is(!1) }),
|
|
6623
6629
|
/* @__PURE__ */ m("div", { className: "gbottom__bar", children: [
|
|
6624
|
-
Ue.can && /* @__PURE__ */ i("div", { style: { flex: "none" }, children:
|
|
6630
|
+
Ue.can && /* @__PURE__ */ i("div", { style: { flex: "none" }, children: or({ width: 87 }, void 0) }),
|
|
6625
6631
|
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0 }, children: Xr })
|
|
6626
6632
|
] })
|
|
6627
6633
|
] }),
|
|
6628
6634
|
!_t && re.sheets,
|
|
6629
|
-
!(u && _t) &&
|
|
6635
|
+
!(u && _t) && pr,
|
|
6630
6636
|
_t,
|
|
6631
|
-
|
|
6637
|
+
Nr
|
|
6632
6638
|
] });
|
|
6633
6639
|
}
|
|
6634
|
-
function
|
|
6635
|
-
const [e, n] =
|
|
6640
|
+
function pd(t) {
|
|
6641
|
+
const [e, n] = z(null);
|
|
6636
6642
|
return x(() => {
|
|
6637
6643
|
if (!t || (e == null ? void 0 : e.url) === t && e.ok) return;
|
|
6638
6644
|
let r = !0, s;
|
|
6639
6645
|
const a = () => {
|
|
6640
|
-
|
|
6646
|
+
Co(t).then((o) => {
|
|
6641
6647
|
r && (n({ url: t, ok: o }), o || (s = setTimeout(a, 3e3)));
|
|
6642
6648
|
});
|
|
6643
6649
|
};
|
|
@@ -6646,64 +6652,64 @@ function md(t) {
|
|
|
6646
6652
|
};
|
|
6647
6653
|
}, [t, (e == null ? void 0 : e.url) === t && (e == null ? void 0 : e.ok)]), !t || (e == null ? void 0 : e.url) !== t ? "unknown" : e.ok ? "yes" : "no";
|
|
6648
6654
|
}
|
|
6649
|
-
function
|
|
6655
|
+
function Od({ site: t, size: e = 16, tinted: n = !1, style: r, className: s }) {
|
|
6650
6656
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: e, height: e, "aria-hidden": "true", className: s, style: { flex: "none", display: "block", color: n ? t.color : void 0, ...r }, children: /* @__PURE__ */ i("path", { d: t.glyph, fill: "currentColor", fillRule: "evenodd" }) });
|
|
6651
6657
|
}
|
|
6652
6658
|
export {
|
|
6653
|
-
|
|
6654
|
-
|
|
6655
|
-
|
|
6656
|
-
|
|
6657
|
-
|
|
6658
|
-
|
|
6659
|
-
|
|
6660
|
-
|
|
6661
|
-
|
|
6662
|
-
|
|
6663
|
-
|
|
6664
|
-
|
|
6665
|
-
|
|
6666
|
-
|
|
6667
|
-
|
|
6668
|
-
|
|
6669
|
-
|
|
6670
|
-
|
|
6671
|
-
|
|
6672
|
-
|
|
6673
|
-
|
|
6674
|
-
|
|
6675
|
-
|
|
6676
|
-
|
|
6659
|
+
Hc as ExportPanel,
|
|
6660
|
+
ba as FullVideo,
|
|
6661
|
+
$u as MiniPlayer,
|
|
6662
|
+
gu as MuteButton,
|
|
6663
|
+
Lu as NO_SEEK,
|
|
6664
|
+
fu as PAUSE_D,
|
|
6665
|
+
Mu as PLAY_D,
|
|
6666
|
+
zu as PUB_SIDE,
|
|
6667
|
+
Id as PanelSeek,
|
|
6668
|
+
nc as PlayerApiProvider,
|
|
6669
|
+
Hn as REMOVE_BG_LABEL,
|
|
6670
|
+
Nl as REMOVE_BG_NOTE,
|
|
6671
|
+
Ic as ReplayScrub,
|
|
6672
|
+
ia as SITES,
|
|
6673
|
+
Od as SiteIcon,
|
|
6674
|
+
Ec as SpeakerCast,
|
|
6675
|
+
Zc as SummaryPanel,
|
|
6676
|
+
zd as Transport,
|
|
6677
|
+
Ou as TxFind,
|
|
6678
|
+
bu as TxLines,
|
|
6679
|
+
bd as VocalStackPlayer,
|
|
6680
|
+
_c as VoiceSheetBody,
|
|
6681
|
+
hu as YtFollow,
|
|
6682
|
+
vl as bedNote,
|
|
6677
6683
|
dn as browserFull,
|
|
6678
|
-
|
|
6679
|
-
|
|
6684
|
+
Ko as hasEmbed,
|
|
6685
|
+
Wo as hostOfUrl,
|
|
6680
6686
|
Ft as lineEnd,
|
|
6681
|
-
|
|
6687
|
+
La as lineWords,
|
|
6682
6688
|
bt as pictureT,
|
|
6683
|
-
|
|
6684
|
-
|
|
6685
|
-
|
|
6686
|
-
|
|
6687
|
-
|
|
6689
|
+
Rn as placePosition,
|
|
6690
|
+
Pn as realFull,
|
|
6691
|
+
Ld as setErrorReporter,
|
|
6692
|
+
Ri as setFullTarget,
|
|
6693
|
+
jd as siteById,
|
|
6688
6694
|
Zt as siteOf,
|
|
6689
|
-
|
|
6690
|
-
|
|
6691
|
-
|
|
6692
|
-
|
|
6693
|
-
|
|
6694
|
-
|
|
6695
|
-
|
|
6696
|
-
|
|
6697
|
-
|
|
6698
|
-
|
|
6695
|
+
ou as snapPosition,
|
|
6696
|
+
Xo as sourceVideoUrl,
|
|
6697
|
+
Ui as spokenWordOf,
|
|
6698
|
+
wl as trackPlan,
|
|
6699
|
+
fa as useApi,
|
|
6700
|
+
Pc as useArchiveVoice,
|
|
6701
|
+
Cl as useBackgroundBed,
|
|
6702
|
+
Tu as useDuck,
|
|
6703
|
+
xu as useFindPull,
|
|
6704
|
+
mu as useFlash,
|
|
6699
6705
|
Gt as usePlayerApi,
|
|
6700
|
-
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
6707
|
-
|
|
6706
|
+
la as useSeparatedTrack,
|
|
6707
|
+
Wc as useSummaryIn,
|
|
6708
|
+
fc as useTranscript,
|
|
6709
|
+
wu as useTxPlayer,
|
|
6710
|
+
Iu as useTxVoice,
|
|
6711
|
+
Cc as useViewportTranslation,
|
|
6712
|
+
$c as useVoiceCatalogue,
|
|
6713
|
+
vu as useYtLead
|
|
6708
6714
|
};
|
|
6709
6715
|
//# sourceMappingURL=index.js.map
|