@vocalstack/player 0.1.0-alpha.2 → 0.1.0-alpha.4
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/core/voiceFollow.d.ts +1 -0
- package/dist/index.js +672 -673
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2,10 +2,10 @@ var Gi = Object.defineProperty;
|
|
|
2
2
|
var Zi = (t, e, n) => e in t ? Gi(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
|
|
3
3
|
var he = (t, e, n) => Zi(t, typeof e != "symbol" ? e + "" : e, n);
|
|
4
4
|
import { jsx as a, jsxs as f, Fragment as Pe } from "react/jsx-runtime";
|
|
5
|
-
import { useState as O, useRef as z, useEffect as E, useLayoutEffect as mn, createContext as
|
|
5
|
+
import { useState as O, useRef as z, useEffect as E, useLayoutEffect as mn, createContext as Bs, useMemo as ze, useContext as qi, useCallback as tt, Fragment as Ki } from "react";
|
|
6
6
|
import { createPortal as Ji } from "react-dom";
|
|
7
|
-
import { VocalStackError as
|
|
8
|
-
const Vs = "https://vocalstack.com", Xi = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", ea = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", ta = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", na = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
7
|
+
import { VocalStackError as Hs, VocalStack as Vs } from "@vocalstack/js-sdk";
|
|
8
|
+
const Fs = "https://vocalstack.com", Xi = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", ea = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", ta = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", na = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
9
9
|
function ra({ size: t = 16, sw: e = 1.5, children: n, style: r, ...s }) {
|
|
10
10
|
return /* @__PURE__ */ a("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
|
}
|
|
@@ -54,7 +54,7 @@ const K = {
|
|
|
54
54
|
function ue({ d: t, ...e }) {
|
|
55
55
|
return /* @__PURE__ */ a(ra, { ...e, children: (Array.isArray(t) ? t : [t]).map((n) => /* @__PURE__ */ a("path", { d: n }, n)) });
|
|
56
56
|
}
|
|
57
|
-
function
|
|
57
|
+
function Ws({ size: t = 13 }) {
|
|
58
58
|
return /* @__PURE__ */ a("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", style: { marginLeft: 2 }, "aria-hidden": "true", children: /* @__PURE__ */ a("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" }) });
|
|
59
59
|
}
|
|
60
60
|
function ct({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,127,.35)", sw: r }) {
|
|
@@ -84,18 +84,18 @@ function sa({ size: t = 12 }) {
|
|
|
84
84
|
}
|
|
85
85
|
function Vt({ dark: t, height: e = 20, link: n = !0 }) {
|
|
86
86
|
const r = /* @__PURE__ */ a("img", { src: t ? Xi : ea, alt: "VocalStack", decoding: "sync", style: { height: e, width: "auto", display: "block" } });
|
|
87
|
-
return n ? /* @__PURE__ */ a("a", { href:
|
|
87
|
+
return n ? /* @__PURE__ */ a("a", { href: Fs, style: { display: "block" }, children: r }) : r;
|
|
88
88
|
}
|
|
89
|
-
function
|
|
89
|
+
function Gs({ dark: t, size: e = 30 }) {
|
|
90
90
|
return /* @__PURE__ */ a("img", { src: t ? ta : na, alt: "VocalStack", style: { width: e, height: Math.round(e * 26 / 30 * 100) / 100, display: "block" } });
|
|
91
91
|
}
|
|
92
|
-
function
|
|
92
|
+
function Ts({ children: t, panel: e, inset: n, className: r = "", style: s }) {
|
|
93
93
|
return /* @__PURE__ */ a("div", { className: `vs-card${e ? " panel" : ""}${n ? " vs-card--inset" : ""} ${r}`, style: s, children: t });
|
|
94
94
|
}
|
|
95
95
|
function Pt({ checked: t, onChange: e, label: n, disabled: r }) {
|
|
96
96
|
return /* @__PURE__ */ a("button", { type: "button", role: "switch", "aria-checked": t, "aria-label": n, className: "vs-toggle", disabled: r, onClick: () => e(!t), children: /* @__PURE__ */ a("span", { className: "vs-toggle__knob" }) });
|
|
97
97
|
}
|
|
98
|
-
function
|
|
98
|
+
function Ls({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill: i }) {
|
|
99
99
|
const o = z(null), [l, c] = O(null), u = Math.max(0, n.findIndex((d) => d.value === t));
|
|
100
100
|
return mn(() => {
|
|
101
101
|
const d = o.current;
|
|
@@ -210,15 +210,15 @@ function Nn({ open: t, onClose: e, title: n, titleNode: r, note: s, doneLabel: i
|
|
|
210
210
|
/* @__PURE__ */ a("div", { className: "vs-sheet__body", children: o })
|
|
211
211
|
] }) }) : null;
|
|
212
212
|
}
|
|
213
|
-
|
|
213
|
+
Bs(0);
|
|
214
214
|
function er({ children: t, style: e, className: n }) {
|
|
215
215
|
return /* @__PURE__ */ a("div", { className: n ? `eyebrow ${n}` : "eyebrow", style: e, children: t });
|
|
216
216
|
}
|
|
217
217
|
let Mn = null;
|
|
218
|
-
function
|
|
218
|
+
function Lc(t) {
|
|
219
219
|
Mn = t;
|
|
220
220
|
}
|
|
221
|
-
function
|
|
221
|
+
function Zs(t) {
|
|
222
222
|
Mn == null || Mn(t);
|
|
223
223
|
}
|
|
224
224
|
function yn() {
|
|
@@ -251,7 +251,7 @@ function da(t, e, n = {}) {
|
|
|
251
251
|
const r = new URLSearchParams({ kind: "delivery", format: yn() });
|
|
252
252
|
return 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}`;
|
|
253
253
|
}
|
|
254
|
-
function
|
|
254
|
+
function ws(t, e, n = {}, r = "background") {
|
|
255
255
|
const s = new URLSearchParams({ kind: r, format: yn() });
|
|
256
256
|
return 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}`;
|
|
257
257
|
}
|
|
@@ -268,11 +268,11 @@ function ga(t, e, n, r, s, i) {
|
|
|
268
268
|
}
|
|
269
269
|
function ha(t, e = !0) {
|
|
270
270
|
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";
|
|
271
|
-
return e &&
|
|
271
|
+
return e && qs(t), `The audio could not be played: ${r}.`;
|
|
272
272
|
}
|
|
273
|
-
function
|
|
273
|
+
function qs(t) {
|
|
274
274
|
const e = (t == null ? void 0 : t.code) ?? 0;
|
|
275
|
-
e !== 1 &&
|
|
275
|
+
e !== 1 && Zs(new Error(`media error ${e}${t != null && t.message ? `: ${t.message}` : ""}`));
|
|
276
276
|
}
|
|
277
277
|
const fa = 3e3;
|
|
278
278
|
function Na(t, e, n) {
|
|
@@ -375,13 +375,13 @@ class pa {
|
|
|
375
375
|
}).catch(() => r(n.signal.aborted ? null : { state: "failed", at: this.now() }));
|
|
376
376
|
}
|
|
377
377
|
}
|
|
378
|
-
const
|
|
379
|
-
function
|
|
380
|
-
if (!
|
|
378
|
+
const Ks = { video: !1 };
|
|
379
|
+
function Js(t) {
|
|
380
|
+
if (!Ks.video) return new Audio(t);
|
|
381
381
|
const e = document.createElement("video");
|
|
382
382
|
return e.playsInline = !0, t && (e.src = t), e;
|
|
383
383
|
}
|
|
384
|
-
class
|
|
384
|
+
class Xs extends Error {
|
|
385
385
|
constructor() {
|
|
386
386
|
super("The voice did not start in time."), this.name = "VoiceNotStarted";
|
|
387
387
|
}
|
|
@@ -784,7 +784,7 @@ const Xe = class Xe {
|
|
|
784
784
|
}, i);
|
|
785
785
|
return;
|
|
786
786
|
}
|
|
787
|
-
this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new
|
|
787
|
+
this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new Xs()), this.onSentence(e);
|
|
788
788
|
return;
|
|
789
789
|
}
|
|
790
790
|
const o = (this.retries.get(e) ?? 0) + 1;
|
|
@@ -812,7 +812,7 @@ const Xe = class Xe {
|
|
|
812
812
|
}
|
|
813
813
|
element() {
|
|
814
814
|
if (this.el) return this.el;
|
|
815
|
-
const e =
|
|
815
|
+
const e = Js();
|
|
816
816
|
e.preload = "auto";
|
|
817
817
|
const n = e;
|
|
818
818
|
return n.dataset && (n.dataset.vsVoice = "1"), e.playsInline = !0, e.onplaying = () => {
|
|
@@ -866,7 +866,7 @@ const Xe = class Xe {
|
|
|
866
866
|
};
|
|
867
867
|
he(Xe, "WAIT_MS", 15e3), he(Xe, "START_WAIT_MS", 4e3), he(Xe, "COMING_MS", 12e4), he(Xe, "SKEW_LINES", 3), he(Xe, "RETRIES", 4), he(Xe, "RETRY_MS", 1200), he(Xe, "STARTING_MS", 3e5);
|
|
868
868
|
let tr = Xe;
|
|
869
|
-
function
|
|
869
|
+
function ei(t, e) {
|
|
870
870
|
return e == null ? t.find((n) => !n.voiceKey) ?? null : t.find((n) => n.voiceKey === e) ?? t.find((n) => !n.voiceKey && n.voice === e) ?? null;
|
|
871
871
|
}
|
|
872
872
|
function ma(t, e, n, r = {}, s) {
|
|
@@ -892,7 +892,7 @@ function ma(t, e, n, r = {}, s) {
|
|
|
892
892
|
});
|
|
893
893
|
});
|
|
894
894
|
}
|
|
895
|
-
function
|
|
895
|
+
function ti(t, e) {
|
|
896
896
|
const n = e.words;
|
|
897
897
|
if (n && n.length === t.length && t.length > 0) {
|
|
898
898
|
let r = 0;
|
|
@@ -919,7 +919,7 @@ function sr(t, e) {
|
|
|
919
919
|
return e;
|
|
920
920
|
}
|
|
921
921
|
}
|
|
922
|
-
function
|
|
922
|
+
function ni(t, e) {
|
|
923
923
|
try {
|
|
924
924
|
e == null ? localStorage.removeItem(t) : localStorage.setItem(t, JSON.stringify(e));
|
|
925
925
|
} catch {
|
|
@@ -934,12 +934,12 @@ function gr(t, e) {
|
|
|
934
934
|
rr.delete(s), window.removeEventListener("storage", s);
|
|
935
935
|
};
|
|
936
936
|
}, [t]), [n, (s) => {
|
|
937
|
-
r(s),
|
|
937
|
+
r(s), ni(t, s);
|
|
938
938
|
}];
|
|
939
939
|
}
|
|
940
|
-
function
|
|
940
|
+
function ks(t) {
|
|
941
941
|
const e = sr(nr, []);
|
|
942
|
-
|
|
942
|
+
ni(nr, Array.isArray(e) ? e.filter((n) => n !== t) : []);
|
|
943
943
|
}
|
|
944
944
|
function Ta() {
|
|
945
945
|
const [t, e] = gr(nr, []), n = Array.isArray(t) ? t : [];
|
|
@@ -961,21 +961,21 @@ function va(t) {
|
|
|
961
961
|
const [e, n] = gr(t === "ga" ? "vs.colW.ga" : "vs.colW", null);
|
|
962
962
|
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : ka, n];
|
|
963
963
|
}
|
|
964
|
-
function
|
|
964
|
+
function ri({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPlaceholder: i = "Search languages", none: o, pinned: l = [], recent: c = [], requireVoice: u, keepOpen: d, busy: g }) {
|
|
965
965
|
const [M, p] = O(""), [y, j] = O(!1), [T, N] = O(null);
|
|
966
966
|
E(() => {
|
|
967
967
|
t && (p(""), j(!1), N(null));
|
|
968
968
|
}, [t]);
|
|
969
|
-
const h =
|
|
969
|
+
const h = ze(() => {
|
|
970
970
|
const b = M.trim().toLowerCase();
|
|
971
971
|
return [...b ? s.filter((v) => v.label.toLowerCase().includes(b) || v.native.toLowerCase().includes(b) || v.code.toLowerCase().includes(b)) : s].sort((v, S) => {
|
|
972
972
|
const ne = l.indexOf(v.code), $ = l.indexOf(S.code);
|
|
973
973
|
return ne !== -1 || $ !== -1 ? (ne === -1 ? 999 : ne) - ($ === -1 ? 999 : $) : v.label.localeCompare(S.label);
|
|
974
974
|
});
|
|
975
|
-
}, [s, M, l]), C =
|
|
975
|
+
}, [s, M, l]), C = ze(
|
|
976
976
|
() => M ? [] : c.map((b) => h.find((Q) => Q.code === b)).filter((b) => !!b).sort((b, Q) => b.label.localeCompare(Q.label)),
|
|
977
977
|
[c, h, M]
|
|
978
|
-
), D =
|
|
978
|
+
), D = ze(() => C.length ? h.filter((b) => !C.some((Q) => Q.code === b.code)) : h, [h, C]), k = y || M ? D : D.slice(0, 12), te = D.length - k.length, R = (b, Q = !1) => {
|
|
979
979
|
const L = !!u && !b.voice;
|
|
980
980
|
return /* @__PURE__ */ f(
|
|
981
981
|
"button",
|
|
@@ -997,9 +997,9 @@ function ni({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
997
997
|
/* @__PURE__ */ a("div", { className: "vs-picker__native", children: b.native })
|
|
998
998
|
] }),
|
|
999
999
|
/* @__PURE__ */ a("span", { className: "vs-picker__slot", children: Q && /* @__PURE__ */ a("span", { className: "vs-picker__forget", role: "button", tabIndex: 0, title: `Remove ${b.label} from recent`, "aria-label": `Remove ${b.label} from recent`, onClick: (v) => {
|
|
1000
|
-
v.stopPropagation(),
|
|
1000
|
+
v.stopPropagation(), ks(b.code);
|
|
1001
1001
|
}, onKeyDown: (v) => {
|
|
1002
|
-
(v.key === "Enter" || v.key === " ") && (v.preventDefault(), v.stopPropagation(),
|
|
1002
|
+
(v.key === "Enter" || v.key === " ") && (v.preventDefault(), v.stopPropagation(), ks(b.code));
|
|
1003
1003
|
}, children: /* @__PURE__ */ a(ue, { d: K.close, size: 16 }) }) }),
|
|
1004
1004
|
/* @__PURE__ */ a("span", { className: `vs-picker__slot${L ? " vs-picker__slot--wide" : ""}`, title: b.voice ? "Voice available" : L ? "No voice speaks this language yet" : void 0, children: L ? T === b.code && /* @__PURE__ */ a("span", { className: "vs-picker__off", children: "UNAVAILABLE" }) : b.voice && /* @__PURE__ */ a(ue, { d: K.headphones, size: 16 }) }),
|
|
1005
1005
|
/* @__PURE__ */ a("span", { className: "vs-picker__check", children: n === b.code && (g === b.code ? /* @__PURE__ */ a(ct, { size: 15, color: "var(--vs-link-hover)", track: "var(--vs-border)" }) : /* @__PURE__ */ a(ue, { d: K.check, size: 16, sw: 2.2 })) })
|
|
@@ -1043,15 +1043,15 @@ function ni({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
1043
1043
|
return { search: X, list: I };
|
|
1044
1044
|
}
|
|
1045
1045
|
function ja({ open: t, onClose: e, title: n, note: r, sticky: s, ...i }) {
|
|
1046
|
-
const { search: o, list: l } =
|
|
1046
|
+
const { search: o, list: l } = ri({ ...i, open: t, onClose: e });
|
|
1047
1047
|
return /* @__PURE__ */ a(Nn, { open: t, onClose: e, title: n, note: r, drawer: !1, sticky: s, kind: "picker", header: o, children: l });
|
|
1048
1048
|
}
|
|
1049
1049
|
const za = 0.3;
|
|
1050
|
-
function
|
|
1050
|
+
function vs(t, e) {
|
|
1051
1051
|
t.muted = e.muted, Math.abs(t.currentTime - e.t) > za && (t.currentTime = Math.max(0, e.t)), e.playing ? t.paused && Promise.resolve(t.play()).catch(() => {
|
|
1052
1052
|
}) : t.paused || t.pause();
|
|
1053
1053
|
}
|
|
1054
|
-
const
|
|
1054
|
+
const js = "Remove background sound", Ia = "Takes out everything that isn't speech: music, ambience and noise.";
|
|
1055
1055
|
function Oa(t) {
|
|
1056
1056
|
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");
|
|
1057
1057
|
return n ? `${n}:${String(r).padStart(2, "0")}:${s}` : `${r}:${s}`;
|
|
@@ -1112,7 +1112,7 @@ async function Ua(t) {
|
|
|
1112
1112
|
function Fn(t) {
|
|
1113
1113
|
t && (t.pause(), t.removeAttribute("src"), t.load());
|
|
1114
1114
|
}
|
|
1115
|
-
function
|
|
1115
|
+
function si(t, e) {
|
|
1116
1116
|
const [n, r] = O("off"), [s, i] = O([]), [o, l] = O(!1), c = z(null), u = z([null, null]), d = z([NaN, NaN]), g = z(0);
|
|
1117
1117
|
return E(() => {
|
|
1118
1118
|
if (i([]), l(!1), !t) {
|
|
@@ -1151,7 +1151,7 @@ function ri(t, e) {
|
|
|
1151
1151
|
for (const N of u.current) N && !N.paused && N.pause();
|
|
1152
1152
|
};
|
|
1153
1153
|
if (n === "ready" && c.current) {
|
|
1154
|
-
M(),
|
|
1154
|
+
M(), vs(c.current, e), l(!0);
|
|
1155
1155
|
return;
|
|
1156
1156
|
}
|
|
1157
1157
|
const p = n === "making" ? Ya(s, e.t) : -1;
|
|
@@ -1166,20 +1166,20 @@ function ri(t, e) {
|
|
|
1166
1166
|
}
|
|
1167
1167
|
g.current = y.play;
|
|
1168
1168
|
const j = u.current[y.play], T = u.current[1 - y.play];
|
|
1169
|
-
T && !T.paused && T.pause(),
|
|
1169
|
+
T && !T.paused && T.pause(), vs(j, { ...e, t: e.t - s[p].startS }), l(!e.playing || j.readyState >= 3);
|
|
1170
1170
|
}, [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 };
|
|
1171
1171
|
}
|
|
1172
1172
|
function Ra(t, e) {
|
|
1173
|
-
return
|
|
1173
|
+
return si(t, e).state;
|
|
1174
1174
|
}
|
|
1175
1175
|
const Pa = 0.5, Qa = 3;
|
|
1176
|
-
function
|
|
1176
|
+
function hr(t, e) {
|
|
1177
1177
|
let n = -1;
|
|
1178
1178
|
for (let r = 0; r < t.length && t[r].start <= e + 0.02; r++) n = r;
|
|
1179
1179
|
return n;
|
|
1180
1180
|
}
|
|
1181
1181
|
function $a(t, e, n) {
|
|
1182
|
-
const r =
|
|
1182
|
+
const r = hr(t, n);
|
|
1183
1183
|
if (r < 0) return { kind: "none" };
|
|
1184
1184
|
const s = t[r];
|
|
1185
1185
|
if (n >= s.end) return { kind: "none" };
|
|
@@ -1196,16 +1196,23 @@ function $a(t, e, n) {
|
|
|
1196
1196
|
}
|
|
1197
1197
|
return { kind: "done", sid: s.sid };
|
|
1198
1198
|
}
|
|
1199
|
-
function Ba(t, e, n
|
|
1200
|
-
|
|
1199
|
+
function Ba(t, e, n) {
|
|
1200
|
+
if (n == null) return !1;
|
|
1201
|
+
const r = hr(t, e);
|
|
1202
|
+
if (r < 0) return !1;
|
|
1203
|
+
const s = t[r];
|
|
1204
|
+
return e >= s.end ? s.sid === n : r > 0 && t[r - 1].sid === n && e - s.start < 1.5;
|
|
1205
|
+
}
|
|
1206
|
+
function Ha(t, e, n, r = Qa) {
|
|
1207
|
+
const s = Math.max(0, hr(t, n)), i = [];
|
|
1201
1208
|
for (let o = s; o < t.length && o <= s + r; o++) {
|
|
1202
1209
|
const l = (e.get(t[o].sid) ?? []).find((c) => c.part === 0);
|
|
1203
1210
|
l && i.push(l.src);
|
|
1204
1211
|
}
|
|
1205
1212
|
return i;
|
|
1206
1213
|
}
|
|
1207
|
-
function
|
|
1208
|
-
const e =
|
|
1214
|
+
function Va(t) {
|
|
1215
|
+
const e = ze(() => {
|
|
1209
1216
|
const c = /* @__PURE__ */ new Map();
|
|
1210
1217
|
for (const u of t.clips) c.set(u.sentenceId, [...c.get(u.sentenceId) ?? [], u]);
|
|
1211
1218
|
return c;
|
|
@@ -1227,7 +1234,7 @@ function Ha(t) {
|
|
|
1227
1234
|
}
|
|
1228
1235
|
const c = $a(t.lines, e, t.t), u = c.kind === "missing" ? c.sid : null, d = c.kind === "none" ? null : c.sid;
|
|
1229
1236
|
i((y) => y.missing === u && y.sid === d ? y : { missing: u, sid: d });
|
|
1230
|
-
const g = new Set(
|
|
1237
|
+
const g = new Set(Ha(t.lines, e, t.t));
|
|
1231
1238
|
for (const y of g) o(y);
|
|
1232
1239
|
const M = r.current;
|
|
1233
1240
|
M && g.add(M.src);
|
|
@@ -1237,9 +1244,8 @@ function Ha(t) {
|
|
|
1237
1244
|
return;
|
|
1238
1245
|
}
|
|
1239
1246
|
if (c.kind !== "play") {
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
y || (r.current = null);
|
|
1247
|
+
if (M && !M.el.paused && !M.el.ended && Ba(t.lines, t.t, M.sid)) return;
|
|
1248
|
+
M && M.el.pause(), r.current = null;
|
|
1243
1249
|
return;
|
|
1244
1250
|
}
|
|
1245
1251
|
if (M && M.src === c.src) {
|
|
@@ -1259,12 +1265,12 @@ function Ha(t) {
|
|
|
1259
1265
|
p.currentTime = c.offset;
|
|
1260
1266
|
} catch {
|
|
1261
1267
|
}
|
|
1262
|
-
r.current = { src: c.src, el: p }, p.play().catch(() => {
|
|
1268
|
+
r.current = { src: c.src, sid: c.sid, el: p }, p.play().catch(() => {
|
|
1263
1269
|
});
|
|
1264
1270
|
}, [t.on, t.t, t.playing, t.muted, t.lines, e]), s;
|
|
1265
1271
|
}
|
|
1266
|
-
const
|
|
1267
|
-
function
|
|
1272
|
+
const zs = ["play", "pause", "stop", "nexttrack", "previoustrack"];
|
|
1273
|
+
function Fa(t, e) {
|
|
1268
1274
|
var n, r;
|
|
1269
1275
|
if (t === "play") {
|
|
1270
1276
|
e.playing || e.toggle();
|
|
@@ -1280,31 +1286,31 @@ function Va(t, e) {
|
|
|
1280
1286
|
}
|
|
1281
1287
|
(r = e.prev) == null || r.call(e);
|
|
1282
1288
|
}
|
|
1283
|
-
function
|
|
1284
|
-
for (const n of
|
|
1289
|
+
function Wa(t, e) {
|
|
1290
|
+
for (const n of zs)
|
|
1285
1291
|
try {
|
|
1286
1292
|
t.setActionHandler(n, () => {
|
|
1287
1293
|
const r = e();
|
|
1288
|
-
r &&
|
|
1294
|
+
r && Fa(n, r);
|
|
1289
1295
|
});
|
|
1290
1296
|
} catch {
|
|
1291
1297
|
}
|
|
1292
1298
|
return () => {
|
|
1293
|
-
for (const n of
|
|
1299
|
+
for (const n of zs)
|
|
1294
1300
|
try {
|
|
1295
1301
|
t.setActionHandler(n, null);
|
|
1296
1302
|
} catch {
|
|
1297
1303
|
}
|
|
1298
1304
|
};
|
|
1299
1305
|
}
|
|
1300
|
-
function
|
|
1306
|
+
function Ga(t, e) {
|
|
1301
1307
|
const n = z(t);
|
|
1302
1308
|
n.current = t;
|
|
1303
1309
|
const r = !!t;
|
|
1304
1310
|
E(() => {
|
|
1305
1311
|
const i = typeof navigator < "u" ? navigator.mediaSession : void 0;
|
|
1306
1312
|
if (!(!i || !r))
|
|
1307
|
-
return
|
|
1313
|
+
return Wa(i, () => n.current);
|
|
1308
1314
|
}, [r]);
|
|
1309
1315
|
const s = !!(t != null && t.playing);
|
|
1310
1316
|
E(() => {
|
|
@@ -1336,7 +1342,7 @@ function _t() {
|
|
|
1336
1342
|
spans: []
|
|
1337
1343
|
};
|
|
1338
1344
|
}
|
|
1339
|
-
function
|
|
1345
|
+
function Za(t, e) {
|
|
1340
1346
|
for (const r of t.spans) {
|
|
1341
1347
|
const s = r.mediaEnd ?? 1 / 0;
|
|
1342
1348
|
if (e < s || r.mediaEnd == null) return r.wallStart + Math.max(0, e - r.mediaStart);
|
|
@@ -1409,11 +1415,11 @@ function Wn(t, e) {
|
|
|
1409
1415
|
])
|
|
1410
1416
|
), n;
|
|
1411
1417
|
}
|
|
1412
|
-
function
|
|
1418
|
+
function Is(t, e) {
|
|
1413
1419
|
const n = e ?? {};
|
|
1414
1420
|
return !t || !Object.keys(t).length ? n : Object.keys(n).length ? { ...t, ...n } : t;
|
|
1415
1421
|
}
|
|
1416
|
-
function
|
|
1422
|
+
function qa(t, e) {
|
|
1417
1423
|
const n = e.tail;
|
|
1418
1424
|
if (!n || !Array.isArray(n.words) || n.replaced !== t.length || n.words.length !== t.length) return !1;
|
|
1419
1425
|
let r = !1;
|
|
@@ -1430,7 +1436,7 @@ function Za(t, e) {
|
|
|
1430
1436
|
}
|
|
1431
1437
|
return r;
|
|
1432
1438
|
}
|
|
1433
|
-
function
|
|
1439
|
+
function Ka(t, e) {
|
|
1434
1440
|
var n;
|
|
1435
1441
|
switch (delete t.numbers, e.type) {
|
|
1436
1442
|
case "transcript.committed": {
|
|
@@ -1450,7 +1456,7 @@ function qa(t, e) {
|
|
|
1450
1456
|
confidence: r.confidence ?? (s == null ? void 0 : s.confidence),
|
|
1451
1457
|
latencyS: r.latencyS,
|
|
1452
1458
|
language: r.language,
|
|
1453
|
-
translations:
|
|
1459
|
+
translations: Is(s == null ? void 0 : s.translations, r.translations),
|
|
1454
1460
|
scriptPos: r.scriptPos ?? (s == null ? void 0 : s.scriptPos),
|
|
1455
1461
|
scriptFrom: r.scriptPos != null ? r.scriptFrom ?? void 0 : s == null ? void 0 : s.scriptFrom
|
|
1456
1462
|
}), r.speakerName && (t.speakers[r.speaker] = r.speakerName);
|
|
@@ -1471,7 +1477,7 @@ function qa(t, e) {
|
|
|
1471
1477
|
}
|
|
1472
1478
|
case "transcript.amended": {
|
|
1473
1479
|
const r = t.segments.get(e.seq);
|
|
1474
|
-
if (r && r.corrected &&
|
|
1480
|
+
if (r && r.corrected && qa(r.words, e)) {
|
|
1475
1481
|
r.text = e.text, r.words = Bt(e.seq, e.tail.words);
|
|
1476
1482
|
break;
|
|
1477
1483
|
}
|
|
@@ -1519,7 +1525,7 @@ function qa(t, e) {
|
|
|
1519
1525
|
seqs: r.seqs,
|
|
1520
1526
|
speaker: r.speaker,
|
|
1521
1527
|
start: r.start,
|
|
1522
|
-
wallStart:
|
|
1528
|
+
wallStart: Za(t, r.start),
|
|
1523
1529
|
text: i ? s.text : r.text,
|
|
1524
1530
|
status: r.status === "open" ? "open" : "closed",
|
|
1525
1531
|
settled: !!r.settled,
|
|
@@ -1528,7 +1534,7 @@ function qa(t, e) {
|
|
|
1528
1534
|
suppressed: !!r.suppressed,
|
|
1529
1535
|
unclear: !!r.unclear,
|
|
1530
1536
|
language: r.language,
|
|
1531
|
-
translations: i ? s.translations :
|
|
1537
|
+
translations: i ? s.translations : Is(s == null ? void 0 : s.translations, r.translations),
|
|
1532
1538
|
provisional: !!r.provisional,
|
|
1533
1539
|
translationLatencyS: r.translationLatencyS
|
|
1534
1540
|
}), r.speakerName && (t.speakers[r.speaker] = r.speakerName), r.settled) for (const o of r.seqs) {
|
|
@@ -1571,7 +1577,7 @@ function qa(t, e) {
|
|
|
1571
1577
|
}
|
|
1572
1578
|
return typeof e.seq == "number" && (t.lastSeq = Math.max(t.lastSeq, e.seq)), t;
|
|
1573
1579
|
}
|
|
1574
|
-
function
|
|
1580
|
+
function Ja(t) {
|
|
1575
1581
|
const e = [], n = [...t.sentences.values()].sort((r, s) => r.start - s.start || (r.sentenceId ?? 0) - (s.sentenceId ?? 0));
|
|
1576
1582
|
for (const r of n) {
|
|
1577
1583
|
const s = r.seqs.map((l) => t.segments.get(l)).filter(Boolean), i = s.length === r.seqs.length || !r.text ? s.flatMap((l) => l.words) : [], o = s[s.length - 1];
|
|
@@ -1584,16 +1590,16 @@ function Ka(t) {
|
|
|
1584
1590
|
catchup: s.some((l) => l.catchup),
|
|
1585
1591
|
suppressed: r.suppressed || s.length > 0 && s.every((l) => l.suppressed),
|
|
1586
1592
|
unclear: r.unclear || s.length > 0 && s.every((l) => l.unclear),
|
|
1587
|
-
confidence:
|
|
1593
|
+
confidence: Xa(s),
|
|
1588
1594
|
latencyS: o == null ? void 0 : o.latencyS,
|
|
1589
1595
|
settled: r.settled || s.length > 0 && s.every((l) => l.settled),
|
|
1590
|
-
translations: Object.keys(r.translations).length ? r.translations :
|
|
1596
|
+
translations: Object.keys(r.translations).length ? r.translations : eo(s),
|
|
1591
1597
|
speaker: r.speaker >= 0 ? r.speaker : (o == null ? void 0 : o.speaker) ?? -1
|
|
1592
1598
|
});
|
|
1593
1599
|
}
|
|
1594
1600
|
return e.sort((r, s) => r.start - s.start), e;
|
|
1595
1601
|
}
|
|
1596
|
-
function
|
|
1602
|
+
function Xa(t) {
|
|
1597
1603
|
let e = 0, n = 0;
|
|
1598
1604
|
for (const r of t) {
|
|
1599
1605
|
if (r.confidence == null) continue;
|
|
@@ -1602,20 +1608,20 @@ function Ja(t) {
|
|
|
1602
1608
|
}
|
|
1603
1609
|
return n ? e / n : void 0;
|
|
1604
1610
|
}
|
|
1605
|
-
function
|
|
1611
|
+
function eo(t) {
|
|
1606
1612
|
const e = {};
|
|
1607
1613
|
for (const n of t) for (const [r, s] of Object.entries(n.translations)) e[r] = e[r] ? `${e[r]} ${s}` : s;
|
|
1608
1614
|
return e;
|
|
1609
1615
|
}
|
|
1610
|
-
const
|
|
1611
|
-
function
|
|
1612
|
-
return t == null ? "" : t <
|
|
1616
|
+
const to = 0.85, no = 0.75;
|
|
1617
|
+
function ro(t) {
|
|
1618
|
+
return t == null ? "" : t < no ? "low" : t < to ? "mid" : "";
|
|
1613
1619
|
}
|
|
1614
1620
|
const dn = ["a", "b", "c", "d", "e", "f", "g", "h"];
|
|
1615
|
-
function
|
|
1621
|
+
function so(t) {
|
|
1616
1622
|
return dn[(t % dn.length + dn.length) % dn.length];
|
|
1617
1623
|
}
|
|
1618
|
-
function
|
|
1624
|
+
function io(t) {
|
|
1619
1625
|
if (t.numbers) return t.numbers;
|
|
1620
1626
|
const e = /* @__PURE__ */ new Map(), n = (i, o) => {
|
|
1621
1627
|
if (i < 0) return;
|
|
@@ -1631,18 +1637,18 @@ function so(t) {
|
|
|
1631
1637
|
}
|
|
1632
1638
|
function pn(t, e) {
|
|
1633
1639
|
if (e < 0) return 0;
|
|
1634
|
-
const n =
|
|
1640
|
+
const n = io(t);
|
|
1635
1641
|
return n.get(e) ?? n.size + 1 + e;
|
|
1636
1642
|
}
|
|
1637
|
-
const
|
|
1638
|
-
function
|
|
1639
|
-
return t && t.trim() && !
|
|
1643
|
+
const ao = /^\s*speaker\s+\d+\s*$/i;
|
|
1644
|
+
function Os(t) {
|
|
1645
|
+
return t && t.trim() && !ao.test(t) ? t : void 0;
|
|
1640
1646
|
}
|
|
1641
1647
|
function ii(t, e) {
|
|
1642
1648
|
var n;
|
|
1643
|
-
return
|
|
1649
|
+
return Os(t.speakers[e]) ?? Os((n = t.speakerIds[e]) == null ? void 0 : n.name);
|
|
1644
1650
|
}
|
|
1645
|
-
function
|
|
1651
|
+
function fr(t, e) {
|
|
1646
1652
|
return e < 0 ? "" : ii(t, e) ?? `Speaker ${pn(t, e)}`;
|
|
1647
1653
|
}
|
|
1648
1654
|
function ai(t, e) {
|
|
@@ -1650,7 +1656,7 @@ function ai(t, e) {
|
|
|
1650
1656
|
const n = ii(t, e);
|
|
1651
1657
|
return n ? (n.split(" ").filter(Boolean).slice(0, 2).map((s) => s[0]).join("") || `S${pn(t, e)}`).toUpperCase() : `S${pn(t, e)}`;
|
|
1652
1658
|
}
|
|
1653
|
-
function
|
|
1659
|
+
function oo(t) {
|
|
1654
1660
|
if (t) {
|
|
1655
1661
|
if (t.startsWith("#"))
|
|
1656
1662
|
return { fg: t, soft: `color-mix(in srgb, ${t} 16%, transparent)` };
|
|
@@ -1658,11 +1664,11 @@ function ao(t) {
|
|
|
1658
1664
|
return { fg: `var(--vx-${t})`, soft: `var(--vx-${t}-soft)` };
|
|
1659
1665
|
}
|
|
1660
1666
|
}
|
|
1661
|
-
function
|
|
1662
|
-
const n = t.speakerIds[e], r =
|
|
1663
|
-
return { fg: r == null ? void 0 : r.fg, soft: r == null ? void 0 : r.soft, lane:
|
|
1667
|
+
function Nr(t, e) {
|
|
1668
|
+
const n = t.speakerIds[e], r = oo(n == null ? void 0 : n.color);
|
|
1669
|
+
return { fg: r == null ? void 0 : r.fg, soft: r == null ? void 0 : r.soft, lane: so(pn(t, e) - 1), hasVoice: !!n };
|
|
1664
1670
|
}
|
|
1665
|
-
function
|
|
1671
|
+
function lo(t, e, n, r = !1) {
|
|
1666
1672
|
const s = n ? n.speakerLabels ?? "auto" : null, i = (r ? s : null) ?? t.labels ?? s ?? "on";
|
|
1667
1673
|
if (i !== "auto") return i === "on";
|
|
1668
1674
|
const o = /* @__PURE__ */ new Set();
|
|
@@ -1670,7 +1676,7 @@ function oo(t, e, n, r = !1) {
|
|
|
1670
1676
|
return !0;
|
|
1671
1677
|
return !1;
|
|
1672
1678
|
}
|
|
1673
|
-
const
|
|
1679
|
+
const co = /* @__PURE__ */ new Set([
|
|
1674
1680
|
"invalid_audio",
|
|
1675
1681
|
"invalid_options",
|
|
1676
1682
|
"invalid_token",
|
|
@@ -1702,7 +1708,7 @@ const lo = /* @__PURE__ */ new Set([
|
|
|
1702
1708
|
engine_lost: "The transcription engine stopped. Please try again.",
|
|
1703
1709
|
capacity_exceeded: "Every transcription engine is busy right now. Please try again in a moment.",
|
|
1704
1710
|
timeout: "That took too long. Please try again."
|
|
1705
|
-
}, ir = oi.internal, Gn = "Can't reach VocalStack. Check your connection.",
|
|
1711
|
+
}, ir = oi.internal, Gn = "Can't reach VocalStack. Check your connection.", Cs = {
|
|
1706
1712
|
NotAllowedError: "The browser blocked this. Allow it for this site, then try again.",
|
|
1707
1713
|
NotSupportedError: "This browser cannot play this.",
|
|
1708
1714
|
AbortError: "It was cancelled."
|
|
@@ -1710,45 +1716,45 @@ const lo = /* @__PURE__ */ new Set([
|
|
|
1710
1716
|
function yt(t) {
|
|
1711
1717
|
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;
|
|
1712
1718
|
if (n || r && r >= 400)
|
|
1713
|
-
return n &&
|
|
1719
|
+
return n && co.has(n) && typeof (e == null ? void 0 : e.message) == "string" ? { message: e.message, code: n, status: r, details: s } : n === "unavailable" && r === void 0 ? { message: Gn, code: n, details: s } : r === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : Gn, code: n, status: r, details: s } : { message: n && oi[n] || ir, code: n, status: r, details: s };
|
|
1714
1720
|
const i = (e == null ? void 0 : e.name) ?? "";
|
|
1715
|
-
return i === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 &&
|
|
1721
|
+
return i === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && Zs(t instanceof Error ? t : new Error(String(t))), { message: Gn }) : Cs[i] ? { message: Cs[i] } : t instanceof Error && i === "Error" && !(t instanceof Hs) ? { message: t.message } : { message: ir };
|
|
1716
1722
|
}
|
|
1717
|
-
const li = "https://api.vocalstack.com",
|
|
1723
|
+
const li = "https://api.vocalstack.com", pr = Bs(null);
|
|
1718
1724
|
function Ct() {
|
|
1719
|
-
const t = qi(
|
|
1725
|
+
const t = qi(pr);
|
|
1720
1726
|
if (!t) throw new Error("VocalStack player hooks must be used inside <VocalStackPlayer> or <PlayerApiProvider>");
|
|
1721
1727
|
return t;
|
|
1722
1728
|
}
|
|
1723
|
-
function
|
|
1724
|
-
return t.value ? /* @__PURE__ */ a(
|
|
1729
|
+
function uo(t) {
|
|
1730
|
+
return t.value ? /* @__PURE__ */ a(pr.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ a(Mo, { ...t });
|
|
1725
1731
|
}
|
|
1726
|
-
function
|
|
1732
|
+
function Mo({ children: t, ...e }) {
|
|
1727
1733
|
const n = ci(e);
|
|
1728
|
-
return /* @__PURE__ */ a(
|
|
1734
|
+
return /* @__PURE__ */ a(pr.Provider, { value: n, children: t });
|
|
1729
1735
|
}
|
|
1730
|
-
const
|
|
1731
|
-
function
|
|
1732
|
-
return
|
|
1736
|
+
const go = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
1737
|
+
function ho(t) {
|
|
1738
|
+
return go.test(t);
|
|
1733
1739
|
}
|
|
1734
1740
|
function ci(t) {
|
|
1735
|
-
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id ||
|
|
1741
|
+
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || ho(t.id)), s = (t.baseUrl ?? li).replace(/\/$/, ""), i = z(t.token);
|
|
1736
1742
|
i.current = t.token;
|
|
1737
|
-
const o = !!t.token, l =
|
|
1743
|
+
const o = !!t.token, l = ze(() => async () => {
|
|
1738
1744
|
const d = i.current;
|
|
1739
1745
|
return (typeof d == "function" ? await d() : d) || void 0;
|
|
1740
|
-
}, []), c = t.client ?? null, u =
|
|
1741
|
-
return
|
|
1746
|
+
}, []), c = t.client ?? null, u = ze(() => c ?? new Vs({ baseUrl: s, token: o && !e ? l : void 0 }), [c, s, o, l, e]);
|
|
1747
|
+
return ze(() => {
|
|
1742
1748
|
if (e) return { client: u, origin: s, owner: !1, shareCode: null, listen: e, bearer: l, cred: { listenerToken: e.token }, readAs: { listenerToken: e.token } };
|
|
1743
1749
|
if (n) return { client: u, origin: s, owner: !1, shareCode: null, listen: null, bearer: l, cred: { listenerToken: n }, readAs: { listenerToken: n } };
|
|
1744
1750
|
const d = r ? null : t.id || null;
|
|
1745
1751
|
return { client: u, origin: s, owner: r, shareCode: d, listen: null, bearer: l, cred: { shareCode: d }, readAs: d ? { shareCode: d } : {} };
|
|
1746
1752
|
}, [u, s, r, t.id, l, e, n]);
|
|
1747
1753
|
}
|
|
1748
|
-
function
|
|
1754
|
+
function fo(t, e) {
|
|
1749
1755
|
return e ? { ...t, cred: { media: e } } : t;
|
|
1750
1756
|
}
|
|
1751
|
-
async function
|
|
1757
|
+
async function No(t, e) {
|
|
1752
1758
|
if (t.listen) {
|
|
1753
1759
|
const r = await t.client.recordings.get(t.listen.recordingId, t.readAs), s = r;
|
|
1754
1760
|
return { key: e, code: null, transcriptionId: t.listen.transcriptionId, name: s.name ?? s.title ?? "", recording: r, job: s.job ?? null, allowDownload: !0, allowExport: !0, allowTranslate: !0, sharedBy: null };
|
|
@@ -1773,11 +1779,11 @@ async function fo(t, e) {
|
|
|
1773
1779
|
sharedBy: n.sharedBy ?? null
|
|
1774
1780
|
};
|
|
1775
1781
|
}
|
|
1776
|
-
function
|
|
1782
|
+
function po(t, e) {
|
|
1777
1783
|
const [n, r] = O(null), [s, i] = O(!1), [o, l] = O(null), [c, u] = O(0);
|
|
1778
1784
|
return E(() => {
|
|
1779
1785
|
let d = !0;
|
|
1780
|
-
return
|
|
1786
|
+
return No(t, e).then((g) => {
|
|
1781
1787
|
d && (r(g), i(!1), l(null));
|
|
1782
1788
|
}).catch((g) => {
|
|
1783
1789
|
if (!d) return;
|
|
@@ -1788,7 +1794,7 @@ function No(t, e) {
|
|
|
1788
1794
|
};
|
|
1789
1795
|
}, [t, e, c]), { source: n, gone: s, error: o, reload: () => u((d) => d + 1) };
|
|
1790
1796
|
}
|
|
1791
|
-
function
|
|
1797
|
+
function mo(t, e) {
|
|
1792
1798
|
const [n, r] = O(null);
|
|
1793
1799
|
return E(() => {
|
|
1794
1800
|
if (!t.owner || !e) {
|
|
@@ -1809,7 +1815,7 @@ function po(t, e) {
|
|
|
1809
1815
|
};
|
|
1810
1816
|
}, [t, e]), n;
|
|
1811
1817
|
}
|
|
1812
|
-
async function
|
|
1818
|
+
async function xs(t, e, n = {}) {
|
|
1813
1819
|
const r = new URLSearchParams();
|
|
1814
1820
|
for (const [o, l] of Object.entries(n.query ?? {})) l != null && r.set(o, l);
|
|
1815
1821
|
t.shareCode && r.set("shareCode", t.shareCode), t.listen && r.set("listenerToken", t.listen.token);
|
|
@@ -1822,7 +1828,7 @@ async function Cs(t, e, n = {}) {
|
|
|
1822
1828
|
return fetch(`${t.origin}${e}${i ? `${e.includes("?") ? "&" : "?"}${i}` : ""}`, { method: n.method ?? "GET", headers: s, body: n.body === void 0 ? void 0 : JSON.stringify(n.body) });
|
|
1823
1829
|
}
|
|
1824
1830
|
const Zn = /* @__PURE__ */ new Map();
|
|
1825
|
-
function
|
|
1831
|
+
function yo() {
|
|
1826
1832
|
const t = Ct(), [e, n] = O(Zn.get(t.origin) ?? null);
|
|
1827
1833
|
return E(() => {
|
|
1828
1834
|
Zn.has(t.origin) || t.client.languages.list().then((r) => {
|
|
@@ -1840,8 +1846,8 @@ function ui(t, e) {
|
|
|
1840
1846
|
};
|
|
1841
1847
|
}, [...e, o]), { data: n, error: s, reload: () => l((c) => c + 1) };
|
|
1842
1848
|
}
|
|
1843
|
-
const
|
|
1844
|
-
function
|
|
1849
|
+
const To = (t) => new Promise((e) => setTimeout(e, t)), Lo = 2500, wo = 72;
|
|
1850
|
+
function ko(t, e) {
|
|
1845
1851
|
const n = Ct(), r = z(n);
|
|
1846
1852
|
r.current = n;
|
|
1847
1853
|
const [s, i] = O(_t), o = z(_t()), l = z(null), c = z(e.lang ?? null), [u, d] = O(!1), [g, M] = O(null), [p, y] = O(!1), j = tt(() => {
|
|
@@ -1862,20 +1868,20 @@ function wo(t, e) {
|
|
|
1862
1868
|
return (async () => {
|
|
1863
1869
|
var $, U, Me, P;
|
|
1864
1870
|
for (; Q; ) {
|
|
1865
|
-
let
|
|
1871
|
+
let V = null;
|
|
1866
1872
|
try {
|
|
1867
1873
|
const oe = c.current;
|
|
1868
|
-
if (
|
|
1869
|
-
|
|
1874
|
+
if (V = await v.recordings.subscribe(t, { lang: oe ?? void 0, ...n.readAs, asOwner: n.owner, voice: e.voice ?? void 0 }), !Q) {
|
|
1875
|
+
V.close();
|
|
1870
1876
|
return;
|
|
1871
1877
|
}
|
|
1872
|
-
L = 0, l.current =
|
|
1873
|
-
for await (const re of
|
|
1878
|
+
L = 0, l.current = V, c.current !== oe && V.setLanguage(c.current), d(!0), M(null), o.current = Wn(V.snapshot, o.current), j(), ne();
|
|
1879
|
+
for await (const re of V) {
|
|
1874
1880
|
if (!Q) break;
|
|
1875
1881
|
if (re.type === "snapshot")
|
|
1876
1882
|
o.current = Wn(re.snapshot, re.reason === "gap" ? o.current : _t()), j(), ne();
|
|
1877
1883
|
else if (re.type === "frame") {
|
|
1878
|
-
|
|
1884
|
+
Ka(o.current, re.frame);
|
|
1879
1885
|
const we = re.frame;
|
|
1880
1886
|
we.type === "recording.state" && (S = o.current.state, (U = ($ = T.current).onState) == null || U.call($, we.state, we.reason)), (P = (Me = T.current).onFrame) == null || P.call(Me, we), j();
|
|
1881
1887
|
} else re.type === "closed" && d(!1);
|
|
@@ -1906,11 +1912,11 @@ function wo(t, e) {
|
|
|
1906
1912
|
}
|
|
1907
1913
|
M(re);
|
|
1908
1914
|
} finally {
|
|
1909
|
-
l.current ===
|
|
1915
|
+
l.current === V && (l.current = null), d(!1);
|
|
1910
1916
|
}
|
|
1911
1917
|
const ae = o.current.state;
|
|
1912
1918
|
if (!Q || ae === "ended" || ae === "finalized" || ae === "processing") return;
|
|
1913
|
-
L += 1, await
|
|
1919
|
+
L += 1, await To(Math.min(15e3, 1e3 * 2 ** Math.min(L, 4)));
|
|
1914
1920
|
}
|
|
1915
1921
|
})(), () => {
|
|
1916
1922
|
var $;
|
|
@@ -1926,9 +1932,9 @@ function wo(t, e) {
|
|
|
1926
1932
|
v === k.current && (o.current = Wn(U, o.current), R(Q), j(), U.translationPending && $ > 0 && window.setTimeout(() => {
|
|
1927
1933
|
v === k.current && S($ - 1).catch(() => {
|
|
1928
1934
|
});
|
|
1929
|
-
},
|
|
1935
|
+
}, Lo));
|
|
1930
1936
|
});
|
|
1931
|
-
S(
|
|
1937
|
+
S(wo).catch(() => {
|
|
1932
1938
|
v === k.current && Q && D(Q);
|
|
1933
1939
|
}).finally(() => {
|
|
1934
1940
|
v === k.current && h(!1);
|
|
@@ -1944,7 +1950,7 @@ function wo(t, e) {
|
|
|
1944
1950
|
}, [j]), b = tt(() => M(null), []);
|
|
1945
1951
|
return { model: s, connected: u, error: g, notFound: p, clearError: b, setLanguage: X, mergeTranslations: I, translating: N, translateFailed: C, shownLang: te };
|
|
1946
1952
|
}
|
|
1947
|
-
const
|
|
1953
|
+
const Ds = {
|
|
1948
1954
|
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" },
|
|
1949
1955
|
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" },
|
|
1950
1956
|
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é" },
|
|
@@ -1953,12 +1959,12 @@ const xs = {
|
|
|
1953
1959
|
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" }
|
|
1954
1960
|
};
|
|
1955
1961
|
function di(t) {
|
|
1956
|
-
return t &&
|
|
1962
|
+
return t && Ds[t] || Ds.English;
|
|
1957
1963
|
}
|
|
1958
1964
|
async function Mi(t) {
|
|
1959
1965
|
var s, i, o, l, c;
|
|
1960
1966
|
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 = ((i = e == null ? void 0 : e.error) == null ? void 0 : i.message) ?? (e == null ? void 0 : e.message);
|
|
1961
|
-
return new
|
|
1967
|
+
return new Hs(typeof n == "string" ? n : "internal", typeof r == "string" ? r : ir, { 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) });
|
|
1962
1968
|
}
|
|
1963
1969
|
function qn(t) {
|
|
1964
1970
|
switch (t) {
|
|
@@ -1976,14 +1982,14 @@ function qn(t) {
|
|
|
1976
1982
|
return "queued";
|
|
1977
1983
|
}
|
|
1978
1984
|
}
|
|
1979
|
-
function
|
|
1985
|
+
function vo(t) {
|
|
1980
1986
|
return t ? { 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 } : null;
|
|
1981
1987
|
}
|
|
1982
|
-
const
|
|
1988
|
+
const jo = (t, e) => {
|
|
1983
1989
|
const n = (t == null ? void 0 : t.segmentsDone) ?? e, r = Math.max(n, (t == null ? void 0 : t.segmentsTotal) ?? n);
|
|
1984
1990
|
return `${n} / ${r} SEGMENTS`;
|
|
1985
1991
|
};
|
|
1986
|
-
function
|
|
1992
|
+
function zo(t, e) {
|
|
1987
1993
|
var s;
|
|
1988
1994
|
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;
|
|
1989
1995
|
if (r && (r.startS != null || r.endS != null)) {
|
|
@@ -1998,24 +2004,24 @@ const ar = [
|
|
|
1998
2004
|
{ key: "srt", name: "Subtitles", ext: "SRT / VTT", note: "Timed caption cues, ready for a video editor or a player.", icon: "M2.25 15.75V8.25A2.25 2.25 0 0 1 4.5 6h15a2.25 2.25 0 0 1 2.25 2.25v7.5A2.25 2.25 0 0 1 19.5 18h-15a2.25 2.25 0 0 1-2.25-2.25Zm4.5-4.5h4.5m-4.5 3h1.5m3 0h6m-3-3h3" },
|
|
1999
2005
|
{ key: "json", name: "JSON", ext: "JSON", note: "Word-level timings, confidence scores and speaker turns.", icon: "M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5" }
|
|
2000
2006
|
];
|
|
2001
|
-
function
|
|
2007
|
+
function mr(t) {
|
|
2002
2008
|
const e = document.createElement("a");
|
|
2003
2009
|
e.href = t, e.style.display = "none", document.body.appendChild(e), e.click(), e.remove();
|
|
2004
2010
|
}
|
|
2005
|
-
async function
|
|
2011
|
+
async function Io(t) {
|
|
2006
2012
|
const e = await fetch(t, { redirect: "manual" });
|
|
2007
2013
|
if (e.type !== "opaqueredirect" && !e.ok) throw await Mi(e);
|
|
2008
|
-
|
|
2014
|
+
mr(t);
|
|
2009
2015
|
}
|
|
2010
|
-
async function
|
|
2016
|
+
async function Oo(t, e, n, r = {}) {
|
|
2011
2017
|
var M, p;
|
|
2012
2018
|
const s = await t.client.recordings.export(e, n, { lang: r.lang ?? void 0, ...t.readAs });
|
|
2013
2019
|
if (!s.ok) throw await Mi(s);
|
|
2014
2020
|
const i = await s.blob(), o = s.headers.get("content-disposition") ?? "", l = (M = /filename\*=UTF-8''([^;]+)/i.exec(o)) == null ? void 0 : M[1], c = (p = /filename="([^"]+)"/i.exec(o)) == null ? void 0 : p[1], u = l ? decodeURIComponent(l) : c ?? `transcript.${n}`, d = URL.createObjectURL(i), g = document.createElement("a");
|
|
2015
2021
|
g.href = d, g.download = u, g.style.display = "none", document.body.appendChild(g), g.click(), g.remove(), window.setTimeout(() => URL.revokeObjectURL(d), 6e4);
|
|
2016
2022
|
}
|
|
2017
|
-
async function
|
|
2018
|
-
const { recordingId: n, lang: r, voiceKey: s, cred: i } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((g) => g.lang === r), l = (d) =>
|
|
2023
|
+
async function Co(t, e) {
|
|
2024
|
+
const { recordingId: n, lang: r, voiceKey: s, cred: i } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((g) => g.lang === r), l = (d) => ei(d, s);
|
|
2019
2025
|
let c = l(await o());
|
|
2020
2026
|
(!c || c.state === "clips" || c.state === "failed") && await e.request();
|
|
2021
2027
|
const u = Date.now() + (e.timeoutMs ?? 10 * 6e4);
|
|
@@ -2024,25 +2030,25 @@ async function Oo(t, e) {
|
|
|
2024
2030
|
if (Date.now() > u) throw new Error("The spoken track is taking too long; try again in a moment.");
|
|
2025
2031
|
await new Promise((d) => setTimeout(d, 4e3)), c = l(await o());
|
|
2026
2032
|
}
|
|
2027
|
-
|
|
2033
|
+
mr(Ma(t.origin, n, r, c.voiceKey, i));
|
|
2028
2034
|
}
|
|
2029
2035
|
const or = (t) => {
|
|
2030
2036
|
var e;
|
|
2031
2037
|
return ((e = t == null ? void 0 : t.match(/(?:youtu\.be\/|[?&]v=|\/shorts\/|\/embed\/|\/live\/)([\w-]{11})/)) == null ? void 0 : e[1]) ?? null;
|
|
2032
|
-
},
|
|
2038
|
+
}, xo = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, bs = 0.3, Do = 1.5;
|
|
2033
2039
|
function gi(t, e, n) {
|
|
2034
2040
|
var s;
|
|
2035
2041
|
const r = (s = t.words[t.words.length - 1]) == null ? void 0 : s.end;
|
|
2036
2042
|
return r != null && r > t.start ? r : t.end != null && t.end > t.start ? t.end : (e == null ? void 0 : e.start) ?? n;
|
|
2037
2043
|
}
|
|
2038
|
-
function
|
|
2044
|
+
function bo(t, e, n) {
|
|
2039
2045
|
var c, u;
|
|
2040
2046
|
const r = t[e];
|
|
2041
2047
|
if (!r) return !1;
|
|
2042
|
-
const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) -
|
|
2048
|
+
const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) - bs, i = t[e + 1], o = gi(r, i, r.start + 4) + Do, l = i ? Math.min(o, (((u = i.words[0]) == null ? void 0 : u.start) ?? i.start) - bs) : o;
|
|
2043
2049
|
return n >= s && n < Math.max(l, s + 0.5);
|
|
2044
2050
|
}
|
|
2045
|
-
function
|
|
2051
|
+
function So(t, e, n) {
|
|
2046
2052
|
const r = Math.max(0, n - e), s = t.map((l) => Math.max(1, [...l.replace(/[^\p{L}\p{N}]/gu, "")].length)), i = s.reduce((l, c) => l + c, 0) || 1;
|
|
2047
2053
|
let o = e;
|
|
2048
2054
|
return t.map((l, c) => {
|
|
@@ -2057,7 +2063,7 @@ function Kn(t) {
|
|
|
2057
2063
|
bottom: Math.min(parseFloat(e.paddingBottom) || 0, n)
|
|
2058
2064
|
};
|
|
2059
2065
|
}
|
|
2060
|
-
function
|
|
2066
|
+
function Ao(t, e, n = 0) {
|
|
2061
2067
|
const r = z(() => {
|
|
2062
2068
|
});
|
|
2063
2069
|
E(() => {
|
|
@@ -2120,10 +2126,10 @@ function So(t, e, n = 0) {
|
|
|
2120
2126
|
};
|
|
2121
2127
|
}, []);
|
|
2122
2128
|
}
|
|
2123
|
-
function
|
|
2129
|
+
function Eo({ thumbRef: t }) {
|
|
2124
2130
|
return /* @__PURE__ */ a("div", { className: "feedbar", "aria-hidden": "true", children: /* @__PURE__ */ a("div", { ref: t, className: "feedbar__thumb" }) });
|
|
2125
2131
|
}
|
|
2126
|
-
function
|
|
2132
|
+
function Yo({ error: t, onClose: e }) {
|
|
2127
2133
|
const n = z(e);
|
|
2128
2134
|
if (n.current = e, E(() => {
|
|
2129
2135
|
if (!t) return;
|
|
@@ -2146,7 +2152,7 @@ function Eo({ error: t, onClose: e }) {
|
|
|
2146
2152
|
function hi({ color: t }) {
|
|
2147
2153
|
return /* @__PURE__ */ a("span", { title: "Cloned voice", style: { flex: "none", display: "inline-flex" }, children: /* @__PURE__ */ a(ue, { d: K.voiceClone, size: 13, sw: 1.7, stroke: t }) });
|
|
2148
2154
|
}
|
|
2149
|
-
function
|
|
2155
|
+
function wc({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: i, play: o, next: l }) {
|
|
2150
2156
|
return /* @__PURE__ */ f("div", { className: "vs-tt", children: [
|
|
2151
2157
|
/* @__PURE__ */ f("div", { className: "vs-tt__r1", children: [
|
|
2152
2158
|
/* @__PURE__ */ a("div", { className: "vs-tt__chip", children: t }),
|
|
@@ -2163,7 +2169,7 @@ function Lc({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: i, play: o, n
|
|
|
2163
2169
|
] })
|
|
2164
2170
|
] });
|
|
2165
2171
|
}
|
|
2166
|
-
function
|
|
2172
|
+
function _o({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek: i, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: u, glideMs: d = 260 }) {
|
|
2167
2173
|
const g = z(null), M = z(!1), [p, y] = O(null), j = Math.max(1, e), T = p ?? u, N = T != null ? Math.min(100, Math.max(0, T * 100)) : t / Math.max(1, j - 1) * 100, h = u != null && d > 0 && p == null ? `width ${d}ms linear, left ${d}ms linear` : "none", C = (k) => {
|
|
2168
2174
|
var I;
|
|
2169
2175
|
const te = (I = g.current) == null ? void 0 : I.getBoundingClientRect();
|
|
@@ -2207,7 +2213,7 @@ function Yo({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek:
|
|
|
2207
2213
|
] })
|
|
2208
2214
|
] });
|
|
2209
2215
|
}
|
|
2210
|
-
function
|
|
2216
|
+
function Uo(t, e, n) {
|
|
2211
2217
|
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")), i = s.some((l) => l.kind === "line"), o = (l) => !!(n != null && n.has(`${l.seq}:${l.idx}`));
|
|
2212
2218
|
return {
|
|
2213
2219
|
script: i ? 0 : t.words.filter((l) => l.script && !o(l)).length,
|
|
@@ -2215,7 +2221,7 @@ function _o(t, e, n) {
|
|
|
2215
2221
|
manualCount: i ? 0 : s.filter((l) => l.kind === "word").length
|
|
2216
2222
|
};
|
|
2217
2223
|
}
|
|
2218
|
-
function
|
|
2224
|
+
function Ro({ f: t, desk: e, onOpen: n }) {
|
|
2219
2225
|
const r = (s, i, o) => /* @__PURE__ */ f("span", { role: "button", title: "Open this line in Fix", className: "badge badge--fix", style: { marginLeft: o ? "auto" : 0 }, onClick: (l) => {
|
|
2220
2226
|
l.stopPropagation(), n == null || n();
|
|
2221
2227
|
}, children: [
|
|
@@ -2228,7 +2234,7 @@ function Uo({ f: t, desk: e, onOpen: n }) {
|
|
|
2228
2234
|
t.manual && r(e ? "MANUAL FIX" : "MANUAL", t.manualCount, t.script === 0)
|
|
2229
2235
|
] });
|
|
2230
2236
|
}
|
|
2231
|
-
function
|
|
2237
|
+
function Po({ onOpen: t, alone: e }) {
|
|
2232
2238
|
const [n, r] = O(!1);
|
|
2233
2239
|
return /* @__PURE__ */ f("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) => {
|
|
2234
2240
|
s.stopPropagation(), t();
|
|
@@ -2237,8 +2243,8 @@ function Ro({ onOpen: t, alone: e }) {
|
|
|
2237
2243
|
n && "FIX"
|
|
2238
2244
|
] });
|
|
2239
2245
|
}
|
|
2240
|
-
function
|
|
2241
|
-
const s = Ct(), [i, o] = O([]), [l, c] = O(0), u = z(/* @__PURE__ */ new Set()), d = z(!1), g =
|
|
2246
|
+
function Qo(t, e, n, r) {
|
|
2247
|
+
const s = Ct(), [i, o] = O([]), [l, c] = O(0), u = z(/* @__PURE__ */ new Set()), d = z(!1), g = ze(() => new Map(n.filter((p) => p.sentenceId != null).map((p) => [p.sentenceId, p])), [n]);
|
|
2242
2248
|
E(() => {
|
|
2243
2249
|
u.current = /* @__PURE__ */ new Set();
|
|
2244
2250
|
}, [t, e]);
|
|
@@ -2264,13 +2270,13 @@ function Po(t, e, n, r) {
|
|
|
2264
2270
|
}
|
|
2265
2271
|
}, [t, e, i, l, g, r]), M;
|
|
2266
2272
|
}
|
|
2267
|
-
function
|
|
2273
|
+
function $o(t) {
|
|
2268
2274
|
return t.live || t.auto ? "From this session" : t.cloned ? t.library === !1 ? "This transcription only" : "Saved in Voices" : "";
|
|
2269
2275
|
}
|
|
2270
2276
|
function Qt(t, e) {
|
|
2271
2277
|
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 };
|
|
2272
2278
|
}
|
|
2273
|
-
function
|
|
2279
|
+
function Bo(t, e) {
|
|
2274
2280
|
const n = t.slice().sort((s, i) => Qt(s, e).rank - Qt(i, e).rank || s.name.localeCompare(i.name, void 0, { numeric: !0 })), r = {};
|
|
2275
2281
|
for (const s of n) {
|
|
2276
2282
|
const i = Qt(s, e).head;
|
|
@@ -2281,17 +2287,17 @@ function $o(t, e) {
|
|
|
2281
2287
|
return { v: s, headOn: l, head: o, headCount: r[o], rule: l ? "0" : "1px solid var(--hair)" };
|
|
2282
2288
|
});
|
|
2283
2289
|
}
|
|
2284
|
-
function
|
|
2290
|
+
function Ho(t, e, n) {
|
|
2285
2291
|
const r = /* @__PURE__ */ new Set();
|
|
2286
2292
|
let s = !1;
|
|
2287
2293
|
for (const o of t)
|
|
2288
2294
|
o.speaker < 0 ? s = !0 : r.add(o.speaker);
|
|
2289
2295
|
const i = [...r].sort((o, l) => o - l).map((o) => {
|
|
2290
2296
|
var c;
|
|
2291
|
-
const l =
|
|
2297
|
+
const l = Nr(e, o);
|
|
2292
2298
|
return {
|
|
2293
2299
|
key: o,
|
|
2294
|
-
name:
|
|
2300
|
+
name: fr(e, o),
|
|
2295
2301
|
initial: ai(e, o),
|
|
2296
2302
|
lane: l.lane,
|
|
2297
2303
|
sex: e.speakerSex[o] ?? null,
|
|
@@ -2303,11 +2309,11 @@ function Bo(t, e, n) {
|
|
|
2303
2309
|
});
|
|
2304
2310
|
return s && i.push({ key: -1, name: n, initial: "?", lane: null, sex: null }), i;
|
|
2305
2311
|
}
|
|
2306
|
-
function
|
|
2312
|
+
function Ss(t) {
|
|
2307
2313
|
const e = [...t.entries()].filter(([, n]) => n.trim()).sort((n, r) => n[0] - r[0]).map(([n, r]) => `${n}=${r.trim()}`).join(";");
|
|
2308
2314
|
return e ? `cast:${e}` : "";
|
|
2309
2315
|
}
|
|
2310
|
-
function
|
|
2316
|
+
function As(t) {
|
|
2311
2317
|
if (!t || !t.startsWith("cast:")) return null;
|
|
2312
2318
|
const e = /* @__PURE__ */ new Map();
|
|
2313
2319
|
for (const n of t.slice(5).split(";")) {
|
|
@@ -2318,10 +2324,10 @@ function Ss(t) {
|
|
|
2318
2324
|
}
|
|
2319
2325
|
return e.size ? e : null;
|
|
2320
2326
|
}
|
|
2321
|
-
function
|
|
2327
|
+
function Es(t, e, n = !0) {
|
|
2322
2328
|
const r = e.filter((o) => !o.cloned), s = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Map();
|
|
2323
2329
|
for (const o of t) {
|
|
2324
|
-
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)
|
|
2330
|
+
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);
|
|
2325
2331
|
if (c) {
|
|
2326
2332
|
i.set(o.key, c.id), s.add(c.id);
|
|
2327
2333
|
continue;
|
|
@@ -2331,7 +2337,7 @@ function As(t, e, n = !0) {
|
|
|
2331
2337
|
}
|
|
2332
2338
|
return i;
|
|
2333
2339
|
}
|
|
2334
|
-
function
|
|
2340
|
+
function Vo({ roster: t, selected: e, onSelect: n, noClone: r, building: s, short: i, sexOf: o, t: l }) {
|
|
2335
2341
|
const c = t.find((u) => u.key === e) ?? t[0] ?? null;
|
|
2336
2342
|
return c ? /* @__PURE__ */ a("div", { style: { display: "flex", flexWrap: "wrap", gap: 6, padding: "0 2px 9px", margin: "0 -2px" }, children: t.map((u) => {
|
|
2337
2343
|
const d = u.key === c.key, g = u.key >= 0 && !!(s != null && s(u)), M = u.key >= 0 && !g && r(u), p = u.key >= 0 && !g && !M && !u.hasVoice && !!(i != null && i(u));
|
|
@@ -2362,8 +2368,8 @@ function Ho({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
|
|
|
2362
2368
|
);
|
|
2363
2369
|
}) }) : null;
|
|
2364
2370
|
}
|
|
2365
|
-
function
|
|
2366
|
-
const j =
|
|
2371
|
+
function Fo({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s = null, dlId: i = null, onPick: o, onAdd: l, onUse: c, usedBy: u, foldKey: d, foldFor: g = null, problem: M, noClone: p = null, t: y }) {
|
|
2372
|
+
const j = ze(() => Bo(e, y), [e, y]), [T, N] = O({});
|
|
2367
2373
|
E(() => {
|
|
2368
2374
|
N({});
|
|
2369
2375
|
}, [d, g]);
|
|
@@ -2392,7 +2398,7 @@ function Vo({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2392
2398
|
] })
|
|
2393
2399
|
] }),
|
|
2394
2400
|
j.map(({ v: k, headOn: te, head: R, headCount: X, rule: I }, b) => {
|
|
2395
|
-
const Q =
|
|
2401
|
+
const Q = $o(k), L = i === k.id, v = C(R), S = (u == null ? void 0 : u(k)) ?? null;
|
|
2396
2402
|
return /* @__PURE__ */ f(Ki, { children: [
|
|
2397
2403
|
te && R === y.vcSheet && /* @__PURE__ */ a("div", { style: { display: "flex", alignItems: "center", padding: "14px 2px 6px", borderTop: b === 0 && !p ? "0" : "1px solid var(--hair)", userSelect: "none" }, children: /* @__PURE__ */ a("span", { style: { font: "600 9px var(--vs-font-mono)", letterSpacing: ".13em", color: "var(--ink-62)" }, children: R }) }),
|
|
2398
2404
|
te && R !== y.vcSheet && /* @__PURE__ */ f(
|
|
@@ -2422,7 +2428,7 @@ function Vo({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2422
2428
|
onClick: () => o(k),
|
|
2423
2429
|
style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop: v ? I : "0", display: "flex", alignItems: "center", gap: 11, padding: v ? "11px 8px" : "0px 8px", margin: "0 -6px", borderRadius: 10, background: r === k.id ? "var(--brand-tint)" : "transparent", cursor: "pointer", opacity: v ? 1 : 0, maxHeight: v ? 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" },
|
|
2424
2430
|
children: [
|
|
2425
|
-
/* @__PURE__ */ a("span", { title: L ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: L ? "transparent" : k.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: L ? /* @__PURE__ */ a("span", { style: { width: 16, height: 16, borderRadius: "50%", border: "2px solid var(--fill-10)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite" } }) : s === k.id ? /* @__PURE__ */ a(
|
|
2431
|
+
/* @__PURE__ */ a("span", { title: L ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: L ? "transparent" : k.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: L ? /* @__PURE__ */ a("span", { style: { width: 16, height: 16, borderRadius: "50%", border: "2px solid var(--fill-10)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite" } }) : s === k.id ? /* @__PURE__ */ a(Wo, { height: 13, width: 2.5 }) : /* @__PURE__ */ a(ue, { d: k.cloned ? K.voiceClone : k.gender === "female" ? K.venus : k.gender === "male" ? K.mars : K.mic, size: 15, sw: 1.6, style: { color: k.cloned ? "var(--brand)" : "var(--ink-55)" } }) }),
|
|
2426
2432
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
2427
2433
|
/* @__PURE__ */ a("div", { style: { display: "flex", alignItems: "center", gap: 7, minWidth: 0 }, children: /* @__PURE__ */ a("span", { style: { minWidth: 0, fontSize: 14.5, fontWeight: k.id === n ? 600 : 400, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: k.name }) }),
|
|
2428
2434
|
Q && /* @__PURE__ */ a("div", { style: { fontSize: 12, fontWeight: 300, color: "var(--ink-62)", marginTop: 2, whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: Q }),
|
|
@@ -2449,7 +2455,7 @@ function Vo({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2449
2455
|
D && /* @__PURE__ */ a("div", { style: { position: "sticky", bottom: 0, zIndex: 3, marginTop: 6, padding: "11px 0 3px", animation: "vs-slide-up .18s ease-out" }, children: /* @__PURE__ */ a("button", { type: "button", className: "vcuse", title: "Apply this voice", onClick: () => r && c(r), children: /* @__PURE__ */ a("span", { children: y.vcUse }) }) })
|
|
2450
2456
|
] });
|
|
2451
2457
|
}
|
|
2452
|
-
function
|
|
2458
|
+
function Wo({ height: t, width: e = 2 }) {
|
|
2453
2459
|
const n = { width: e, height: "100%", borderRadius: 1, background: "var(--brand)" };
|
|
2454
2460
|
return /* @__PURE__ */ f("span", { style: { flex: "none", display: "flex", alignItems: "flex-end", gap: 2, height: t }, children: [
|
|
2455
2461
|
/* @__PURE__ */ a("span", { style: { ...n, animation: "vs-eq .62s ease-in-out infinite" } }),
|
|
@@ -2457,16 +2463,16 @@ function Fo({ height: t, width: e = 2 }) {
|
|
|
2457
2463
|
/* @__PURE__ */ a("span", { style: { ...n, animation: "vs-eq .62s ease-in-out .38s infinite" } })
|
|
2458
2464
|
] });
|
|
2459
2465
|
}
|
|
2460
|
-
const
|
|
2466
|
+
const Go = /* @__PURE__ */ f("span", { style: { display: "inline-flex", alignItems: "center", gap: 3 }, children: [
|
|
2461
2467
|
/* @__PURE__ */ a(ue, { d: K.langAuto, size: 19, sw: 1.7, style: { color: "var(--ink-62)", display: "block" } }),
|
|
2462
2468
|
/* @__PURE__ */ a(ue, { d: K.globe, size: 18, sw: 1.6, style: { color: "var(--ink-62)", display: "block" } })
|
|
2463
2469
|
] });
|
|
2464
|
-
function
|
|
2470
|
+
function Ys(t, e) {
|
|
2465
2471
|
const n = e ? t == null ? void 0 : t.languages.find((r) => r.code === e) : null;
|
|
2466
|
-
return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" :
|
|
2472
|
+
return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" : Go, code: e ? e.toUpperCase() : "", label: (n == null ? void 0 : n.native) ?? "As spoken", name: (n == null ? void 0 : n.name) ?? "Original" };
|
|
2467
2473
|
}
|
|
2468
|
-
const
|
|
2469
|
-
function
|
|
2474
|
+
const _s = { minHeight: 36, height: 36, padding: "0 11px", background: "var(--fill-06)" };
|
|
2475
|
+
function Zo(t, e, n = 0, r) {
|
|
2470
2476
|
const s = (r == null ? void 0 : r.id) ?? null, i = (r == null ? void 0 : r.token) ?? null, o = (r == null ? void 0 : r.shareCode) ?? null, l = Ct(), { data: c } = ui(async () => {
|
|
2471
2477
|
if (!t || !e) return null;
|
|
2472
2478
|
try {
|
|
@@ -2477,25 +2483,25 @@ function Go(t, e, n = 0, r) {
|
|
|
2477
2483
|
}, [t, e, n, s, i, o]);
|
|
2478
2484
|
return c;
|
|
2479
2485
|
}
|
|
2480
|
-
function
|
|
2486
|
+
function qo(t) {
|
|
2481
2487
|
return (/* @__PURE__ */ new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)])).size;
|
|
2482
2488
|
}
|
|
2483
|
-
function
|
|
2489
|
+
function Ko({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, sentenceIds: i }) {
|
|
2484
2490
|
const o = Ct(), { data: l, reload: c } = ui(async () => {
|
|
2485
2491
|
if (!t || !e) return null;
|
|
2486
2492
|
const $ = await o.client.recordings.voice(t, e, o.readAs).catch(() => []);
|
|
2487
2493
|
return { recordingId: t, lang: e, rows: $.filter((U) => U.lang === e) };
|
|
2488
|
-
}, [t, e, o, n]), u =
|
|
2494
|
+
}, [t, e, o, n]), u = ze(
|
|
2489
2495
|
() => l && l.lang === e && l.recordingId === t ? l.rows : [],
|
|
2490
2496
|
[l, e, t]
|
|
2491
|
-
), d =
|
|
2497
|
+
), d = ze(() => ei(u, s), [u, s]), g = d ? d.voiceKey || null : s, [M, p] = O(null), [y, j] = O(null), T = z(/* @__PURE__ */ new Set()), N = `${t ?? ""}|${e ?? ""}|${g ?? ""}`, h = tt(async ($, U) => {
|
|
2492
2498
|
if (!t || !e || !n) return;
|
|
2493
|
-
const Me = U != null && U.size ? null :
|
|
2499
|
+
const Me = U != null && U.size ? null : As($), P = U != null && U.size ? U : Me, V = P && P.size ? Object.fromEntries([...P].map(([we, pe]) => [String(we), pe])) : null, ae = `${t}|${e}|${V ? JSON.stringify(V) : $ ?? ""}`;
|
|
2494
2500
|
if (T.current.has(ae)) return;
|
|
2495
2501
|
T.current.add(ae), p(ae), j(null);
|
|
2496
2502
|
const oe = { langs: [e] };
|
|
2497
|
-
|
|
2498
|
-
const re = await
|
|
2503
|
+
V ? oe.voiceBySpeaker = V : $ && (oe.voice = $);
|
|
2504
|
+
const re = await xs(o, `/v1/recordings/${t}/voice`, { method: "POST", body: oe }).catch(() => null);
|
|
2499
2505
|
if (p((we) => we === ae ? null : we), !(re != null && re.ok)) {
|
|
2500
2506
|
T.current.delete(ae);
|
|
2501
2507
|
const we = re ? await re.json().catch(() => null) : null;
|
|
@@ -2507,14 +2513,14 @@ function qo({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
2507
2513
|
const $ = `${t ?? ""}|${e ?? ""}|`;
|
|
2508
2514
|
for (const U of [...T.current]) U.startsWith($) && T.current.delete(U);
|
|
2509
2515
|
j(null);
|
|
2510
|
-
}, [t, e]), D = !!d && (d.state === "queued" || d.state === "running") || M === N, k = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : y, te = (i == null ? void 0 : i.join(",")) ?? "", [R, X] = O(null), I =
|
|
2516
|
+
}, [t, e]), D = !!d && (d.state === "queued" || d.state === "running") || M === N, k = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : y, te = (i == null ? void 0 : i.join(",")) ?? "", [R, X] = O(null), I = ze(() => new Set((d == null ? void 0 : d.clips) ?? []), [d]), b = ze(() => n && te ? te.split(",").map(Number).filter(($) => !I.has($)) : [], [n, te, I]), Q = z(null);
|
|
2511
2517
|
E(() => {
|
|
2512
2518
|
if (!n || !t || !e || !b.length) return;
|
|
2513
2519
|
const $ = R ?? b[0], U = b.find((oe) => oe >= $) ?? b[0], Me = `${t}|${e}|${g ?? ""}`, P = Q.current;
|
|
2514
2520
|
if (P && P.key === Me && Math.abs(P.near - U) < 12 && Date.now() - P.at < 6e4) return;
|
|
2515
2521
|
Q.current = { key: Me, near: U, at: Date.now() };
|
|
2516
|
-
const
|
|
2517
|
-
|
|
2522
|
+
const V = As(g), ae = { langs: [e], near: U };
|
|
2523
|
+
V && V.size ? ae.voiceBySpeaker = Object.fromEntries([...V].map(([oe, re]) => [String(oe), re])) : g && (ae.voice = g), xs(o, `/v1/recordings/${t}/voice`, { method: "POST", body: ae }).then((oe) => {
|
|
2518
2524
|
oe.ok || (Q.current = null);
|
|
2519
2525
|
}).catch(() => {
|
|
2520
2526
|
Q.current = null;
|
|
@@ -2529,14 +2535,14 @@ function qo({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
2529
2535
|
}, 3e3);
|
|
2530
2536
|
return () => clearInterval($);
|
|
2531
2537
|
}, [L, c, I]);
|
|
2532
|
-
const S =
|
|
2538
|
+
const S = ze(() => {
|
|
2533
2539
|
if (!t) return [];
|
|
2534
2540
|
const $ = te ? te.split(",").map(Number).filter((Me) => !n || I.has(Me)) : void 0, U = d ?? ($ != null && $.length && e ? { lang: e, voiceKey: s ?? "", clips: [], voice: null } : null);
|
|
2535
2541
|
return ma(U, t, o.origin, r, $);
|
|
2536
|
-
}, [d, t, o, r, te, e, s, n, I]), ne =
|
|
2542
|
+
}, [d, t, o, r, te, e, s, n, I]), ne = ze(() => new Set(b), [b]);
|
|
2537
2543
|
return { listed: l, rows: u, track: d, renderVoiceId: g, rendering: D, failed: k, clips: S, requestRender: h, forget: C, reload: c, setNear: X, missing: b.length, coming: ne };
|
|
2538
2544
|
}
|
|
2539
|
-
const
|
|
2545
|
+
const Jo = { share: K.share, delay: K.tabGauge, video: K.video, source: K.tabSources, script: K.tabScript, fix: K.tabFix, ending: K.tabEnding, summary: K.tabSummary, export: K.tabExport, settings: K.tabSettings, sources: K.tabSources, recs: K.mic };
|
|
2540
2546
|
function fi({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: i = !s }) {
|
|
2541
2547
|
const o = s && t.length <= 3, l = t.some((T) => T.key === e), [c, u] = O(null), d = z(null), [g, M] = O(0);
|
|
2542
2548
|
E(() => {
|
|
@@ -2565,7 +2571,7 @@ function fi({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: i = !s
|
|
|
2565
2571
|
}
|
|
2566
2572
|
return /* @__PURE__ */ f("div", { role: "tablist", className: `tabbar tabbar--icons${s ? "" : " tabbar--desk"}`, "data-desk-tabs": i ? "" : void 0, "data-tab-n": i ? t.length : void 0, style: { marginBottom: r ? 12 : 0 }, onMouseLeave: y, children: [
|
|
2567
2573
|
t.map((T) => {
|
|
2568
|
-
const N = e === T.key, h = o || N, C = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", D = T.icon ??
|
|
2574
|
+
const N = e === T.key, h = o || N, C = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", D = T.icon ?? Jo[T.key], k = () => {
|
|
2569
2575
|
y(), n(s && N ? "none" : T.key);
|
|
2570
2576
|
};
|
|
2571
2577
|
return s ? /* @__PURE__ */ f("button", { type: "button", role: "tab", "aria-selected": N, title: T.label, className: `tabbar__tab${N ? " is-on" : ""}`, style: { flex: C }, onClick: k, children: [
|
|
@@ -2579,8 +2585,8 @@ function fi({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: i = !s
|
|
|
2579
2585
|
j
|
|
2580
2586
|
] });
|
|
2581
2587
|
}
|
|
2582
|
-
const
|
|
2583
|
-
function
|
|
2588
|
+
const Xo = "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", el = "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";
|
|
2589
|
+
function tl({ audio: t, video: e, formats: n, onExport: r }) {
|
|
2584
2590
|
const [s, i] = O(null), [o, l] = O(null), c = z(void 0), u = z(!0);
|
|
2585
2591
|
E(() => (u.current = !0, () => {
|
|
2586
2592
|
u.current = !1, window.clearTimeout(c.current);
|
|
@@ -2609,11 +2615,11 @@ function el({ audio: t, video: e, formats: n, onExport: r }) {
|
|
|
2609
2615
|
/* @__PURE__ */ a("span", { style: { fontSize: 13, fontWeight: 500, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: j.name }),
|
|
2610
2616
|
/* @__PURE__ */ a("span", { style: { font: "500 9.5px var(--vs-font-mono)", color: "var(--ink-40)", letterSpacing: ".04em" }, children: j.meta })
|
|
2611
2617
|
] }),
|
|
2612
|
-
/* @__PURE__ */ a(ue, { d: s === y ? K.check :
|
|
2618
|
+
/* @__PURE__ */ a(ue, { d: s === y ? K.check : Xo, size: 17, sw: 1.6, style: { flex: "none", color: s === y ? "var(--brand)" : "var(--ink-62)" } })
|
|
2613
2619
|
] })
|
|
2614
2620
|
] });
|
|
2615
2621
|
return /* @__PURE__ */ f("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
|
|
2616
|
-
t && p("audio", t,
|
|
2622
|
+
t && p("audio", t, el, "DOWNLOAD AUDIO"),
|
|
2617
2623
|
e && p("video", e, K.video, "DOWNLOAD VIDEO"),
|
|
2618
2624
|
n !== !1 && /* @__PURE__ */ f(Pe, { children: [
|
|
2619
2625
|
/* @__PURE__ */ a(er, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "EXPORT AS" }),
|
|
@@ -2638,7 +2644,7 @@ function Ni(t, e, n) {
|
|
|
2638
2644
|
}
|
|
2639
2645
|
r();
|
|
2640
2646
|
}
|
|
2641
|
-
function
|
|
2647
|
+
function nl(t, e, n) {
|
|
2642
2648
|
const [r, s] = O(null), i = t.state === "ready", o = `${e ?? ""}|${n ?? ""}|${i ? `${t.title}
|
|
2643
2649
|
${t.summary}` : ""}`, l = Ct();
|
|
2644
2650
|
return E(() => {
|
|
@@ -2655,12 +2661,12 @@ ${t.summary}` : ""}`, l = Ct();
|
|
|
2655
2661
|
};
|
|
2656
2662
|
}, [o, l]), !n || !i ? t : (r == null ? void 0 : r.key) === o ? r.s : { state: "pending", retry: t.retry };
|
|
2657
2663
|
}
|
|
2658
|
-
function
|
|
2664
|
+
function rl(t) {
|
|
2659
2665
|
return t != null && t.title && (t != null && t.summary) ? { state: "ready", title: t.title, summary: t.summary, retry: () => {
|
|
2660
2666
|
} } : { state: "unavailable", retry: () => {
|
|
2661
2667
|
} };
|
|
2662
2668
|
}
|
|
2663
|
-
function
|
|
2669
|
+
function sl({ s: t }) {
|
|
2664
2670
|
const [e, n] = O(!1), r = z(void 0);
|
|
2665
2671
|
E(() => () => window.clearTimeout(r.current), []);
|
|
2666
2672
|
const s = t.title ?? "", i = t.summary ?? "", o = () => {
|
|
@@ -2677,7 +2683,7 @@ ${i}`).catch(() => {
|
|
|
2677
2683
|
/* @__PURE__ */ f("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 8, minHeight: 24 }, children: [
|
|
2678
2684
|
/* @__PURE__ */ a(er, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "SUMMARY" }),
|
|
2679
2685
|
t.state === "ready" && /* @__PURE__ */ f("button", { type: "button", className: "sumcopy", title: "Copy title and summary", style: { color: e ? "var(--brand)" : "var(--ink-70)" }, onClick: o, children: [
|
|
2680
|
-
/* @__PURE__ */ a(ue, { d: e ? K.check :
|
|
2686
|
+
/* @__PURE__ */ a(ue, { d: e ? K.check : ol, size: 13, sw: 1.6 }),
|
|
2681
2687
|
e ? "Copied" : "Copy"
|
|
2682
2688
|
] })
|
|
2683
2689
|
] }),
|
|
@@ -2690,15 +2696,15 @@ ${i}`).catch(() => {
|
|
|
2690
2696
|
] })
|
|
2691
2697
|
] });
|
|
2692
2698
|
}
|
|
2693
|
-
function
|
|
2699
|
+
function il({ ytId: t, title: e, timeLabel: n, radius: r, style: s, large: i, children: o, picture: l }) {
|
|
2694
2700
|
return /* @__PURE__ */ f("div", { className: "livevid", style: { ...r != null ? { borderRadius: r } : null, ...s }, children: [
|
|
2695
2701
|
/* @__PURE__ */ a(ue, { 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: i ? 34 : 30, sw: 1.2 }),
|
|
2696
|
-
l ?? /* @__PURE__ */ a("iframe", { src:
|
|
2702
|
+
l ?? /* @__PURE__ */ a("iframe", { src: xo(t), title: e, referrerPolicy: "strict-origin-when-cross-origin", allow: "autoplay; encrypted-media; picture-in-picture" }),
|
|
2697
2703
|
n && /* @__PURE__ */ a("span", { className: "livevid__t", style: i ? { bottom: 10, right: 10 } : void 0, children: n }),
|
|
2698
2704
|
o
|
|
2699
2705
|
] });
|
|
2700
2706
|
}
|
|
2701
|
-
function
|
|
2707
|
+
function al(t = !0, e) {
|
|
2702
2708
|
const n = z(null), r = e ?? n;
|
|
2703
2709
|
return E(() => {
|
|
2704
2710
|
const s = r.current;
|
|
@@ -2719,8 +2725,8 @@ function il(t = !0, e) {
|
|
|
2719
2725
|
};
|
|
2720
2726
|
}, [t]), r;
|
|
2721
2727
|
}
|
|
2722
|
-
const
|
|
2723
|
-
function
|
|
2728
|
+
const ol = "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";
|
|
2729
|
+
function ll(t, e) {
|
|
2724
2730
|
const [n, r] = wa(t), s = e.tabs.map((h) => h.key), i = e.tabbed !== !1, o = e.pinnable ?? s;
|
|
2725
2731
|
let l = n;
|
|
2726
2732
|
[...e.autoPin ?? []].reverse().forEach((h) => {
|
|
@@ -2759,8 +2765,8 @@ function ol(t, e) {
|
|
|
2759
2765
|
};
|
|
2760
2766
|
return { id: t, tabbed: i && g.length > 1, cur: M, seq: d, pinnable: o, tabKeys: g, stripTabs: e.tabs.filter((h) => g.includes(h.key)), panel: N, pin: y, unpin: j };
|
|
2761
2767
|
}
|
|
2762
|
-
function
|
|
2763
|
-
return
|
|
2768
|
+
function cl({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: i }) {
|
|
2769
|
+
return ul(t), /* @__PURE__ */ f(Pe, { children: [
|
|
2764
2770
|
e.map((o) => {
|
|
2765
2771
|
const l = t.panel(o);
|
|
2766
2772
|
if (!l.show) return null;
|
|
@@ -2776,7 +2782,7 @@ function ll({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: i }) {
|
|
|
2776
2782
|
}, fold: !1 }) })
|
|
2777
2783
|
] });
|
|
2778
2784
|
}
|
|
2779
|
-
function
|
|
2785
|
+
function ul(t) {
|
|
2780
2786
|
const e = z(t);
|
|
2781
2787
|
e.current = t;
|
|
2782
2788
|
const n = t.id;
|
|
@@ -2877,9 +2883,9 @@ function cl(t) {
|
|
|
2877
2883
|
};
|
|
2878
2884
|
}, [n]);
|
|
2879
2885
|
}
|
|
2880
|
-
function
|
|
2886
|
+
function dl({ id: t, className: e, gap: n, hidden: r, plain: s, children: i }) {
|
|
2881
2887
|
const [o, l] = va(t), c = z(null), u = z(null);
|
|
2882
|
-
|
|
2888
|
+
Ml(u), E(() => {
|
|
2883
2889
|
document.documentElement.style.setProperty("--colw", `${o}px`);
|
|
2884
2890
|
}, [o]);
|
|
2885
2891
|
const d = (M) => {
|
|
@@ -2903,7 +2909,7 @@ function ul({ id: t, className: e, gap: n, hidden: r, plain: s, children: i }) {
|
|
|
2903
2909
|
/* @__PURE__ */ a("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...g }, children: s ? i : /* @__PURE__ */ a("div", { ref: u, "data-panel-grid": "", className: "panelgrid", children: i }) })
|
|
2904
2910
|
] });
|
|
2905
2911
|
}
|
|
2906
|
-
function
|
|
2912
|
+
function Ml(t) {
|
|
2907
2913
|
E(() => {
|
|
2908
2914
|
const e = t.current;
|
|
2909
2915
|
if (!e) return;
|
|
@@ -2931,11 +2937,11 @@ function dl(t) {
|
|
|
2931
2937
|
};
|
|
2932
2938
|
}, [t]);
|
|
2933
2939
|
}
|
|
2934
|
-
function
|
|
2940
|
+
function gl(t) {
|
|
2935
2941
|
return /\bwas not captured\b/i.test(t ?? "");
|
|
2936
2942
|
}
|
|
2937
|
-
const
|
|
2938
|
-
function
|
|
2943
|
+
const hl = 1500, fl = 3e5;
|
|
2944
|
+
function Nl(t) {
|
|
2939
2945
|
const e = Ct(), [n, r] = O(null), [s, i] = O(null), [o, l] = O(null), [c, u] = O(null), d = z(null), g = z(null), M = z(null), p = z(0), y = tt(() => {
|
|
2940
2946
|
M.current && (clearTimeout(M.current), M.current = null), d.current && (d.current.pause(), d.current.removeAttribute("src"), d.current.load(), d.current = null), g.current && (URL.revokeObjectURL(g.current), g.current = null);
|
|
2941
2947
|
}, []), j = tt(() => {
|
|
@@ -2967,13 +2973,13 @@ function fl(t) {
|
|
|
2967
2973
|
}
|
|
2968
2974
|
if (p.current !== C) return;
|
|
2969
2975
|
if (R.status === 202 || R.status === 503) {
|
|
2970
|
-
if (Date.now() - k >
|
|
2976
|
+
if (Date.now() - k > fl) {
|
|
2971
2977
|
l(null), u({ message: "This voice is still being fetched. Try it again in a moment." });
|
|
2972
2978
|
return;
|
|
2973
2979
|
}
|
|
2974
2980
|
l(h.id), M.current = setTimeout(() => {
|
|
2975
2981
|
te();
|
|
2976
|
-
},
|
|
2982
|
+
}, hl);
|
|
2977
2983
|
return;
|
|
2978
2984
|
}
|
|
2979
2985
|
if (!R.ok) {
|
|
@@ -3003,7 +3009,7 @@ const lr = 0.05, pi = (t, e) => {
|
|
|
3003
3009
|
for (let r = 0; r < t.length; r++) t[r].start <= e + 1e-6 && (n = r);
|
|
3004
3010
|
return n;
|
|
3005
3011
|
};
|
|
3006
|
-
function
|
|
3012
|
+
function pl(t, e, n, r) {
|
|
3007
3013
|
const s = Math.max(0, e), i = r > 0 && s >= r - lr, o = t.length && t[0].start <= s + 1e-6 ? pi(t, s) : -1;
|
|
3008
3014
|
return o < 0 ? { t: s, playing: n && !i, sentenceId: null, offset: 0, ended: i } : { t: s, playing: n && !i, sentenceId: t[o].sentenceId ?? null, offset: Math.max(0, s - t[o].start), ended: i };
|
|
3009
3015
|
}
|
|
@@ -3026,11 +3032,11 @@ function mi(t, e, n) {
|
|
|
3026
3032
|
const r = t[e], s = n && r.translations[n] && r.language !== n ? r.translations[n] : null;
|
|
3027
3033
|
if (!s && r.words.length) return r.words;
|
|
3028
3034
|
const i = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l = gi(r, t[e + 1], r.start + Math.max(2, i.length * 0.4));
|
|
3029
|
-
return
|
|
3035
|
+
return So(i, o, l).map((u, d) => ({ ...u, seq: r.seqs[0] ?? 0, idx: d }));
|
|
3030
3036
|
}
|
|
3031
|
-
function
|
|
3037
|
+
function Us(t, e, n) {
|
|
3032
3038
|
if (!t.engaged || e !== t.idx || !n.length) return null;
|
|
3033
|
-
if (!t.wordSync) return t.clipPos ?
|
|
3039
|
+
if (!t.wordSync) return t.clipPos ? ti(n.map((i) => ({ t: i.text, sp: " " })), t.clipPos) : null;
|
|
3034
3040
|
const r = t.t;
|
|
3035
3041
|
let s = -1;
|
|
3036
3042
|
for (let i = 0; i < n.length && n[i].start <= r; i++) s = i;
|
|
@@ -3048,7 +3054,7 @@ function Ot(t, e, n) {
|
|
|
3048
3054
|
const r = (s = t == null ? void 0 : t.words[t.words.length - 1]) == null ? void 0 : s.end;
|
|
3049
3055
|
return r != null && r > e ? r : (t == null ? void 0 : t.end) != null && t.end > e ? t.end : n > e ? n : e + 4;
|
|
3050
3056
|
}
|
|
3051
|
-
function
|
|
3057
|
+
function ml({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd: o, endT: l, onGone: c, onKnown: u, lead: d, onTime: g, waiting: M = !1 }) {
|
|
3052
3058
|
const p = z(null), [y, j] = O(!1);
|
|
3053
3059
|
E(() => {
|
|
3054
3060
|
if (!M) {
|
|
@@ -3083,7 +3089,7 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
|
|
|
3083
3089
|
S.current = n;
|
|
3084
3090
|
const ne = z(g);
|
|
3085
3091
|
ne.current = g;
|
|
3086
|
-
const $ = z(null), U = z(null), [Me, P] = O(!1), [
|
|
3092
|
+
const $ = z(null), U = z(null), [Me, P] = O(!1), [V, ae] = O(!1), oe = () => {
|
|
3087
3093
|
D("unloadModule", ["captions"]), D("unloadModule", ["cc"]);
|
|
3088
3094
|
}, re = z([]), we = () => {
|
|
3089
3095
|
oe(), re.current.forEach(clearTimeout), re.current = [400, 1200, 2500, 5e3].map((Z) => window.setTimeout(oe, Z));
|
|
@@ -3098,7 +3104,7 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
|
|
|
3098
3104
|
(!b.current || b.current.muted) && D("mute"), ae(!0);
|
|
3099
3105
|
};
|
|
3100
3106
|
E(() => (d == null || d.bind(D), () => d == null ? void 0 : d.bind(null)), [!!d]), E(() => {
|
|
3101
|
-
!d &&
|
|
3107
|
+
!d && V && D("mute");
|
|
3102
3108
|
}, [!!d]);
|
|
3103
3109
|
const Ce = z(null), xe = z(l);
|
|
3104
3110
|
xe.current = l;
|
|
@@ -3116,8 +3122,8 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
|
|
|
3116
3122
|
}, Ne = () => $.current;
|
|
3117
3123
|
return E(() => {
|
|
3118
3124
|
const Z = (de) => {
|
|
3119
|
-
var
|
|
3120
|
-
if (de.source !== ((
|
|
3125
|
+
var ve, fe, ge, q, je, $e, ye, be, He, Ie, Ye, Y, _, B, ee, ie;
|
|
3126
|
+
if (de.source !== ((ve = p.current) == null ? void 0 : ve.contentWindow) || typeof de.data != "string") return;
|
|
3121
3127
|
let W = null;
|
|
3122
3128
|
try {
|
|
3123
3129
|
W = JSON.parse(de.data);
|
|
@@ -3126,14 +3132,14 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
|
|
|
3126
3132
|
}
|
|
3127
3133
|
(ge = (fe = W == null ? void 0 : W.info) == null ? void 0 : fe.videoData) != null && ge.isLive && (te.current = !0);
|
|
3128
3134
|
const De = (q = W == null ? void 0 : W.info) == null ? void 0 : q.duration;
|
|
3129
|
-
typeof De == "number" && De > 0 && !te.current && (k.current == null ? k.current = De : (R.current = Math.abs(De - k.current) > 1.5, v())), (W == null ? void 0 : W.event) === "onReady" && ((!b.current || b.current.muted) && D("mute"), we(), (
|
|
3130
|
-
const
|
|
3131
|
-
if (
|
|
3135
|
+
typeof De == "number" && De > 0 && !te.current && (k.current == null ? k.current = De : (R.current = Math.abs(De - k.current) > 1.5, v())), (W == null ? void 0 : W.event) === "onReady" && ((!b.current || b.current.muted) && D("mute"), we(), (je = b.current) == null || je.onInfo({ ready: !0 })), typeof (($e = W == null ? void 0 : W.info) == null ? void 0 : $e.playerState) == "number" && (W.info.playerState !== U.current && (W.info.playerState === 1 || W.info.playerState === 2) && we(), U.current = W.info.playerState, P(W.info.playerState === 2 || W.info.playerState === 0), (ye = b.current) == null || ye.onInfo({ state: W.info.playerState }));
|
|
3136
|
+
const F = (be = W == null ? void 0 : W.info) == null ? void 0 : be.progressState;
|
|
3137
|
+
if (F && typeof F.seekableStart == "number" && typeof F.seekableEnd == "number" && F.seekableEnd > F.seekableStart) {
|
|
3132
3138
|
const Te = Ce.current == null;
|
|
3133
|
-
if (Ce.current = { start:
|
|
3139
|
+
if (Ce.current = { start: F.seekableStart, end: F.seekableEnd }, Te && !Qe.current && (D("pauseVideo"), m(S.current) || D("seekTo", [S.current, !0])), !Ae.current && xe.current != null) {
|
|
3134
3140
|
Ae.current = !0;
|
|
3135
|
-
const _e = xe.current <
|
|
3136
|
-
(He = ke.current) == null || He.call(ke, _e), _e && ((
|
|
3141
|
+
const _e = xe.current < F.seekableStart - 1;
|
|
3142
|
+
(He = ke.current) == null || He.call(ke, _e), _e && ((Ie = ce.current) == null || Ie.call(ce));
|
|
3137
3143
|
}
|
|
3138
3144
|
}
|
|
3139
3145
|
typeof ((Ye = W == null ? void 0 : W.info) == null ? void 0 : Ye.currentTime) == "number" && ($.current = W.info.currentTime, (Y = b.current) == null || Y.onInfo({ t: W.info.currentTime }), !N.current && U.current === 1 && ((_ = ne.current) == null || _.call(ne, W.info.currentTime))), ((B = W == null ? void 0 : W.info) == null ? void 0 : B.muted) === !1 && !b.current && D("mute"), typeof ((ee = W == null ? void 0 : W.info) == null ? void 0 : ee.muted) == "boolean" && ((ie = b.current) == null || ie.onInfo({ muted: W.info.muted }));
|
|
@@ -3142,33 +3148,33 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
|
|
|
3142
3148
|
}, []), E(() => {
|
|
3143
3149
|
if (d) return;
|
|
3144
3150
|
const Z = m(n);
|
|
3145
|
-
Z !== se && (le(Z), Z ? D("pauseVideo") :
|
|
3151
|
+
Z !== se && (le(Z), Z ? D("pauseVideo") : V && (D("seekTo", [n, !0]), T && D("playVideo")));
|
|
3146
3152
|
}), E(() => {
|
|
3147
|
-
if (!
|
|
3153
|
+
if (!V || se || d) return;
|
|
3148
3154
|
if (!T && Ce.current == null && !G.current) {
|
|
3149
3155
|
G.current = !0, D("seekTo", [S.current, !0]), D("playVideo");
|
|
3150
3156
|
return;
|
|
3151
3157
|
}
|
|
3152
3158
|
const Z = Ne();
|
|
3153
3159
|
T && (Z == null || Math.abs(Z - S.current) > 1.5) && A(), D(T ? "playVideo" : "pauseVideo");
|
|
3154
|
-
}, [T,
|
|
3155
|
-
if (!
|
|
3160
|
+
}, [T, V, se]), E(() => {
|
|
3161
|
+
if (!V || s === 0 || se || d) return;
|
|
3156
3162
|
const Z = Ne();
|
|
3157
3163
|
(Z == null || Math.abs(Z - S.current) > 0.5) && A(), T || D("pauseVideo");
|
|
3158
|
-
}, [s,
|
|
3159
|
-
if (!
|
|
3164
|
+
}, [s, V]), E(() => {
|
|
3165
|
+
if (!V) return;
|
|
3160
3166
|
let Z = null, de = 0;
|
|
3161
3167
|
const W = setInterval(() => {
|
|
3162
3168
|
const De = $.current;
|
|
3163
3169
|
de = U.current === 1 && De != null && Z != null && Math.abs(De - Z) < 0.05 ? de + 1 : 0, Z = De;
|
|
3164
|
-
const
|
|
3165
|
-
|
|
3170
|
+
const F = de >= 3;
|
|
3171
|
+
F !== X.current && (X.current = F, v());
|
|
3166
3172
|
}, 1e3);
|
|
3167
3173
|
return () => clearInterval(W);
|
|
3168
|
-
}, [
|
|
3174
|
+
}, [V]), /* @__PURE__ */ f("div", { className: `txyt${h ? " txyt--ad" : ""}`, children: [
|
|
3169
3175
|
/* @__PURE__ */ a("iframe", { ref: p, onLoad: pe, referrerPolicy: "strict-origin-when-cross-origin", src: `https://www.youtube-nocookie.com/embed/${t}?enablejsapi=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, title: e, allow: "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" }),
|
|
3170
3176
|
!h && /* @__PURE__ */ a("div", { "aria-hidden": "true", className: "txyt__tap", onClick: i, style: { cursor: i ? "pointer" : "default" } }),
|
|
3171
|
-
/* @__PURE__ */ a("div", { className: `txyt__paused${Me && !h && !se ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ a("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ a(
|
|
3177
|
+
/* @__PURE__ */ a("div", { className: `txyt__paused${Me && !h && !se ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ a("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ a(Ws, { size: 44 }) }) }),
|
|
3172
3178
|
h && /* @__PURE__ */ a("div", { className: "txyt__ad", "aria-live": "polite", children: "Ad on YouTube · the transcript carries on after it" }),
|
|
3173
3179
|
se && /* @__PURE__ */ f("div", { className: "txyt__gone", children: [
|
|
3174
3180
|
/* @__PURE__ */ a("span", { children: "YouTube no longer has this part of the broadcast" }),
|
|
@@ -3176,22 +3182,22 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
|
|
|
3176
3182
|
] })
|
|
3177
3183
|
] });
|
|
3178
3184
|
}
|
|
3179
|
-
const
|
|
3185
|
+
const yl = /* @__PURE__ */ f(Pe, { children: [
|
|
3180
3186
|
/* @__PURE__ */ a("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
|
|
3181
3187
|
/* @__PURE__ */ a("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
|
|
3182
|
-
] }),
|
|
3183
|
-
function
|
|
3188
|
+
] }), Tl = /* @__PURE__ */ a("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" });
|
|
3189
|
+
function Ll({ player: t, size: e }) {
|
|
3184
3190
|
const n = t.muted ? "Unmute" : "Mute";
|
|
3185
3191
|
return /* @__PURE__ */ a("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__ */ a(ue, { d: t.muted ? K.volumeOff : K.volume, size: 17, sw: 1.6, style: { color: t.muted ? "var(--ink-38)" : "var(--ink-70)" } }) });
|
|
3186
3192
|
}
|
|
3187
|
-
function
|
|
3193
|
+
function wl() {
|
|
3188
3194
|
const [t, e] = O(""), n = z(null), r = tt((s) => {
|
|
3189
3195
|
clearTimeout(n.current), e(s), n.current = setTimeout(() => e(""), 3e3);
|
|
3190
3196
|
}, []);
|
|
3191
3197
|
return E(() => () => clearTimeout(n.current), []), [t, r];
|
|
3192
3198
|
}
|
|
3193
|
-
const
|
|
3194
|
-
function
|
|
3199
|
+
const kl = 0.2, vl = 140, jl = 320;
|
|
3200
|
+
function zl(t, e) {
|
|
3195
3201
|
const n = z(t);
|
|
3196
3202
|
n.current = t;
|
|
3197
3203
|
const r = z(0), s = z(1), i = tt((o, l) => {
|
|
@@ -3205,13 +3211,13 @@ function jl(t, e) {
|
|
|
3205
3211
|
d();
|
|
3206
3212
|
}, []);
|
|
3207
3213
|
E(() => {
|
|
3208
|
-
i(e ?
|
|
3214
|
+
i(e ? kl : 1, e ? vl : jl);
|
|
3209
3215
|
}, [e, i]), E(() => () => {
|
|
3210
3216
|
cancelAnimationFrame(r.current), s.current = 1;
|
|
3211
3217
|
for (const o of n.current) o.setVolume(1);
|
|
3212
3218
|
}, []);
|
|
3213
3219
|
}
|
|
3214
|
-
function
|
|
3220
|
+
function Il(t, e, n, r) {
|
|
3215
3221
|
var Qe;
|
|
3216
3222
|
const s = z(null), i = z(!1), o = z(!1), [l, c] = O(null), [u, d] = O(!0), g = z(!0), M = z(!1), [p, y] = O(0), j = z(0);
|
|
3217
3223
|
j.current = p;
|
|
@@ -3224,7 +3230,7 @@ function zl(t, e, n, r) {
|
|
|
3224
3230
|
}, R = (G, ce) => {
|
|
3225
3231
|
var ke;
|
|
3226
3232
|
return (ke = s.current) == null ? void 0 : ke.call(s, G, ce);
|
|
3227
|
-
}, X = l === 1 || l === 3, I = z(null), b = z(null), Q =
|
|
3233
|
+
}, X = l === 1 || l === 3, I = z(null), b = z(null), Q = ze(() => ({
|
|
3228
3234
|
muted: !0,
|
|
3229
3235
|
bind: (G) => {
|
|
3230
3236
|
s.current = G, G || (i.current = !1);
|
|
@@ -3253,7 +3259,7 @@ function zl(t, e, n, r) {
|
|
|
3253
3259
|
}, [C, r, p]), E(() => {
|
|
3254
3260
|
r == null && k.current && (te(!1), R("playVideo"));
|
|
3255
3261
|
}, [r]);
|
|
3256
|
-
const L = t.length ? ((Qe = t[t.length - 1].words[t[t.length - 1].words.length - 1]) == null ? void 0 : Qe.end) ?? t[t.length - 1].start + 4 : 0, v = e || L || 1, S =
|
|
3262
|
+
const L = t.length ? ((Qe = t[t.length - 1].words[t[t.length - 1].words.length - 1]) == null ? void 0 : Qe.end) ?? t[t.length - 1].start + 4 : 0, v = e || L || 1, S = ze(() => {
|
|
3257
3263
|
if (!t.length) return 0;
|
|
3258
3264
|
let G = 0;
|
|
3259
3265
|
for (let ce = 0; ce < t.length; ce++) t[ce].start <= p + 0.05 && (G = ce);
|
|
@@ -3269,7 +3275,7 @@ function zl(t, e, n, r) {
|
|
|
3269
3275
|
R("playVideo");
|
|
3270
3276
|
}, P = () => {
|
|
3271
3277
|
o.current = !1, te(!1), R("pauseVideo");
|
|
3272
|
-
},
|
|
3278
|
+
}, V = () => {
|
|
3273
3279
|
if (!i.current) {
|
|
3274
3280
|
o.current = !0;
|
|
3275
3281
|
return;
|
|
@@ -3313,7 +3319,7 @@ function zl(t, e, n, r) {
|
|
|
3313
3319
|
dur: v,
|
|
3314
3320
|
muted: u,
|
|
3315
3321
|
seekN: ne,
|
|
3316
|
-
toggle:
|
|
3322
|
+
toggle: V,
|
|
3317
3323
|
seekRow: ae,
|
|
3318
3324
|
toggleMute: () => {
|
|
3319
3325
|
const G = !g.current;
|
|
@@ -3348,7 +3354,7 @@ function zl(t, e, n, r) {
|
|
|
3348
3354
|
setVolume: (G) => R("setVolume", [Math.round(G * 100)])
|
|
3349
3355
|
}, lead: Q, setVideoSound: pe };
|
|
3350
3356
|
}
|
|
3351
|
-
function
|
|
3357
|
+
function Ol(t, e, n, r, s = 0, i = null) {
|
|
3352
3358
|
var le;
|
|
3353
3359
|
const o = z(null), [l, c] = O(!1), [u, d] = O(0), [g, M] = O(!1), p = z(g);
|
|
3354
3360
|
p.current = g;
|
|
@@ -3362,7 +3368,7 @@ function Il(t, e, n, r, s = 0, i = null) {
|
|
|
3362
3368
|
c(!1), o.current = null;
|
|
3363
3369
|
return;
|
|
3364
3370
|
}
|
|
3365
|
-
const A =
|
|
3371
|
+
const A = Js(t), Ne = C.current;
|
|
3366
3372
|
return A.preload = "metadata", A.muted = p.current || y.current, A.onplay = () => c(!0), A.onpause = () => c(!1), A.onended = () => c(!1), A.onloadedmetadata = () => {
|
|
3367
3373
|
h(!0), A.currentTime = ((m == null ? void 0 : m.t) ?? 0) + Ne, m != null && m.playing && A.play().catch((Z) => {
|
|
3368
3374
|
m.asked && (Z == null ? void 0 : Z.name) === "NotAllowedError" || T(yt(Z));
|
|
@@ -3371,7 +3377,7 @@ function Il(t, e, n, r, s = 0, i = null) {
|
|
|
3371
3377
|
c(!1);
|
|
3372
3378
|
const Z = A.error, de = ha(Z, !1);
|
|
3373
3379
|
ua(t).then((W) => {
|
|
3374
|
-
|
|
3380
|
+
gl(W == null ? void 0 : W.message) || qs(Z), o.current === A && (T({ message: (W == null ? void 0 : W.message) ?? de }), W != null && W.permanent || (o.current = null));
|
|
3375
3381
|
});
|
|
3376
3382
|
}, o.current = A, () => {
|
|
3377
3383
|
D.current = { t: Math.max(0, A.currentTime - Ne), playing: !A.paused && !A.ended }, A.pause(), A.onplay = A.onpause = A.onended = A.onloadedmetadata = A.onerror = null, o.current = null;
|
|
@@ -3417,12 +3423,12 @@ function Il(t, e, n, r, s = 0, i = null) {
|
|
|
3417
3423
|
};
|
|
3418
3424
|
return m = requestAnimationFrame(A), () => cancelAnimationFrame(m);
|
|
3419
3425
|
}, [l]);
|
|
3420
|
-
const U =
|
|
3426
|
+
const U = ze(() => {
|
|
3421
3427
|
if (!n.length) return 0;
|
|
3422
3428
|
let m = 0;
|
|
3423
3429
|
for (let A = 0; A < n.length; A++) n[A].start <= u + 0.05 && (m = A);
|
|
3424
3430
|
return m;
|
|
3425
|
-
}, [n, u]), [Me, P] = O(0),
|
|
3431
|
+
}, [n, u]), [Me, P] = O(0), V = (m) => {
|
|
3426
3432
|
const A = L.current != null ? Math.min(m, Math.max(0, L.current - 0.5)) : m, Ne = o.current;
|
|
3427
3433
|
d(A), Ne && (Ne.currentTime = A + C.current), P((Z) => Z + 1);
|
|
3428
3434
|
}, ae = (m) => {
|
|
@@ -3446,13 +3452,13 @@ function Il(t, e, n, r, s = 0, i = null) {
|
|
|
3446
3452
|
$(!1);
|
|
3447
3453
|
return;
|
|
3448
3454
|
}
|
|
3449
|
-
m.currentTime < C.current && (m.currentTime = C.current), u >= I - 0.25 &&
|
|
3455
|
+
m.currentTime < C.current && (m.currentTime = C.current), u >= I - 0.25 && V(0), m.play().catch(ae);
|
|
3450
3456
|
}, re = (m) => {
|
|
3451
3457
|
const A = n[Math.max(0, Math.min(n.length - 1, m))];
|
|
3452
|
-
A &&
|
|
3453
|
-
}, we = (m) =>
|
|
3458
|
+
A && V(A.start);
|
|
3459
|
+
}, we = (m) => V(Math.max(0, Math.min(1, m)) * I), pe = (m) => {
|
|
3454
3460
|
const A = gn(m, n, I);
|
|
3455
|
-
|
|
3461
|
+
V(A.t);
|
|
3456
3462
|
const Ne = o.current;
|
|
3457
3463
|
if (Ne) {
|
|
3458
3464
|
if (!A.playing) {
|
|
@@ -3461,7 +3467,7 @@ function Il(t, e, n, r, s = 0, i = null) {
|
|
|
3461
3467
|
}
|
|
3462
3468
|
$(!1), Ne.play().catch(ae);
|
|
3463
3469
|
}
|
|
3464
|
-
}, Ce = (m) =>
|
|
3470
|
+
}, Ce = (m) => V(m.start), xe = (m) => {
|
|
3465
3471
|
re(m);
|
|
3466
3472
|
const A = o.current;
|
|
3467
3473
|
A && A.paused && A.play().catch(ae);
|
|
@@ -3540,15 +3546,15 @@ function Il(t, e, n, r, s = 0, i = null) {
|
|
|
3540
3546
|
}
|
|
3541
3547
|
};
|
|
3542
3548
|
}
|
|
3543
|
-
function
|
|
3549
|
+
function Cl(t, e, n, r, s, i, o = !1, l) {
|
|
3544
3550
|
const c = z(/* @__PURE__ */ new Set());
|
|
3545
3551
|
c.current = l ?? c.current;
|
|
3546
3552
|
const u = z(null), [d, g] = O(!1), [M, p] = O(0), [y, j] = O(0), [T, N] = O(!1), h = z(T);
|
|
3547
3553
|
h.current = T;
|
|
3548
3554
|
const [C, D] = O(null), [k, te] = O(null), [R, X] = O(null), [I, b] = O(null), Q = z(I);
|
|
3549
3555
|
Q.current = I;
|
|
3550
|
-
const [L, v] = O(null), [S, ne] = O(null), [$, U] = O(null), [Me, P] = O(!1),
|
|
3551
|
-
|
|
3556
|
+
const [L, v] = O(null), [S, ne] = O(null), [$, U] = O(null), [Me, P] = O(!1), V = z(e);
|
|
3557
|
+
V.current = e;
|
|
3552
3558
|
const ae = z(o), oe = z([]);
|
|
3553
3559
|
ae.current = o, u.current && (u.current.flow = o);
|
|
3554
3560
|
const re = z(null), we = z(s);
|
|
@@ -3558,13 +3564,13 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
|
|
|
3558
3564
|
const Ce = tt((Y) => {
|
|
3559
3565
|
Y.finite = !0, Y.coming = (_) => c.current.has(_), Y.readAhead = 6, Y.readAheadS = 45, Y.onWaiting = (_) => te(_), Y.onStarting = (_) => X(_), Y.onSentence = (_) => {
|
|
3560
3566
|
if (g(Y.playing), _ == null) return;
|
|
3561
|
-
const B =
|
|
3567
|
+
const B = V.current.findIndex((ee) => ee.sentenceId === _);
|
|
3562
3568
|
B >= 0 && p(B);
|
|
3563
3569
|
}, Y.onError = (_) => {
|
|
3564
|
-
g(Y.playing), D(_ instanceof
|
|
3570
|
+
g(Y.playing), D(_ instanceof Xs ? { 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." });
|
|
3565
3571
|
}, Y.gapBefore = (_, B) => {
|
|
3566
3572
|
if (!ae.current) return 0;
|
|
3567
|
-
const ee =
|
|
3573
|
+
const ee = V.current, ie = ee.find((Le) => Le.sentenceId === _), Te = ee.find((Le) => Le.sentenceId === B);
|
|
3568
3574
|
if (!Te) return 0;
|
|
3569
3575
|
const _e = Q.current;
|
|
3570
3576
|
if (_ == null) return _e && _e.sid === B ? Math.max(0, Te.start - _e.t) : 0;
|
|
@@ -3572,20 +3578,20 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
|
|
|
3572
3578
|
return Ee && Date.now() - Ee.at < 2e3 ? Math.max(0, Te.start - (Ee.t + (Date.now() - Ee.at) / 1e3 * Y.rate)) : !ie || Te.start <= ie.start ? 0 : Math.max(0, Te.start - Ot(ie, ie.start, ie.start + 4));
|
|
3573
3579
|
}, Y.flow = ae.current, Y.silentSpan = (_) => {
|
|
3574
3580
|
var qe;
|
|
3575
|
-
const B =
|
|
3581
|
+
const B = V.current, ee = B.findIndex((it) => it.sentenceId === _), ie = B[ee];
|
|
3576
3582
|
if (!ie) return null;
|
|
3577
3583
|
const Te = ((qe = B[ee + 1]) == null ? void 0 : qe.start) ?? Ot(ie, ie.start, ie.start + 4), _e = Math.max(0, Te - ie.start), Ee = re.current, Le = Ee && Date.now() - Ee.at < 2e3 ? Ee.t + (Date.now() - Ee.at) / 1e3 * (Y.rate || 1) : ie.start, Ve = Math.max(0, Math.min(_e, Le - ie.start));
|
|
3578
3584
|
return { fromS: Ve, ms: (_e - Ve) * 1e3 / (Y.rate || 1) };
|
|
3579
3585
|
}, Y.speakable = (_) => {
|
|
3580
3586
|
const B = we.current;
|
|
3581
3587
|
if (!B || !B.size) return !0;
|
|
3582
|
-
const ee =
|
|
3588
|
+
const ee = V.current.find((ie) => ie.sentenceId === _);
|
|
3583
3589
|
return !ee || !B.has(ee.speaker);
|
|
3584
3590
|
};
|
|
3585
3591
|
}, []), xe = z(null), Qe = z(null), G = z(null), [ce, ke] = O(!1), Ae = z(() => {
|
|
3586
3592
|
}), se = (Y) => {
|
|
3587
3593
|
if (G.current = Y, ke(!!(Y != null && Y.playing)), !Y) return;
|
|
3588
|
-
const _ = gn(Y,
|
|
3594
|
+
const _ = gn(Y, V.current, F).index;
|
|
3589
3595
|
p(_), fe.current = _;
|
|
3590
3596
|
}, le = () => {
|
|
3591
3597
|
G.current && se(null);
|
|
@@ -3602,7 +3608,7 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
|
|
|
3602
3608
|
const _ = G.current;
|
|
3603
3609
|
_ && (ae.current || t.some((ee) => ee.sentenceId >= (_.sentenceId ?? 0))) && (se(null), Ae.current(_));
|
|
3604
3610
|
}, [r, t]);
|
|
3605
|
-
const m =
|
|
3611
|
+
const m = ze(() => o ? e.map((Y) => Y.sentenceId).filter((Y) => Y != null) : [], [e, o]);
|
|
3606
3612
|
oe.current = m, E(() => {
|
|
3607
3613
|
var Y;
|
|
3608
3614
|
(Y = u.current) == null || Y.setSequence(m);
|
|
@@ -3629,14 +3635,14 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
|
|
|
3629
3635
|
const _ = setInterval(Y, 100);
|
|
3630
3636
|
return () => clearInterval(_);
|
|
3631
3637
|
}, [d, A]);
|
|
3632
|
-
const Ne =
|
|
3638
|
+
const Ne = ze(() => new Set(t.map((Y) => Y.sentenceId)), [t]), Z = (Y) => {
|
|
3633
3639
|
var B;
|
|
3634
3640
|
const _ = (B = e[Y]) == null ? void 0 : B.sentenceId;
|
|
3635
3641
|
return _ != null && Ne.has(_);
|
|
3636
3642
|
}, de = (Y, _) => {
|
|
3637
3643
|
for (let B = Y; B >= 0 && B < e.length; B += _) if (Z(B)) return B;
|
|
3638
3644
|
return null;
|
|
3639
|
-
}, W = Math.max(0, Math.min(M, Math.max(0, e.length - 1))), De = e.length ? e[e.length - 1].start + 4 : 0,
|
|
3645
|
+
}, W = Math.max(0, Math.min(M, Math.max(0, e.length - 1))), De = e.length ? e[e.length - 1].start + 4 : 0, F = n || De || 1, ve = z(!1), fe = z(M);
|
|
3640
3646
|
fe.current = M;
|
|
3641
3647
|
const ge = (Y) => {
|
|
3642
3648
|
var _, B, ee;
|
|
@@ -3645,22 +3651,22 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
|
|
|
3645
3651
|
var B, ee, ie;
|
|
3646
3652
|
const _ = Math.max(0, Math.min(Math.max(0, e.length - 1), Y));
|
|
3647
3653
|
p(_), fe.current = _, j((Te) => Te + 1), (ee = u.current) == null || ee.seek(((B = e[_]) == null ? void 0 : B.sentenceId) ?? null), g(!!((ie = u.current) != null && ie.playing));
|
|
3648
|
-
},
|
|
3654
|
+
}, je = (Y) => {
|
|
3649
3655
|
var _;
|
|
3650
3656
|
le(), b(null), (_ = u.current) == null || _.startWithin(-1, 0), q(Y);
|
|
3651
3657
|
}, $e = (Y) => {
|
|
3652
3658
|
var ie;
|
|
3653
|
-
const _ = e[Y], B = (_ == null ? void 0 : _.start) ?? 0, ee = ((ie = e[Y + 1]) == null ? void 0 : ie.start) ?? Ot(_, B,
|
|
3659
|
+
const _ = e[Y], B = (_ == null ? void 0 : _.start) ?? 0, ee = ((ie = e[Y + 1]) == null ? void 0 : ie.start) ?? Ot(_, B, F);
|
|
3654
3660
|
return { from: B, span: Math.max(0, ee - B) };
|
|
3655
3661
|
}, ye = $e(W), be = Math.max(0, Math.min(ye.span, Ot(e[W], ye.from, ye.from + 4) - ye.from)), He = I ? I.t : o ? S != null && Me ? ye.from + Math.min(ye.span, S) : S != null ? $ != null ? Math.min(ye.from, $ + S) : ye.from + Math.min(ye.span, be + S) : L && L.dur > 0 ? ye.from + Math.min(be, L.t / L.dur * be) : ye.from : L && L.dur > 0 ? ye.from + Math.min(ye.span, L.t / L.dur * ye.span) : ye.from;
|
|
3656
3662
|
E(() => {
|
|
3657
|
-
Qe.current = G.current ??
|
|
3663
|
+
Qe.current = G.current ?? pl(e, He, d, F);
|
|
3658
3664
|
});
|
|
3659
|
-
const
|
|
3665
|
+
const Ie = {
|
|
3660
3666
|
playing: d || ce,
|
|
3661
3667
|
t: He,
|
|
3662
3668
|
idx: W,
|
|
3663
|
-
dur:
|
|
3669
|
+
dur: F,
|
|
3664
3670
|
muted: T,
|
|
3665
3671
|
wordSync: !1,
|
|
3666
3672
|
timed: o,
|
|
@@ -3706,20 +3712,20 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
|
|
|
3706
3712
|
var Y, _, B;
|
|
3707
3713
|
le(), (Y = u.current) == null || Y.pause(), g(!1), p(0), v(null), (B = u.current) == null || B.seek(((_ = e[0]) == null ? void 0 : _.sentenceId) ?? null);
|
|
3708
3714
|
},
|
|
3709
|
-
seekRow:
|
|
3715
|
+
seekRow: je,
|
|
3710
3716
|
resumeAt: (Y) => {
|
|
3711
3717
|
se(Y), t.some((_) => _.sentenceId >= (Y.sentenceId ?? 0)) && (se(null), Ae.current(Y));
|
|
3712
3718
|
},
|
|
3713
3719
|
seekFrac: (Y) => {
|
|
3714
|
-
var
|
|
3720
|
+
var it, Tt, gt;
|
|
3715
3721
|
le();
|
|
3716
|
-
const _ = Math.max(0, Math.min(1, Y)) *
|
|
3722
|
+
const _ = Math.max(0, Math.min(1, Y)) * F;
|
|
3717
3723
|
let B = 0;
|
|
3718
3724
|
for (let We = 0; We < e.length; We++) e[We].start <= _ && (B = We);
|
|
3719
3725
|
const ee = e[B], ie = o && ee && _ < ee.start - 0.05;
|
|
3720
3726
|
if (o && ee && (ie || e[B + 1] && _ >= Ot(ee, ee.start, ee.start + 4))) {
|
|
3721
3727
|
const We = ie ? B : B + 1, Ue = e[We];
|
|
3722
|
-
(
|
|
3728
|
+
(it = u.current) == null || it.startWithin(-1, 0);
|
|
3723
3729
|
const nt = { t: _, sid: Ue.sentenceId ?? null };
|
|
3724
3730
|
Q.current = nt, b(nt), q(We);
|
|
3725
3731
|
return;
|
|
@@ -3733,7 +3739,7 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
|
|
|
3733
3739
|
const Ue = ee.words[We], nt = Ue.end > Ue.start ? Math.max(0, Math.min(1, (_ - Ue.start) / (Ue.end - Ue.start))) : 0;
|
|
3734
3740
|
Le = Math.min(1, (Ve[We][0] + nt * (Ve[We][1] - Ve[We][0])) / qe);
|
|
3735
3741
|
}
|
|
3736
|
-
Te != null && ((
|
|
3742
|
+
Te != null && ((gt = u.current) == null || gt.startWithin(Te, Le)), b(Le > 0.01 ? { t: _, sid: Te } : null), q(B);
|
|
3737
3743
|
},
|
|
3738
3744
|
seekWord: i ? (Y) => {
|
|
3739
3745
|
var ie, Te, _e, Ee;
|
|
@@ -3750,18 +3756,18 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
|
|
|
3750
3756
|
},
|
|
3751
3757
|
prev: () => {
|
|
3752
3758
|
const Y = de(W - 1, -1);
|
|
3753
|
-
Y != null &&
|
|
3759
|
+
Y != null && je(Y);
|
|
3754
3760
|
},
|
|
3755
3761
|
next: () => {
|
|
3756
3762
|
const Y = de(W + 1, 1);
|
|
3757
|
-
Y != null &&
|
|
3763
|
+
Y != null && je(Y);
|
|
3758
3764
|
},
|
|
3759
3765
|
hold: () => {
|
|
3760
3766
|
var Y;
|
|
3761
|
-
d && ((Y = u.current) == null || Y.pause(),
|
|
3767
|
+
d && ((Y = u.current) == null || Y.pause(), ve.current = !0);
|
|
3762
3768
|
},
|
|
3763
3769
|
release: () => {
|
|
3764
|
-
|
|
3770
|
+
ve.current && (ve.current = !1, ge(fe.current));
|
|
3765
3771
|
},
|
|
3766
3772
|
clearError: () => D(null),
|
|
3767
3773
|
setVolume: (Y) => {
|
|
@@ -3777,51 +3783,51 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
|
|
|
3777
3783
|
const B = ((Te = u.current) == null ? void 0 : Te.resting()) ?? null;
|
|
3778
3784
|
ne((B == null ? void 0 : B.s) ?? null), P(!!(B != null && B.silent)), g(!!((_e = u.current) != null && _e.playing));
|
|
3779
3785
|
}
|
|
3780
|
-
return
|
|
3781
|
-
le(), Ye(gn({ t: Y, playing: !0, sentenceId: null, offset: 0, ended: !1 }, e,
|
|
3786
|
+
return Ie.joinAt = o ? (Y) => {
|
|
3787
|
+
le(), Ye(gn({ t: Y, playing: !0, sentenceId: null, offset: 0, ended: !1 }, e, F).index);
|
|
3782
3788
|
} : void 0, Ae.current = (Y) => {
|
|
3783
3789
|
var B;
|
|
3784
|
-
const _ = gn(Y, e,
|
|
3790
|
+
const _ = gn(Y, e, F);
|
|
3785
3791
|
if (ae.current) {
|
|
3786
3792
|
p(_.index), fe.current = _.index, _.playing && Ye(_.index);
|
|
3787
3793
|
return;
|
|
3788
3794
|
}
|
|
3789
|
-
(B =
|
|
3790
|
-
},
|
|
3795
|
+
(B = Ie.seekFrac) == null || B.call(Ie, _.t / F), _.playing && ge(fe.current);
|
|
3796
|
+
}, Ie;
|
|
3791
3797
|
}
|
|
3792
|
-
const
|
|
3793
|
-
},
|
|
3794
|
-
function
|
|
3798
|
+
const xl = () => {
|
|
3799
|
+
}, Dl = "The language this recording is read aloud in.", bl = { title: "READ IN", note: "The transcript and its voice switch to this language." };
|
|
3800
|
+
function Sl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, langs: o, srcLang: l, canTranslate: c, pickedLang: u, setPickedLang: d, side: g, hearOriginal: M = !1, timed: p = !1, stockVoices: y = !1, stickyPicker: j = !1, pickerBusy: T = null, voiceSheet: N }) {
|
|
3795
3801
|
var ft, Kt, Jt, Xt;
|
|
3796
|
-
const { onAddVoice: h, onPickVoice: C, onSelectSpeaker: D, noCloneFor: k, castNoClone: te, castShort: R, castBuilding: X, badge: I, titleNode: b } = N ?? {}, Q = !!N, L = !!(N != null && N.pendingClones), [v, S] = Ta(), [ne, $] = O(null), [U, Me] = O(!1), [P,
|
|
3802
|
+
const { onAddVoice: h, onPickVoice: C, onSelectSpeaker: D, noCloneFor: k, castNoClone: te, castShort: R, castBuilding: X, badge: I, titleNode: b } = N ?? {}, Q = !!N, L = !!(N != null && N.pendingClones), [v, S] = Ta(), [ne, $] = O(null), [U, Me] = O(!1), [P, V] = O(!1), [ae, oe] = O(!1), [re, we] = O(!1), pe = u ?? l, Ce = u === null, xe = u != null || ne != null, G = ((H) => !!H && !!(o != null && o.voice.includes(H)))(Ce ? l : pe) ? Ce ? l : pe : "en", ce = Nl(G), ke = (N == null ? void 0 : N.cloneOn) ?? !0, [Ae, se] = O(0), le = z(ke);
|
|
3797
3803
|
E(() => {
|
|
3798
|
-
le.current !== ke && (le.current = ke, se((
|
|
3804
|
+
le.current !== ke && (le.current = ke, se((H) => H + 1));
|
|
3799
3805
|
}, [ke]);
|
|
3800
|
-
const m =
|
|
3801
|
-
const
|
|
3802
|
-
for (const [
|
|
3803
|
-
return
|
|
3804
|
-
}, [q, A, fe, G, ke]), be =
|
|
3805
|
-
() => n.filter((
|
|
3806
|
+
const m = Zo(G, xe || s || P, qo(e) * 1e3 + Ae, { id: t ?? null, shareCode: i.shareCode ?? null }), A = ze(() => ((m == null ? void 0 : m.voices) ?? []).filter((H) => Q || !H.cloned || H.speaker != null), [m, Q]), Ne = A.length > 1, Z = Ys(o, pe), de = di(), W = ze(() => La(o, "translation"), [o]), [De, F] = O(null), [ve] = O(() => /* @__PURE__ */ new Set()), [fe, ge] = O({}), q = ze(() => Ho(n, e, de.vcUnknownSpk), [n, e, de]), je = Ne && q.filter((H) => H.key >= 0).length > 1, $e = De != null && q.some((H) => H.key === De) ? De : ((ft = q[0]) == null ? void 0 : ft.key) ?? null, ye = ze(() => {
|
|
3807
|
+
const H = Es(q, A, ke);
|
|
3808
|
+
for (const [Oe, Be] of Object.entries(fe[G ?? ""] ?? {})) H.set(Number(Oe), Be);
|
|
3809
|
+
return H;
|
|
3810
|
+
}, [q, A, fe, G, ke]), be = je && Object.keys(fe[G ?? ""] ?? {}).length > 0, He = ze(() => y && !be ? Es(q, A, !1) : null, [y, be, q, A]), Ie = ze(() => be ? Ss(ye) || null : He && Ss(He) || null, [be, ye, He]), Ye = be ? ye : He, Y = A.some((H) => H.cloned && H.consent !== "pending"), _ = !!pe && !!(o != null && o.voice.includes(pe)), B = _ && !M, ee = ze(
|
|
3811
|
+
() => n.filter((H) => !H.suppressed && !H.unclear).map((H) => H.sentenceId).filter((H) => H != null),
|
|
3806
3812
|
[n]
|
|
3807
|
-
), ie =
|
|
3808
|
-
var
|
|
3809
|
-
return
|
|
3810
|
-
}) ?? A.find((
|
|
3813
|
+
), ie = Ko({ recordingId: t, lang: pe, ended: s, cred: i, pickedVoice: Ie ?? ne, sentenceIds: s && B ? ee : void 0 }), Te = A.find((H) => H.id === ne) ?? A.find((H) => {
|
|
3814
|
+
var Oe;
|
|
3815
|
+
return H.id === ((Oe = ie.track) == null ? void 0 : Oe.voice);
|
|
3816
|
+
}) ?? A.find((H) => H.default) ?? A[0] ?? null, _e = (Te == null ? void 0 : Te.id) ?? null;
|
|
3811
3817
|
E(() => {
|
|
3812
3818
|
if (!ie.rendering) return;
|
|
3813
|
-
const
|
|
3814
|
-
return () => clearInterval(
|
|
3819
|
+
const H = setInterval(ie.reload, 4e3);
|
|
3820
|
+
return () => clearInterval(H);
|
|
3815
3821
|
}, [ie.rendering, ie.reload]);
|
|
3816
|
-
const Ee = `${t ?? ""}|${pe ?? ""}|${
|
|
3822
|
+
const Ee = `${t ?? ""}|${pe ?? ""}|${Ie ?? ne ?? ((Kt = ie.track) == null ? void 0 : Kt.voiceKey) ?? "default"}`, Le = Cl(ie.clips, n, r, Ee, ve, (Jt = ie.track) == null ? void 0 : Jt.wordTimes, p, ie.coming);
|
|
3817
3823
|
E(() => {
|
|
3818
|
-
var
|
|
3819
|
-
const
|
|
3820
|
-
|
|
3824
|
+
var Oe;
|
|
3825
|
+
const H = (Oe = n[Le.idx]) == null ? void 0 : Oe.sentenceId;
|
|
3826
|
+
H != null && ie.setNear(H);
|
|
3821
3827
|
}, [Le.idx]), E(() => {
|
|
3822
3828
|
!re || !Le.has || (we(!1), Le.playing || Le.toggle());
|
|
3823
3829
|
}, [re, Le.has]);
|
|
3824
|
-
const Ve = ie.rendering, qe = Ve ? null : ie.failed ?? null,
|
|
3830
|
+
const Ve = ie.rendering, qe = Ve ? null : ie.failed ?? null, it = !1, Tt = xe && B, gt = xe && !Ce && B && !(ie.listed && ie.listed.lang === pe && ie.listed.recordingId === t), We = {
|
|
3825
3831
|
...Le,
|
|
3826
3832
|
has: Le.has || Tt && s,
|
|
3827
3833
|
toggle: () => {
|
|
@@ -3832,108 +3838,101 @@ function bl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, lan
|
|
|
3832
3838
|
Le.toggle();
|
|
3833
3839
|
}
|
|
3834
3840
|
}, Ue = () => Me(!0), nt = () => {
|
|
3835
|
-
Me(!1),
|
|
3836
|
-
}, Fe = (
|
|
3837
|
-
if (d(
|
|
3838
|
-
if (
|
|
3841
|
+
Me(!1), V(ae), oe(!1);
|
|
3842
|
+
}, Fe = (H) => {
|
|
3843
|
+
if (d(H), S(H), !((g || j) && !ae)) {
|
|
3844
|
+
if (H != null) {
|
|
3839
3845
|
nt();
|
|
3840
3846
|
return;
|
|
3841
3847
|
}
|
|
3842
|
-
ce.reset(), Me(!1),
|
|
3848
|
+
ce.reset(), Me(!1), V(!1), oe(!1);
|
|
3843
3849
|
}
|
|
3844
3850
|
}, Lt = () => {
|
|
3845
|
-
ce.reset(),
|
|
3851
|
+
ce.reset(), V(!0);
|
|
3846
3852
|
}, ut = () => {
|
|
3847
|
-
ce.reset(),
|
|
3853
|
+
ce.reset(), V(!1);
|
|
3848
3854
|
}, vt = U && !ae, J = P || U && ae, Ut = () => {
|
|
3849
3855
|
if (vt) {
|
|
3850
3856
|
Me(!1);
|
|
3851
3857
|
return;
|
|
3852
3858
|
}
|
|
3853
|
-
ce.reset(),
|
|
3859
|
+
ce.reset(), V(!1), oe(!1), Me(!0);
|
|
3854
3860
|
}, x = () => {
|
|
3855
3861
|
if (ce.reset(), J) {
|
|
3856
|
-
|
|
3862
|
+
V(!1), Me(!1), oe(!1);
|
|
3857
3863
|
return;
|
|
3858
3864
|
}
|
|
3859
|
-
Me(!1), oe(!1),
|
|
3860
|
-
}, Tn = (
|
|
3861
|
-
if (ce.reset(),
|
|
3862
|
-
const
|
|
3863
|
-
|
|
3865
|
+
Me(!1), oe(!1), V(!0);
|
|
3866
|
+
}, Tn = (H) => {
|
|
3867
|
+
if (ce.reset(), V(je), (pe !== G || Ce) && d(G), ie.forget(), we(!0), je && $e != null && G) {
|
|
3868
|
+
const Oe = new Map(ye);
|
|
3869
|
+
Oe.set($e, H), ge((Be) => ({ ...Be, [G]: Object.fromEntries(Oe) })), $(null);
|
|
3864
3870
|
return;
|
|
3865
3871
|
}
|
|
3866
|
-
$(
|
|
3867
|
-
}, rt = Ce ? { ...
|
|
3868
|
-
const
|
|
3869
|
-
if (!
|
|
3870
|
-
const
|
|
3871
|
-
for (const Be of
|
|
3872
|
-
if (
|
|
3872
|
+
$(H);
|
|
3873
|
+
}, rt = Ce ? { ...Ys(o, null), flag: /* @__PURE__ */ a(ue, { d: K.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : Z, xt = c ? g ? /* @__PURE__ */ a("span", { className: "barchip", style: vt ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ a(fn, { flag: rt.flag, code: rt.code, bordered: !1, onClick: Ut, style: _s }) }) : /* @__PURE__ */ a(fn, { flag: rt.flag, code: rt.code, bordered: !1, onClick: Ue, style: _s }) : null, jt = K.voiceClone, Ft = xe && (!!ie.track || Ve), Wt = qe ? "var(--conf-low)" : Ft || g && J ? "var(--brand)" : "var(--ink-55)", Ge = Ve || !!Le.preparing && xe, dt = Le.preparing ? `Speaking this line in ${(Te == null ? void 0 : Te.name) ?? "this voice"}…` : Ve ? `Preparing this recording in ${(Te == null ? void 0 : Te.name) ?? "this voice"} — it will play as soon as it is ready` : qe ? `This voice could not be prepared: ${qe}` : _ ? Ne ? "Choose a voice" : Te ? Te.name : de.vcNoVoice + Z.label : `${de.vcNoVoice}${Z.label}`, Dt = /* @__PURE__ */ a(ja, { open: U, onClose: nt, keepOpen: (!!g || j) && !ae, value: Ce ? null : pe, onSelect: Fe, languages: W, title: (g == null ? void 0 : g.title) ?? "SPOKEN LANGUAGE", note: (g == null ? void 0 : g.note) ?? Dl, searchPlaceholder: de.search, none: "Original", pinned: (Ce ? l : pe) ? [Ce ? l : pe] : [], recent: v, requireVoice: ae, sticky: j, busy: T }), at = ze(() => A.filter((H) => H.cloned && !H.auto), [A]), lt = (H) => H.voiceId ? at.find((Oe) => Oe.id === `clone:${H.voiceId}`) ?? null : null, Mt = ze(() => q.filter((H) => H.key >= 0), [q]), bt = ze(() => {
|
|
3874
|
+
const H = A.filter((Be) => !Be.cloned);
|
|
3875
|
+
if (!je) return [...H, ...s && Mt.length === 1 ? at.filter((Be) => Be.id === `clone:${Mt[0].voiceId}`) : []];
|
|
3876
|
+
const Oe = [];
|
|
3877
|
+
for (const Be of Mt) {
|
|
3878
|
+
if (lt(Be)) continue;
|
|
3873
3879
|
const Nt = A.find((zt) => zt.cloned && zt.auto && zt.speaker === Be.key);
|
|
3874
|
-
!Nt || Nt.ready === !1 || Nt.consent === "pending" && !L ||
|
|
3880
|
+
!Nt || Nt.ready === !1 || Nt.consent === "pending" && !L || Oe.push({ id: Nt.id, name: Be.name, cloned: !0, default: !1, live: !0, auto: !0, gender: Be.sex ?? Nt.gender ?? null, speaker: Be.key, consent: Nt.consent ?? null });
|
|
3875
3881
|
}
|
|
3876
|
-
return [...
|
|
3877
|
-
}, [A,
|
|
3878
|
-
var
|
|
3879
|
-
return
|
|
3880
|
-
}, Rt =
|
|
3881
|
-
if (!it) return bt;
|
|
3882
|
-
const F = new Set(gt.filter((ve) => ve.key !== it.key).map((ve) => {
|
|
3883
|
-
var Be;
|
|
3884
|
-
return (Be = ot(ve)) == null ? void 0 : Be.id;
|
|
3885
|
-
}).filter(Boolean));
|
|
3886
|
-
return bt.filter((ve) => ve.cloned ? ve.live ? ve.speaker === it.key : !F.has(ve.id) : !0);
|
|
3887
|
-
}, [bt, it, Rt, gt]), et = (F) => A.find((ve) => ve.cloned && ve.auto && ve.speaker === F) ?? null, ht = { people: gt, gvList: A, autoOf: et, savedFor: ot }, St = (I == null ? void 0 : I(ht)) ?? 0, Zt = /* @__PURE__ */ f("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": g ? J : void 0, title: Ge || qe ? dt : void 0, style: { cursor: "pointer", background: Ft || Ge || g && J ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: g && J ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: g ? x : Lt, children: [
|
|
3882
|
+
return [...H, ...at, ...Oe];
|
|
3883
|
+
}, [A, at, je, Mt, L, s]), st = je ? Mt.find((H) => H.key === $e) ?? null : null, Gt = (H) => {
|
|
3884
|
+
var Oe;
|
|
3885
|
+
return H ? ((Oe = A.find((Be) => Be.id === H)) == null ? void 0 : Oe.gender) ?? null : null;
|
|
3886
|
+
}, Rt = st ? st.sex ?? Gt(ye.get(st.key)) : null, wt = ze(() => st ? bt.filter((H) => H.cloned ? H.live ? H.speaker === st.key : H.id === `clone:${st.voiceId}` : !0) : bt, [bt, st, Rt, Mt]), et = (H) => A.find((Oe) => Oe.cloned && Oe.auto && Oe.speaker === H) ?? null, ht = { people: Mt, gvList: A, autoOf: et, savedFor: lt }, St = (I == null ? void 0 : I(ht)) ?? 0, Zt = /* @__PURE__ */ f("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": g ? J : void 0, title: Ge || qe ? dt : void 0, style: { cursor: "pointer", background: Ft || Ge || g && J ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: g && J ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: g ? x : Lt, children: [
|
|
3888
3887
|
Ge ? /* @__PURE__ */ a("span", { style: { width: 16, height: 16, borderRadius: "50%", border: "2px solid var(--fill-10)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite" } }) : /* @__PURE__ */ a(ue, { d: jt, size: 17, sw: 1.6, style: { color: Wt } }),
|
|
3889
3888
|
!!St && /* @__PURE__ */ a("span", { className: "txvoice__n", title: `${St} speaker${St === 1 ? "" : "s"} can get a cloned voice`, children: St })
|
|
3890
|
-
] }),
|
|
3891
|
-
|
|
3889
|
+
] }), ot = /* @__PURE__ */ a(Nn, { open: P, onClose: ut, title: de.vcSheet, titleNode: b, doneLabel: de.done, children: /* @__PURE__ */ a(
|
|
3890
|
+
Fo,
|
|
3892
3891
|
{
|
|
3893
3892
|
t: de,
|
|
3894
|
-
cast:
|
|
3895
|
-
|
|
3893
|
+
cast: je && /* @__PURE__ */ a(
|
|
3894
|
+
Vo,
|
|
3896
3895
|
{
|
|
3897
3896
|
t: de,
|
|
3898
3897
|
roster: q,
|
|
3899
3898
|
selected: $e,
|
|
3900
|
-
onSelect: (
|
|
3901
|
-
ce.reset(),
|
|
3899
|
+
onSelect: (H) => {
|
|
3900
|
+
ce.reset(), F(H), D == null || D(H);
|
|
3902
3901
|
},
|
|
3903
|
-
noClone: (
|
|
3904
|
-
short: (
|
|
3905
|
-
building: (
|
|
3906
|
-
sexOf: (
|
|
3902
|
+
noClone: (H) => !!(te != null && te(H, ht)),
|
|
3903
|
+
short: (H) => !!(R != null && R(H, ht)),
|
|
3904
|
+
building: (H) => !lt(H) && (A.some((Oe) => Oe.cloned && Oe.speaker === H.key && Oe.ready === !1) || !!(X != null && X(H, ht))),
|
|
3905
|
+
sexOf: (H) => H.sex ?? Gt(ye.get(H.key))
|
|
3907
3906
|
}
|
|
3908
3907
|
),
|
|
3909
3908
|
voices: wt,
|
|
3910
|
-
onAdd: (
|
|
3911
|
-
ce.reset(), h == null || h(
|
|
3909
|
+
onAdd: (H) => {
|
|
3910
|
+
ce.reset(), h == null || h(H);
|
|
3912
3911
|
},
|
|
3913
|
-
noClone:
|
|
3914
|
-
usedBy:
|
|
3915
|
-
const
|
|
3916
|
-
return
|
|
3912
|
+
noClone: st && !wt.some((H) => H.cloned) ? (k == null ? void 0 : k(st, et(st.key), ht)) ?? null : null,
|
|
3913
|
+
usedBy: je && $e != null ? (H) => {
|
|
3914
|
+
const Oe = q.filter((Be) => Be.key !== $e && ye.get(Be.key) === H.id);
|
|
3915
|
+
return Oe.length ? Oe.map((Be) => Be.name).join(", ") : null;
|
|
3917
3916
|
} : void 0,
|
|
3918
3917
|
foldKey: $e,
|
|
3919
3918
|
foldFor: Rt,
|
|
3920
|
-
currentId:
|
|
3919
|
+
currentId: je && $e != null ? ye.get($e) ?? null : _e,
|
|
3921
3920
|
armedId: ce.armId,
|
|
3922
3921
|
sampleId: ce.sampleId,
|
|
3923
3922
|
dlId: ce.dlId,
|
|
3924
|
-
onPick: (
|
|
3925
|
-
if ((C == null ? void 0 : C(
|
|
3923
|
+
onPick: (H) => {
|
|
3924
|
+
if ((C == null ? void 0 : C(H)) === !1) {
|
|
3926
3925
|
ce.reset();
|
|
3927
3926
|
return;
|
|
3928
3927
|
}
|
|
3929
|
-
ce.arm(
|
|
3928
|
+
ce.arm(H);
|
|
3930
3929
|
},
|
|
3931
3930
|
onUse: Tn
|
|
3932
3931
|
}
|
|
3933
3932
|
) }), qt = g ? null : /* @__PURE__ */ f(Pe, { children: [
|
|
3934
3933
|
Dt,
|
|
3935
|
-
|
|
3936
|
-
] }), At = g && (U || P) ? /* @__PURE__ */ a("div", { className: "vs-side", children: U ? Dt :
|
|
3934
|
+
ot
|
|
3935
|
+
] }), At = g && (U || P) ? /* @__PURE__ */ a("div", { className: "vs-side", children: U ? Dt : ot }) : null, Ln = Tt && qe ? `This voice could not be prepared: ${qe}` : null, wn = it;
|
|
3937
3936
|
return {
|
|
3938
3937
|
barChip: { flag: rt.flag, code: rt.code, label: rt.label, onClick: g || j ? Ut : Ue, active: !!((g || j) && vt), can: c },
|
|
3939
3938
|
sheetsOpen: U || P,
|
|
@@ -3947,33 +3946,33 @@ function bl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, lan
|
|
|
3947
3946
|
toggleVoices: x,
|
|
3948
3947
|
cloningOn: ke,
|
|
3949
3948
|
playTitle: Ln,
|
|
3950
|
-
noVoice:
|
|
3949
|
+
noVoice: it,
|
|
3951
3950
|
noVoiceNote: wn,
|
|
3952
|
-
relang:
|
|
3951
|
+
relang: gt,
|
|
3953
3952
|
sampling: ce.sampleId != null,
|
|
3954
3953
|
error: ce.error,
|
|
3955
3954
|
clearError: () => ce.clearError(),
|
|
3956
3955
|
openVoices: Lt,
|
|
3957
3956
|
openPicker: Ue,
|
|
3958
3957
|
original: Ce,
|
|
3959
|
-
reloadVoices: () => se((
|
|
3958
|
+
reloadVoices: () => se((H) => H + 1),
|
|
3960
3959
|
voicesVer: Ae,
|
|
3961
|
-
people:
|
|
3960
|
+
people: Mt,
|
|
3962
3961
|
gvList: A,
|
|
3963
3962
|
autoOf: et,
|
|
3964
|
-
savedFor:
|
|
3963
|
+
savedFor: lt,
|
|
3965
3964
|
closeVoices: ut,
|
|
3966
|
-
setSheet:
|
|
3967
|
-
selectedSpeaker:
|
|
3965
|
+
setSheet: V,
|
|
3966
|
+
selectedSpeaker: st,
|
|
3968
3967
|
armVoice: ce.arm,
|
|
3969
3968
|
resetPreview: ce.reset,
|
|
3970
3969
|
armedId: ce.armId,
|
|
3971
|
-
resetCast: () => ge((
|
|
3970
|
+
resetCast: () => ge((H) => ({ ...H, [G ?? ""]: {} })),
|
|
3972
3971
|
readLang: typeof u == "string" && u !== l ? u : null,
|
|
3973
|
-
readVoiceKey:
|
|
3972
|
+
readVoiceKey: Ie ?? ne ?? ((Xt = ie.track) == null ? void 0 : Xt.voiceKey) ?? "",
|
|
3974
3973
|
readVoiceName: (Te == null ? void 0 : Te.name) ?? null,
|
|
3975
3974
|
canSpeak: _,
|
|
3976
|
-
requestTrack: () => ie.requestRender(
|
|
3975
|
+
requestTrack: () => ie.requestRender(Ie ?? ne, Ie ? Ye : null),
|
|
3977
3976
|
hasClone: Y,
|
|
3978
3977
|
clips: ie.clips,
|
|
3979
3978
|
setNear: ie.setNear,
|
|
@@ -3983,12 +3982,12 @@ function bl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, lan
|
|
|
3983
3982
|
langList: { value: Ce ? null : pe, onSelect: Fe, languages: W, searchPlaceholder: de.search, none: "Original", pinned: (Ce ? l : pe) ? [Ce ? l : pe] : [], recent: v }
|
|
3984
3983
|
};
|
|
3985
3984
|
}
|
|
3986
|
-
function
|
|
3985
|
+
function Al({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: g = !0, tail: M, tailFg: p, running: y, desk: j, feedRef: T, listener: N, showLabels: h, find: C, findOpen: D, lang: k, warm: te, onVisible: R, wordHl: X = !0 }) {
|
|
3987
3986
|
const { playing: I, engaged: b, t: Q, idx: L, seekN: v, wordSync: S, clipPos: ne } = n;
|
|
3988
|
-
|
|
3987
|
+
al(!0, T);
|
|
3989
3988
|
const $ = z(null);
|
|
3990
|
-
|
|
3991
|
-
const [U, Me] = O(null), P = (C ?? "").trim().toLowerCase(), [
|
|
3989
|
+
Ao(T, $);
|
|
3990
|
+
const [U, Me] = O(null), P = (C ?? "").trim().toLowerCase(), [V, ae] = O(0), oe = z(0), re = z(null), we = z(L), pe = (se) => {
|
|
3992
3991
|
var le;
|
|
3993
3992
|
return ((le = T.current) == null ? void 0 : le.querySelector(`[data-tx-row="${se}"]`)) ?? null;
|
|
3994
3993
|
}, Ce = z("");
|
|
@@ -3998,8 +3997,8 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
|
|
|
3998
3997
|
const le = () => {
|
|
3999
3998
|
const Z = se.getBoundingClientRect(), de = [];
|
|
4000
3999
|
for (const De of Array.from(se.querySelectorAll("[data-sentence]"))) {
|
|
4001
|
-
const
|
|
4002
|
-
|
|
4000
|
+
const F = De.getBoundingClientRect();
|
|
4001
|
+
F.bottom > Z.top && F.top < Z.bottom && de.push(Number(De.dataset.sentence));
|
|
4003
4002
|
}
|
|
4004
4003
|
const W = de.join(",");
|
|
4005
4004
|
W !== Ce.current && (Ce.current = W, R(de));
|
|
@@ -4026,14 +4025,14 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
|
|
|
4026
4025
|
oe.current = performance.now() + 420;
|
|
4027
4026
|
const le = T.current, m = pe(se);
|
|
4028
4027
|
if (!le || !le.clientHeight || !m) return;
|
|
4029
|
-
const A = m.getBoundingClientRect(), Ne = le.getBoundingClientRect(), Z = le.scrollHeight - le.clientHeight, de = le.scrollTop, W = Kn(le), De = Math.max(80, le.clientHeight - W.top - W.bottom),
|
|
4030
|
-
if (re.current && cancelAnimationFrame(re.current), Math.abs(
|
|
4031
|
-
le.scrollTop =
|
|
4028
|
+
const A = m.getBoundingClientRect(), Ne = le.getBoundingClientRect(), Z = le.scrollHeight - le.clientHeight, de = le.scrollTop, W = Kn(le), De = Math.max(80, le.clientHeight - W.top - W.bottom), F = A.height > De ? 8 : (De - A.height) / 2, ve = Math.max(0, Math.min(Z, de + (A.top - Ne.top) - W.top - F));
|
|
4029
|
+
if (re.current && cancelAnimationFrame(re.current), Math.abs(ve - de) < 2) {
|
|
4030
|
+
le.scrollTop = ve, re.current = null;
|
|
4032
4031
|
return;
|
|
4033
4032
|
}
|
|
4034
4033
|
const fe = performance.now(), ge = 360, q = () => {
|
|
4035
|
-
const
|
|
4036
|
-
le.scrollTop = de + (
|
|
4034
|
+
const je = Math.min(1, (performance.now() - fe) / ge);
|
|
4035
|
+
le.scrollTop = de + (ve - de) * (1 - Math.pow(1 - je, 3)), re.current = je < 1 ? requestAnimationFrame(q) : null;
|
|
4037
4036
|
};
|
|
4038
4037
|
re.current = requestAnimationFrame(q);
|
|
4039
4038
|
};
|
|
@@ -4065,27 +4064,27 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
|
|
|
4065
4064
|
"Now playing"
|
|
4066
4065
|
] }) });
|
|
4067
4066
|
return /* @__PURE__ */ f("div", { ref: T, "data-tx-feed": "1", className: `txfeed${j ? " txfeed--desk" : ""}${D && !y ? " is-find" : ""}`, children: [
|
|
4068
|
-
/* @__PURE__ */ a(
|
|
4069
|
-
I &&
|
|
4067
|
+
/* @__PURE__ */ a(Eo, { thumbRef: $ }),
|
|
4068
|
+
I && V === -1 && Ae("up"),
|
|
4070
4069
|
e.map((se, le) => {
|
|
4071
4070
|
var ye;
|
|
4072
4071
|
const m = I && le === L, A = b && le === L, Ne = !!u && u === se.id, Z = P && !se.text.toLowerCase().includes(P) && !(k && ((ye = se.translations[k]) != null && ye.toLowerCase().includes(P))) ? 0.22 : !b || le <= L || Ne ? 1 : 0.38, de = N ? () => n.playRow(le) : c && l ? () => {
|
|
4073
4072
|
I && !m && n.seekRow(le), l(se);
|
|
4074
|
-
} : I && m ? void 0 : () => n.playRow(le), W = N ? null :
|
|
4073
|
+
} : I && m ? void 0 : () => n.playRow(le), W = N ? null : Uo(se, s, r), De = !!W && (W.script > 0 || W.manual), F = j && !!i && U === se.id && !!W && !De, ve = fr(t, se.speaker), fe = Nr(t, se.speaker), ge = fe.lane, q = k && se.translations[k] && se.language !== k ? se.translations[k] : null, je = mi(e, le, k), $e = A && !S && ne ? ti(je.map((be) => ({ t: be.text, sp: " " })), ne) : null;
|
|
4075
4074
|
return /* @__PURE__ */ f("div", { "data-tx-row": le, "data-sentence": se.sentenceId, className: `txline${te ? " txline--warm" : ""}${Ne ? " txline--fixing" : ""}`, "aria-current": Ne || void 0, style: { opacity: Z }, onClick: de, onMouseEnter: j && i ? () => Me(se.id) : void 0, onMouseLeave: j && i ? () => Me(null) : void 0, children: [
|
|
4076
4075
|
/* @__PURE__ */ f("div", { className: "txline__meta", children: [
|
|
4077
4076
|
/* @__PURE__ */ a("span", { className: "txline__at", children: mt(se.start) }),
|
|
4078
4077
|
h && se.speaker >= 0 && /* @__PURE__ */ f(Pe, { children: [
|
|
4079
4078
|
/* @__PURE__ */ a("div", { className: `lanechip bg-lane-${ge}`, style: fe.soft ? { background: fe.soft, color: fe.fg } : void 0, children: ai(t, se.speaker) }),
|
|
4080
|
-
/* @__PURE__ */ a("span", { className: `txline__who lane-${ge}`, style: fe.fg ? { color: fe.fg } : void 0, children:
|
|
4079
|
+
/* @__PURE__ */ a("span", { className: `txline__who lane-${ge}`, style: fe.fg ? { color: fe.fg } : void 0, children: ve }),
|
|
4081
4080
|
fe.hasVoice && /* @__PURE__ */ a(hi, { color: fe.fg ?? `var(--lane-${ge})` })
|
|
4082
4081
|
] }),
|
|
4083
4082
|
m && /* @__PURE__ */ a("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ a(ue, { d: K.headphones, size: j ? 15 : 14, sw: 1.6, stroke: h && se.speaker >= 0 ? fe.fg ?? `var(--lane-${ge})` : "var(--ink-45)" }) }),
|
|
4084
|
-
W && g && /* @__PURE__ */ a(
|
|
4085
|
-
|
|
4083
|
+
W && g && /* @__PURE__ */ a(Ro, { f: W, desk: j, onOpen: i ? () => i(se, !0) : void 0 }),
|
|
4084
|
+
F && /* @__PURE__ */ a(Po, { alone: !0, onOpen: () => i == null ? void 0 : i(se, !1) })
|
|
4086
4085
|
] }),
|
|
4087
|
-
/* @__PURE__ */ a("div", { className: "txline__text", children:
|
|
4088
|
-
const
|
|
4086
|
+
/* @__PURE__ */ a("div", { className: "txline__text", children: je.map((be, He) => {
|
|
4087
|
+
const Ie = `${be.seq}:${be.idx}`, Ye = ro(be.prob), Y = A && X, _ = Y && (S ? Q >= be.start && (Q < be.end || He === je.length - 1 || Q < je[He + 1].start) : He === $e), B = Y && !_ && (S ? be.start > Q : $e != null && He > $e), ee = !q && !N && (!!(r != null && r.has(Ie)) || !!be.script), ie = !q && !N && d && !!Ye && !ee, Te = ie ? Ye === "low" ? "var(--conf-low-half)" : "var(--conf-mid-half)" : null, _e = ee ? "var(--brand)" : B ? "var(--ink-40)" : Te ?? "var(--ink-96)";
|
|
4089
4088
|
return /* @__PURE__ */ f("span", { children: [
|
|
4090
4089
|
/* @__PURE__ */ a(
|
|
4091
4090
|
"span",
|
|
@@ -4109,7 +4108,7 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
|
|
|
4109
4108
|
}
|
|
4110
4109
|
),
|
|
4111
4110
|
/* @__PURE__ */ a("span", { style: { whiteSpace: "pre-wrap" }, children: " " })
|
|
4112
|
-
] },
|
|
4111
|
+
] }, Ie + He);
|
|
4113
4112
|
}) })
|
|
4114
4113
|
] }, se.id);
|
|
4115
4114
|
}),
|
|
@@ -4118,10 +4117,10 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
|
|
|
4118
4117
|
/* @__PURE__ */ a("span", {}),
|
|
4119
4118
|
/* @__PURE__ */ a("span", {})
|
|
4120
4119
|
] }) }) : /* @__PURE__ */ a("div", { className: "txtail", style: { color: p }, children: M }),
|
|
4121
|
-
I &&
|
|
4120
|
+
I && V === 1 && Ae("down")
|
|
4122
4121
|
] });
|
|
4123
4122
|
}
|
|
4124
|
-
function
|
|
4123
|
+
function El({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: i, inline: o, flash: l }) {
|
|
4125
4124
|
return /* @__PURE__ */ a("div", { className: o ? "searchbar searchbar--inline" : `searchbar searchbar--float${i ? " searchbar--desk" : ""}${t ? "" : " is-hidden"}`, children: /* @__PURE__ */ f("div", { children: [
|
|
4126
4125
|
/* @__PURE__ */ a(ue, { d: K.search, size: 16, sw: 1.7, style: { color: "var(--ink-45)", flex: "none" } }),
|
|
4127
4126
|
/* @__PURE__ */ a("input", { value: e, onChange: (c) => n(c.target.value), onKeyDown: (c) => {
|
|
@@ -4135,7 +4134,7 @@ function Al({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: i, inline: o, fl
|
|
|
4135
4134
|
e.trim() && /* @__PURE__ */ a("button", { type: "button", className: "searchbar__x", onClick: () => n(""), "aria-label": "Clear", title: "Clear", children: /* @__PURE__ */ a(ue, { d: K.close, size: 15, sw: 1.7 }) })
|
|
4136
4135
|
] }) });
|
|
4137
4136
|
}
|
|
4138
|
-
function
|
|
4137
|
+
function Yl(t, e, n, r, s) {
|
|
4139
4138
|
const i = z(n);
|
|
4140
4139
|
i.current = n;
|
|
4141
4140
|
const o = z(r);
|
|
@@ -4173,14 +4172,14 @@ function yi(t) {
|
|
|
4173
4172
|
}
|
|
4174
4173
|
return e;
|
|
4175
4174
|
}
|
|
4176
|
-
const
|
|
4175
|
+
const Rs = (t) => Math.floor(yi(t) / 8) - Ht.perBlock[t] * Ht.blocks[t];
|
|
4177
4176
|
function cr(t, e) {
|
|
4178
4177
|
let n = 0;
|
|
4179
4178
|
for (let r = 7; r >= 0; r--)
|
|
4180
4179
|
n = n << 1 ^ (n >>> 7) * 285, n ^= (e >>> r & 1) * t;
|
|
4181
4180
|
return n;
|
|
4182
4181
|
}
|
|
4183
|
-
function
|
|
4182
|
+
function _l(t) {
|
|
4184
4183
|
const e = new Array(t).fill(0);
|
|
4185
4184
|
e[t - 1] = 1;
|
|
4186
4185
|
let n = 1;
|
|
@@ -4190,7 +4189,7 @@ function Yl(t) {
|
|
|
4190
4189
|
}
|
|
4191
4190
|
return e;
|
|
4192
4191
|
}
|
|
4193
|
-
function
|
|
4192
|
+
function Ul(t, e) {
|
|
4194
4193
|
const n = new Array(e.length).fill(0);
|
|
4195
4194
|
for (const r of t) {
|
|
4196
4195
|
const s = r ^ n.shift();
|
|
@@ -4200,19 +4199,19 @@ function _l(t, e) {
|
|
|
4200
4199
|
}
|
|
4201
4200
|
return n;
|
|
4202
4201
|
}
|
|
4203
|
-
function
|
|
4202
|
+
function Rl(t) {
|
|
4204
4203
|
if (t === 1) return [];
|
|
4205
4204
|
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];
|
|
4206
4205
|
for (let i = n - 7; s.length < e; i -= r) s.splice(1, 0, i);
|
|
4207
4206
|
return s;
|
|
4208
4207
|
}
|
|
4209
|
-
function
|
|
4208
|
+
function Pl(t) {
|
|
4210
4209
|
const e = Array.from(new TextEncoder().encode(t));
|
|
4211
4210
|
let n = 1;
|
|
4212
|
-
for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <=
|
|
4211
|
+
for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= Rs(n) * 8); n++)
|
|
4213
4212
|
;
|
|
4214
4213
|
if (n > 40) throw new Error("Text too long for a QR code");
|
|
4215
|
-
const r = n * 4 + 17, s =
|
|
4214
|
+
const r = n * 4 + 17, s = Rs(n) * 8, i = [], o = (L, v) => {
|
|
4216
4215
|
for (let S = v - 1; S >= 0; S--) i.push(L >>> S & 1);
|
|
4217
4216
|
};
|
|
4218
4217
|
o(4, 4), o(e.length, n <= 9 ? 8 : 16);
|
|
@@ -4221,11 +4220,11 @@ function Rl(t) {
|
|
|
4221
4220
|
for (let L = 236; i.length < s; L ^= 253) o(L, 8);
|
|
4222
4221
|
const l = [];
|
|
4223
4222
|
for (let L = 0; L < i.length; L += 8) l.push(i.slice(L, L + 8).reduce((v, S) => v << 1 | S, 0));
|
|
4224
|
-
const c = Ht.blocks[n], u = Ht.perBlock[n], d = Math.floor(yi(n) / 8), g = c - d % c, M = Math.floor(d / c), p = [], y =
|
|
4223
|
+
const c = Ht.blocks[n], u = Ht.perBlock[n], d = Math.floor(yi(n) / 8), g = c - d % c, M = Math.floor(d / c), p = [], y = _l(u);
|
|
4225
4224
|
for (let L = 0, v = 0; L < c; L++) {
|
|
4226
4225
|
const S = l.slice(v, v + M - u + (L < g ? 0 : 1));
|
|
4227
4226
|
v += S.length;
|
|
4228
|
-
const ne =
|
|
4227
|
+
const ne = Ul(S, y);
|
|
4229
4228
|
L < g && S.push(0), p.push(S.concat(ne));
|
|
4230
4229
|
}
|
|
4231
4230
|
const j = [];
|
|
@@ -4244,7 +4243,7 @@ function Rl(t) {
|
|
|
4244
4243
|
}
|
|
4245
4244
|
};
|
|
4246
4245
|
C(3, 3), C(r - 4, 3), C(3, r - 4);
|
|
4247
|
-
const D =
|
|
4246
|
+
const D = Rl(n);
|
|
4248
4247
|
for (let L = 0; L < D.length; L++) for (let v = 0; v < D.length; v++)
|
|
4249
4248
|
if (!(L === 0 && v === 0 || L === 0 && v === D.length - 1 || L === D.length - 1 && v === 0))
|
|
4250
4249
|
for (let S = -2; S <= 2; S++) for (let ne = -2; ne <= 2; ne++) h(D[L] + ne, D[v] + S, Math.max(Math.abs(ne), Math.abs(S)) !== 1);
|
|
@@ -4301,25 +4300,25 @@ function Rl(t) {
|
|
|
4301
4300
|
}, I = () => {
|
|
4302
4301
|
let L = 0;
|
|
4303
4302
|
const v = (P) => {
|
|
4304
|
-
const
|
|
4305
|
-
return (ae && P[0] >=
|
|
4306
|
-
}, S = (P,
|
|
4307
|
-
P[0] === 0 && (
|
|
4308
|
-
}, ne = (P,
|
|
4309
|
-
let
|
|
4303
|
+
const V = P[1], ae = V > 0 && P[2] === V && P[3] === V * 3 && P[4] === V && P[5] === V;
|
|
4304
|
+
return (ae && P[0] >= V * 4 && P[6] >= V ? 1 : 0) + (ae && P[6] >= V * 4 && P[0] >= V ? 1 : 0);
|
|
4305
|
+
}, S = (P, V) => {
|
|
4306
|
+
P[0] === 0 && (V += r), P.pop(), P.unshift(V);
|
|
4307
|
+
}, ne = (P, V, ae) => (V && (S(P, ae), ae = 0), S(P, ae + r), v(P)), $ = (P) => {
|
|
4308
|
+
let V = !1, ae = 0;
|
|
4310
4309
|
const oe = [0, 0, 0, 0, 0, 0, 0];
|
|
4311
4310
|
for (let re = 0; re < r; re++)
|
|
4312
|
-
P(re) ===
|
|
4313
|
-
L += ne(oe,
|
|
4311
|
+
P(re) === V ? (ae++, ae === 5 ? L += 3 : ae > 5 && L++) : (S(oe, ae), V || (L += v(oe) * 40), V = P(re), ae = 1);
|
|
4312
|
+
L += ne(oe, V, ae) * 40;
|
|
4314
4313
|
};
|
|
4315
|
-
for (let P = 0; P < r; P++) $((
|
|
4316
|
-
for (let P = 0; P < r; P++) $((
|
|
4317
|
-
for (let P = 0; P < r - 1; P++) for (let
|
|
4318
|
-
const ae = T[P][
|
|
4319
|
-
ae === T[P][
|
|
4314
|
+
for (let P = 0; P < r; P++) $((V) => T[P][V]);
|
|
4315
|
+
for (let P = 0; P < r; P++) $((V) => T[V][P]);
|
|
4316
|
+
for (let P = 0; P < r - 1; P++) for (let V = 0; V < r - 1; V++) {
|
|
4317
|
+
const ae = T[P][V];
|
|
4318
|
+
ae === T[P][V + 1] && ae === T[P + 1][V] && ae === T[P + 1][V + 1] && (L += 3);
|
|
4320
4319
|
}
|
|
4321
4320
|
let U = 0;
|
|
4322
|
-
for (const P of T) for (const
|
|
4321
|
+
for (const P of T) for (const V of P) V && U++;
|
|
4323
4322
|
const Me = r * r;
|
|
4324
4323
|
return L += (Math.ceil(Math.abs(U * 20 - Me * 10) / Me) - 1) * 10, L;
|
|
4325
4324
|
};
|
|
@@ -4331,30 +4330,30 @@ function Rl(t) {
|
|
|
4331
4330
|
}
|
|
4332
4331
|
return X(b), k(b), T;
|
|
4333
4332
|
}
|
|
4334
|
-
function
|
|
4335
|
-
const e =
|
|
4333
|
+
function Ql(t) {
|
|
4334
|
+
const e = Pl(t), n = e.length, r = 2;
|
|
4336
4335
|
let s = "";
|
|
4337
4336
|
for (let o = 0; o < n; o++) for (let l = 0; l < n; l++) e[o][l] && (s += `M${l} ${o}h1v1h-1z`);
|
|
4338
4337
|
const i = `<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>`;
|
|
4339
4338
|
return `data:image/svg+xml,${encodeURIComponent(i)}`;
|
|
4340
4339
|
}
|
|
4341
|
-
const Ti = "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",
|
|
4340
|
+
const Ti = "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", $l = "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";
|
|
4342
4341
|
function Xn() {
|
|
4343
4342
|
const t = document;
|
|
4344
4343
|
return t.fullscreenElement ?? t.webkitFullscreenElement ?? null;
|
|
4345
4344
|
}
|
|
4346
|
-
let
|
|
4347
|
-
function
|
|
4348
|
-
|
|
4345
|
+
let yr = null;
|
|
4346
|
+
function Ps(t) {
|
|
4347
|
+
yr = t;
|
|
4349
4348
|
}
|
|
4350
|
-
function
|
|
4349
|
+
function Qs() {
|
|
4351
4350
|
const t = document;
|
|
4352
4351
|
return !!(t.fullscreenEnabled || t.webkitFullscreenEnabled);
|
|
4353
4352
|
}
|
|
4354
|
-
function
|
|
4353
|
+
function Bl() {
|
|
4355
4354
|
var e;
|
|
4356
4355
|
if (typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches)) return !1;
|
|
4357
|
-
const t =
|
|
4356
|
+
const t = yr ?? document.documentElement;
|
|
4358
4357
|
return !t.requestFullscreen && !t.webkitRequestFullscreen;
|
|
4359
4358
|
}
|
|
4360
4359
|
function $t(t) {
|
|
@@ -4364,7 +4363,7 @@ function $t(t) {
|
|
|
4364
4363
|
function hn(t) {
|
|
4365
4364
|
var s, i, o, l;
|
|
4366
4365
|
if (typeof document > "u") return;
|
|
4367
|
-
const e = document, n =
|
|
4366
|
+
const e = document, n = yr ?? document.documentElement, r = e.fullscreenElement ?? e.webkitFullscreenElement;
|
|
4368
4367
|
try {
|
|
4369
4368
|
t && !r && ((i = (s = n.requestFullscreen ?? n.webkitRequestFullscreen) == null ? void 0 : s.call(n, { navigationUI: "hide" })) == null || i.catch(() => {
|
|
4370
4369
|
})), !t && r && ((l = (o = e.exitFullscreen ?? e.webkitExitFullscreen) == null ? void 0 : o.call(e)) == null || l.catch(() => {
|
|
@@ -4372,7 +4371,7 @@ function hn(t) {
|
|
|
4372
4371
|
} catch {
|
|
4373
4372
|
}
|
|
4374
4373
|
}
|
|
4375
|
-
function
|
|
4374
|
+
function Hl(t) {
|
|
4376
4375
|
const [e, n] = O(() => {
|
|
4377
4376
|
var r;
|
|
4378
4377
|
return typeof window < "u" && !!((r = window.matchMedia) != null && r.call(window, t).matches);
|
|
@@ -4424,7 +4423,7 @@ function ur({ pos: t, interactive: e, axis: n = "x" }) {
|
|
|
4424
4423
|
/* @__PURE__ */ a("span", { className: "gfull__t gfull__end", style: { color: t.live ? "#ec634d" : "rgba(234,236,250,.6)" }, children: t.endLabel })
|
|
4425
4424
|
] });
|
|
4426
4425
|
}
|
|
4427
|
-
function
|
|
4426
|
+
function kc({ pos: t }) {
|
|
4428
4427
|
const [e, n] = O(null), r = (l) => {
|
|
4429
4428
|
const c = l.currentTarget.getBoundingClientRect();
|
|
4430
4429
|
return Math.min(1, Math.max(0, (l.clientX - c.left) / Math.max(1, c.width)));
|
|
@@ -4478,7 +4477,7 @@ function dr({ t, mini: e }) {
|
|
|
4478
4477
|
disabled: !t.playable,
|
|
4479
4478
|
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" },
|
|
4480
4479
|
onClick: t.onPlay,
|
|
4481
|
-
children: t.busy ? /* @__PURE__ */ a("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ a(sa, { size: e ? 14 : 18 }) : /* @__PURE__ */ a(
|
|
4480
|
+
children: t.busy ? /* @__PURE__ */ a("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ a(sa, { size: e ? 14 : 18 }) : /* @__PURE__ */ a(Ws, { size: e ? 15 : 19 })
|
|
4482
4481
|
}
|
|
4483
4482
|
),
|
|
4484
4483
|
/* @__PURE__ */ a("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__ */ a(ue, { d: K.chevronRight, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) })
|
|
@@ -4486,7 +4485,7 @@ function dr({ t, mini: e }) {
|
|
|
4486
4485
|
}
|
|
4487
4486
|
function Mr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
4488
4487
|
return /* @__PURE__ */ f("div", { className: `gfull__brand${s ? " gfull__brand--mark" : ""}`, children: [
|
|
4489
|
-
/* @__PURE__ */ a("a", { href:
|
|
4488
|
+
/* @__PURE__ */ a("a", { href: Fs, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: s ? /* @__PURE__ */ a(Gs, { dark: !0, size: 22 }) : /* @__PURE__ */ a(Vt, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
|
|
4490
4489
|
t && /* @__PURE__ */ f("span", { className: "gfull__live", children: [
|
|
4491
4490
|
/* @__PURE__ */ a("i", {}),
|
|
4492
4491
|
"LIVE"
|
|
@@ -4497,7 +4496,7 @@ function Mr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
|
4497
4496
|
function Li({ v: t, size: e }) {
|
|
4498
4497
|
return /* @__PURE__ */ a("button", { type: "button", className: "gfull__btn", "aria-label": "Voices", title: t.title, disabled: !t.on, style: { opacity: t.on ? 1 : 0.45, cursor: t.on ? "pointer" : "default" }, onClick: t.on ? t.onClick : void 0, children: /* @__PURE__ */ a(ue, { d: K.headphones, size: e, sw: 1.6 }) });
|
|
4499
4498
|
}
|
|
4500
|
-
function
|
|
4499
|
+
function Vl({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: i, copied: o }) {
|
|
4501
4500
|
return /* @__PURE__ */ f("div", { className: "gmini", "data-theme": "dark", children: [
|
|
4502
4501
|
/* @__PURE__ */ a("div", { className: "gmini__shade", "aria-hidden": "true" }),
|
|
4503
4502
|
/* @__PURE__ */ a("div", { className: "gmini__top", children: /* @__PURE__ */ a(Mr, { live: t.live, mini: !0 }) }),
|
|
@@ -4517,13 +4516,13 @@ function Hl({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: i, c
|
|
|
4517
4516
|
o
|
|
4518
4517
|
] });
|
|
4519
4518
|
}
|
|
4520
|
-
const
|
|
4521
|
-
function
|
|
4519
|
+
const Fl = { color: "rgba(255,255,255,.4)" };
|
|
4520
|
+
function Wl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos: i, sub: o, wait: l, pct: c, mute: u, cc: d, ad: g, chip: M, transport: p, picker: y, sheet: j, voices: T, voicesBtn: N, sheetOpen: h, onShare: C, onSettings: D, paused: k, copied: te, onTouch: R, onClose: X }) {
|
|
4522
4521
|
const [I, b] = O(() => !!Xn());
|
|
4523
4522
|
E(() => {
|
|
4524
|
-
const
|
|
4525
|
-
return document.addEventListener("fullscreenchange",
|
|
4526
|
-
document.removeEventListener("fullscreenchange",
|
|
4523
|
+
const F = () => b(!!Xn());
|
|
4524
|
+
return document.addEventListener("fullscreenchange", F), document.addEventListener("webkitfullscreenchange", F), () => {
|
|
4525
|
+
document.removeEventListener("fullscreenchange", F), document.removeEventListener("webkitfullscreenchange", F);
|
|
4527
4526
|
};
|
|
4528
4527
|
}, []);
|
|
4529
4528
|
const Q = z(X);
|
|
@@ -4533,86 +4532,86 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4533
4532
|
const [v, S] = O(!1), [ne, $] = O(0), U = z(!1);
|
|
4534
4533
|
E(() => () => hn(!1), []), E(() => {
|
|
4535
4534
|
if (!e) return;
|
|
4536
|
-
const
|
|
4537
|
-
|
|
4535
|
+
const F = [document.documentElement, document.body], ve = F.map((q) => q.style.background);
|
|
4536
|
+
F.forEach((q) => {
|
|
4538
4537
|
q.style.background = "#050507";
|
|
4539
4538
|
});
|
|
4540
4539
|
const fe = document.querySelector('meta[name="theme-color"]'), ge = fe == null ? void 0 : fe.content;
|
|
4541
4540
|
return fe && (fe.content = "#050507"), () => {
|
|
4542
|
-
|
|
4543
|
-
q.style.background = je
|
|
4541
|
+
F.forEach((q, je) => {
|
|
4542
|
+
q.style.background = ve[je];
|
|
4544
4543
|
}), fe && ge && (fe.content = ge);
|
|
4545
4544
|
};
|
|
4546
4545
|
}, []);
|
|
4547
|
-
const Me =
|
|
4546
|
+
const Me = ze(() => e && Bl(), [e]), [P, V] = O(Me);
|
|
4548
4547
|
E(() => {
|
|
4549
4548
|
if (!e) return;
|
|
4550
|
-
const
|
|
4549
|
+
const F = [document.documentElement, document.body], ve = F.map((q) => [q.style.overflow, q.style.overscrollBehavior]);
|
|
4551
4550
|
if (!Me)
|
|
4552
|
-
return
|
|
4551
|
+
return F.forEach((q) => {
|
|
4553
4552
|
q.style.overflow = "hidden", q.style.overscrollBehavior = "none";
|
|
4554
|
-
}), () =>
|
|
4555
|
-
q.style.overflow = je
|
|
4553
|
+
}), () => F.forEach((q, je) => {
|
|
4554
|
+
q.style.overflow = ve[je][0], q.style.overscrollBehavior = ve[je][1];
|
|
4556
4555
|
});
|
|
4557
4556
|
const fe = document.createElement("div");
|
|
4558
4557
|
fe.setAttribute("aria-hidden", "true"), fe.style.cssText = "position:absolute;top:0;left:0;width:1px;height:calc(100lvh + 160px);pointer-events:none", document.body.appendChild(fe), document.documentElement.style.overscrollBehavior = "none";
|
|
4559
4558
|
const ge = () => {
|
|
4560
|
-
window.scrollY > 24 &&
|
|
4559
|
+
window.scrollY > 24 && V(!1);
|
|
4561
4560
|
};
|
|
4562
4561
|
return window.addEventListener("scroll", ge, { passive: !0 }), () => {
|
|
4563
|
-
window.removeEventListener("scroll", ge), fe.remove(), document.documentElement.style.overscrollBehavior =
|
|
4562
|
+
window.removeEventListener("scroll", ge), fe.remove(), document.documentElement.style.overscrollBehavior = ve[0][1], window.scrollTo(0, 0);
|
|
4564
4563
|
};
|
|
4565
4564
|
}, [Me, e]);
|
|
4566
4565
|
const ae = z(h);
|
|
4567
4566
|
ae.current = h, E(() => {
|
|
4568
|
-
const
|
|
4567
|
+
const F = (ge) => ge instanceof HTMLElement && (ge.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(ge.tagName)), ve = (ge) => {
|
|
4569
4568
|
var q;
|
|
4570
|
-
ge.key === "Escape" && !ae.current && Q.current && (ge.stopPropagation(), Q.current()), ge.key === " " && !ae.current && !
|
|
4569
|
+
ge.key === "Escape" && !ae.current && Q.current && (ge.stopPropagation(), Q.current()), ge.key === " " && !ae.current && !F(ge.target) && (ge.preventDefault(), ge.stopPropagation(), ge.repeat || (q = L.current) == null || q.call(L)), (ge.key === "f" || ge.key === "F") && !ge.metaKey && !ge.ctrlKey && !ge.altKey && !ae.current && !F(ge.target) && Qs() && (ge.preventDefault(), ge.repeat || hn(!Xn()));
|
|
4571
4570
|
}, fe = (ge) => {
|
|
4572
|
-
ge.key === " " && !ae.current && !
|
|
4571
|
+
ge.key === " " && !ae.current && !F(ge.target) && ge.preventDefault();
|
|
4573
4572
|
};
|
|
4574
|
-
return window.addEventListener("keydown",
|
|
4575
|
-
window.removeEventListener("keydown",
|
|
4573
|
+
return window.addEventListener("keydown", ve, !0), window.addEventListener("keyup", fe, !0), () => {
|
|
4574
|
+
window.removeEventListener("keydown", ve, !0), window.removeEventListener("keyup", fe, !0);
|
|
4576
4575
|
};
|
|
4577
4576
|
}, []);
|
|
4578
|
-
const oe =
|
|
4577
|
+
const oe = Hl("(orientation: landscape) and (max-height: 540px)"), re = s && !oe;
|
|
4579
4578
|
E(() => {
|
|
4580
4579
|
if (S(!1), !p.playing || h) return;
|
|
4581
|
-
const
|
|
4582
|
-
return () => clearTimeout(
|
|
4580
|
+
const F = setTimeout(() => S(!0), 3e3);
|
|
4581
|
+
return () => clearTimeout(F);
|
|
4583
4582
|
}, [p.playing, h, ne]);
|
|
4584
4583
|
const we = z(v);
|
|
4585
4584
|
we.current = v;
|
|
4586
|
-
const pe = z(0), Ce = (
|
|
4587
|
-
if (
|
|
4588
|
-
const
|
|
4589
|
-
!we.current &&
|
|
4590
|
-
}, xe = !re && oe, Qe = z(null), G = o ? o.words.map((
|
|
4585
|
+
const pe = z(0), Ce = (F) => {
|
|
4586
|
+
if (F.pointerType !== "mouse") return;
|
|
4587
|
+
const ve = Date.now();
|
|
4588
|
+
!we.current && ve - pe.current < 1e3 || (pe.current = ve, $((fe) => fe + 1));
|
|
4589
|
+
}, xe = !re && oe, Qe = z(null), G = o ? o.words.map((F) => F.dim ? 0 : 1).join("") + o.words.length + ":" + (o.cursor ?? "") : "";
|
|
4591
4590
|
mn(() => {
|
|
4592
|
-
const
|
|
4593
|
-
if (!
|
|
4594
|
-
const
|
|
4595
|
-
if (
|
|
4596
|
-
|
|
4591
|
+
const F = Qe.current;
|
|
4592
|
+
if (!F) return;
|
|
4593
|
+
const ve = !!(o != null && o.words.some((Ie) => Ie.dim)) || (o == null ? void 0 : o.cursor) != null, fe = F.querySelectorAll((o == null ? void 0 : o.cursor) != null && !o.words.some((Ie) => Ie.dim) ? "[data-at]" : "[data-said]"), ge = parseFloat(getComputedStyle(F).lineHeight) || 24, q = Math.round(F.scrollHeight / ge) - Math.round(F.clientHeight / ge), je = Math.max(0, q) * ge;
|
|
4594
|
+
if (je <= 0) {
|
|
4595
|
+
F.scrollTop && F.scrollTo({ top: 0 });
|
|
4597
4596
|
return;
|
|
4598
4597
|
}
|
|
4599
|
-
const $e = (
|
|
4600
|
-
Math.abs(He -
|
|
4598
|
+
const $e = (Ie) => Math.round((Ie.getBoundingClientRect().top - F.getBoundingClientRect().top + F.scrollTop) / ge), ye = Math.max(1, Math.round(F.clientHeight / ge)), be = ve ? fe.length ? Math.floor($e(fe[fe.length - 1]) / ye) * ye * ge : 0 : je, He = Math.max(0, Math.min(je, be));
|
|
4599
|
+
Math.abs(He - F.scrollTop) > 1 && (F.scrollTop = He);
|
|
4601
4600
|
}, [G, xe]);
|
|
4602
4601
|
const [ce, ke] = O(!0), [Ae, se] = O(!1), le = z(void 0);
|
|
4603
4602
|
E(() => () => window.clearTimeout(le.current), []);
|
|
4604
|
-
const m = k != null && k.share ? k.share.url(ce && k.share.at >= 1 ? Math.floor(k.share.at) : null) : "", A =
|
|
4605
|
-
var
|
|
4606
|
-
(
|
|
4603
|
+
const m = k != null && k.share ? k.share.url(ce && k.share.at >= 1 ? Math.floor(k.share.at) : null) : "", A = ze(() => re && m && !p.playing ? Ql(m) : "", [re, m, p.playing]), Ne = () => {
|
|
4604
|
+
var F;
|
|
4605
|
+
(F = navigator.clipboard) == null || F.writeText(m).then(() => {
|
|
4607
4606
|
se(!0), window.clearTimeout(le.current), le.current = window.setTimeout(() => se(!1), 1800);
|
|
4608
4607
|
}, () => {
|
|
4609
4608
|
});
|
|
4610
|
-
}, Z = re && (k == null ? void 0 : k.share) && /* @__PURE__ */ f("div", { className: "gfull__sharecard", onPointerDown: (
|
|
4609
|
+
}, Z = re && (k == null ? void 0 : k.share) && /* @__PURE__ */ f("div", { className: "gfull__sharecard", onPointerDown: (F) => F.stopPropagation(), onClick: (F) => F.stopPropagation(), children: [
|
|
4611
4610
|
A && /* @__PURE__ */ a("div", { className: "gfull__shareqr", role: "img", "aria-label": "QR code for this link", style: { backgroundImage: `url("${A}")` } }),
|
|
4612
4611
|
/* @__PURE__ */ f("div", { className: "gfull__sharebody", children: [
|
|
4613
4612
|
/* @__PURE__ */ a("div", { className: "gfull__shareeyebrow", children: "SHARE THIS MOMENT" }),
|
|
4614
4613
|
/* @__PURE__ */ f("label", { className: "gfull__shareat", children: [
|
|
4615
|
-
/* @__PURE__ */ a("input", { type: "checkbox", checked: ce, onChange: (
|
|
4614
|
+
/* @__PURE__ */ a("input", { type: "checkbox", checked: ce, onChange: (F) => ke(F.target.checked), disabled: k.share.at < 1 }),
|
|
4616
4615
|
"Start at ",
|
|
4617
4616
|
mt(Math.floor(k.share.at))
|
|
4618
4617
|
] }),
|
|
@@ -4628,10 +4627,10 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4628
4627
|
] })
|
|
4629
4628
|
] })
|
|
4630
4629
|
] })
|
|
4631
|
-
] }), de = (
|
|
4630
|
+
] }), de = (F, ve, fe, ge, q, je = 0) => /* @__PURE__ */ a("button", { type: "button", className: "gfull__btn", title: F, "aria-label": F, onClick: ge, children: /* @__PURE__ */ a(ue, { d: ve, size: (re ? 20 : 18) + je, sw: fe, style: q }) }), W = /* @__PURE__ */ f("div", { className: "gfull__acts", children: [
|
|
4632
4631
|
N && /* @__PURE__ */ a(Li, { v: N, size: re ? 20 : 18 }),
|
|
4633
4632
|
C && de("Share", K.share, 1.6, C),
|
|
4634
|
-
|
|
4633
|
+
Qs() && !t && de(I ? "Exit full screen" : "Full screen", I ? $l : Ti, 1.7, () => hn(!I)),
|
|
4635
4634
|
X && de("Close player", K.close, 1.7, X)
|
|
4636
4635
|
] }), De = (u || d || D) && /* @__PURE__ */ f("div", { className: "gfull__top", children: [
|
|
4637
4636
|
u && de(u.muted ? "Unmute" : "Mute", u.muted ? K.volumeOff : K.volume, 1.6, u.onToggle),
|
|
@@ -4646,12 +4645,12 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4646
4645
|
role: "dialog",
|
|
4647
4646
|
"aria-label": r,
|
|
4648
4647
|
onPointerMove: Ce,
|
|
4649
|
-
onPointerDownCapture: (
|
|
4650
|
-
var
|
|
4651
|
-
v && (U.current = !0), $((ge) => ge + 1), (fe = (
|
|
4648
|
+
onPointerDownCapture: (F) => {
|
|
4649
|
+
var ve, fe;
|
|
4650
|
+
v && (U.current = !0), $((ge) => ge + 1), (fe = (ve = F.target).closest) != null && fe.call(ve, '[aria-label="Exit full screen"], [aria-label="Full screen"], [aria-label="Close player"]') || R();
|
|
4652
4651
|
},
|
|
4653
|
-
onClickCapture: (
|
|
4654
|
-
U.current && (U.current = !1,
|
|
4652
|
+
onClickCapture: (F) => {
|
|
4653
|
+
U.current && (U.current = !1, F.stopPropagation(), F.preventDefault());
|
|
4655
4654
|
},
|
|
4656
4655
|
children: [
|
|
4657
4656
|
Me && P && /* @__PURE__ */ f("div", { className: "gfull__swipe", "aria-live": "polite", children: [
|
|
@@ -4682,7 +4681,7 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4682
4681
|
] }),
|
|
4683
4682
|
" "
|
|
4684
4683
|
] }),
|
|
4685
|
-
o.words.map((
|
|
4684
|
+
o.words.map((F) => F.t + F.sp).join("")
|
|
4686
4685
|
] }) }),
|
|
4687
4686
|
/* @__PURE__ */ f("span", { children: [
|
|
4688
4687
|
o.who && /* @__PURE__ */ f(Pe, { children: [
|
|
@@ -4692,10 +4691,10 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4692
4691
|
] }),
|
|
4693
4692
|
" "
|
|
4694
4693
|
] }),
|
|
4695
|
-
o.words.map((
|
|
4696
|
-
|
|
4697
|
-
|
|
4698
|
-
] },
|
|
4694
|
+
o.words.map((F, ve) => /* @__PURE__ */ f("span", { "data-said": F.dim ? void 0 : "", "data-at": o.cursor != null && ve <= o.cursor ? "" : void 0, style: F.dim ? Fl : void 0, children: [
|
|
4695
|
+
F.t,
|
|
4696
|
+
F.sp
|
|
4697
|
+
] }, ve))
|
|
4699
4698
|
] })
|
|
4700
4699
|
] }) }),
|
|
4701
4700
|
/* @__PURE__ */ a("div", { className: `gfull__prog${re ? "" : " gfull__prog--two"}`, children: re ? /* @__PURE__ */ f(Pe, { children: [
|
|
@@ -4724,10 +4723,10 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4724
4723
|
}
|
|
4725
4724
|
);
|
|
4726
4725
|
}
|
|
4727
|
-
function
|
|
4726
|
+
function Gl({ dark: t, back: e, home: n, live: r, title: s, badge: i, subline: o, onOptions: l, optionsActive: c }) {
|
|
4728
4727
|
return /* @__PURE__ */ f("div", { className: "ghead", children: [
|
|
4729
4728
|
e && /* @__PURE__ */ a("button", { type: "button", className: "ghead__back", "aria-label": "Back", title: "Back", onClick: e, children: /* @__PURE__ */ a(ue, { d: K.chevronLeft, size: 19, sw: 1.7 }) }),
|
|
4730
|
-
r && /* @__PURE__ */ a("span", { className: "mark", children: /* @__PURE__ */ a(
|
|
4729
|
+
r && /* @__PURE__ */ a("span", { className: "mark", children: /* @__PURE__ */ a(Gs, { dark: t, size: 30 }) }),
|
|
4731
4730
|
/* @__PURE__ */ a("div", { style: { flex: 1, minWidth: 0, display: "flex" }, children: n ? /* @__PURE__ */ a("div", { className: "ghead__logo", children: /* @__PURE__ */ a(Vt, { dark: t, height: 22 }) }) : /* @__PURE__ */ f("div", { className: "ghead__title", onClick: e, title: e ? "Back" : void 0, style: { cursor: e ? "pointer" : "default" }, children: [
|
|
4732
4731
|
/* @__PURE__ */ f("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
4733
4732
|
/* @__PURE__ */ a("span", { className: "ghead__name", children: s }),
|
|
@@ -4742,13 +4741,13 @@ function Wl({ dark: t, back: e, home: n, live: r, title: s, badge: i, subline: o
|
|
|
4742
4741
|
] }) })
|
|
4743
4742
|
] });
|
|
4744
4743
|
}
|
|
4745
|
-
const
|
|
4746
|
-
function
|
|
4744
|
+
const Zl = "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", ql = (t, e = !1) => [{ value: "read", label: t.read, icon: /* @__PURE__ */ a(ue, { d: K.book, size: 17 }) }, { value: "listen", label: /* @__PURE__ */ a("span", { style: { display: "inline-block", minWidth: 52, textAlign: "center" }, children: e ? t.watch : t.listen }), icon: /* @__PURE__ */ a(ue, { d: e ? Zl : K.headphones, size: 19, sw: 1.5 }) }];
|
|
4745
|
+
function Kl(t) {
|
|
4747
4746
|
if (!t.lang) return null;
|
|
4748
4747
|
const e = t.langName;
|
|
4749
4748
|
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;
|
|
4750
4749
|
}
|
|
4751
|
-
function
|
|
4750
|
+
function Jl(t, e) {
|
|
4752
4751
|
const [n, r] = O(null), [s, i] = O(!1);
|
|
4753
4752
|
return E(() => {
|
|
4754
4753
|
if (!t) {
|
|
@@ -4761,8 +4760,8 @@ function Kl(t, e) {
|
|
|
4761
4760
|
return () => clearTimeout(l);
|
|
4762
4761
|
}, [t, e]), [s, n];
|
|
4763
4762
|
}
|
|
4764
|
-
const
|
|
4765
|
-
function
|
|
4763
|
+
const Xl = (t) => `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
4764
|
+
function ec({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
4766
4765
|
const [s, i] = O(() => Date.now());
|
|
4767
4766
|
E(() => {
|
|
4768
4767
|
if (t.since == null) return;
|
|
@@ -4795,7 +4794,7 @@ function Xl({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
|
4795
4794
|
/* @__PURE__ */ f("div", { className: "pwait__head", children: [
|
|
4796
4795
|
l ? /* @__PURE__ */ a("div", { className: "pwait__mark", "aria-hidden": "true", children: /* @__PURE__ */ a(ue, { d: K.warnCircle, size: 18, sw: 1.8 }) }) : /* @__PURE__ */ a("div", { className: "pwait__spin", "aria-hidden": "true" }),
|
|
4797
4796
|
/* @__PURE__ */ a("div", { className: "pwait__t", children: c }),
|
|
4798
|
-
!l && o != null && o >= 3 && /* @__PURE__ */ a("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children:
|
|
4797
|
+
!l && o != null && o >= 3 && /* @__PURE__ */ a("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children: Xl(o) })
|
|
4799
4798
|
] }),
|
|
4800
4799
|
/* @__PURE__ */ a("div", { className: "pwait__note", children: u }),
|
|
4801
4800
|
!l && /* @__PURE__ */ a("div", { className: "pwait__bar", "aria-hidden": "true", children: /* @__PURE__ */ a("div", {}) }),
|
|
@@ -4808,13 +4807,13 @@ function Xl({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
|
4808
4807
|
}
|
|
4809
4808
|
);
|
|
4810
4809
|
}
|
|
4811
|
-
const
|
|
4812
|
-
function
|
|
4810
|
+
const tc = "https://app.vocalstack.com", nc = "/connect/transcribe";
|
|
4811
|
+
function rc() {
|
|
4813
4812
|
const t = new Uint8Array(24);
|
|
4814
4813
|
return crypto.getRandomValues(t), btoa(String.fromCharCode(...t)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
4815
4814
|
}
|
|
4816
4815
|
function wi(t, e, n) {
|
|
4817
|
-
const r = new URL(t ??
|
|
4816
|
+
const r = new URL(t ?? tc), s = rc(), i = new URL(nc, r);
|
|
4818
4817
|
e.url && i.searchParams.set("url", e.url), e.transcription && i.searchParams.set("transcription", e.transcription), e.ask && i.searchParams.set("ask", "1"), i.searchParams.set("origin", window.location.origin), i.searchParams.set("nonce", s);
|
|
4819
4818
|
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(i.toString(), "vocalstack-connect", `popup=yes,width=${o},height=${l},left=${Math.round(c)},top=${Math.round(u)}`);
|
|
4820
4819
|
return d ? new Promise((g, M) => {
|
|
@@ -4850,16 +4849,16 @@ function wi(t, e, n) {
|
|
|
4850
4849
|
}, 500);
|
|
4851
4850
|
}) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
|
|
4852
4851
|
}
|
|
4853
|
-
function
|
|
4852
|
+
function sc(t, e, n) {
|
|
4854
4853
|
return wi(t, { url: e }, n);
|
|
4855
4854
|
}
|
|
4856
|
-
const
|
|
4855
|
+
const ic = {
|
|
4857
4856
|
"signing-in": "Sign in to VocalStack in the window that opened…",
|
|
4858
4857
|
consent: "Confirm in the VocalStack window…",
|
|
4859
4858
|
checking: "Checking the link…",
|
|
4860
4859
|
starting: "Starting the transcription…"
|
|
4861
|
-
},
|
|
4862
|
-
function
|
|
4860
|
+
}, ac = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
4861
|
+
function oc({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
4863
4862
|
const [s, i] = O(""), [o, l] = O(!1), [c, u] = O(null), [d, g] = O(null);
|
|
4864
4863
|
E(() => {
|
|
4865
4864
|
const j = (T) => {
|
|
@@ -4867,11 +4866,11 @@ function ac({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
4867
4866
|
};
|
|
4868
4867
|
return window.addEventListener("keydown", j), () => window.removeEventListener("keydown", j);
|
|
4869
4868
|
}, [r]);
|
|
4870
|
-
const M = s.trim(), p =
|
|
4869
|
+
const M = s.trim(), p = ac.test(M), y = async () => {
|
|
4871
4870
|
if (!(!p || o)) {
|
|
4872
4871
|
l(!0), u(null);
|
|
4873
4872
|
try {
|
|
4874
|
-
const j = await
|
|
4873
|
+
const j = await sc(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`, g);
|
|
4875
4874
|
j && e(j);
|
|
4876
4875
|
} catch (j) {
|
|
4877
4876
|
u(j instanceof Error ? j.message : "Something went wrong. Please try again.");
|
|
@@ -4895,7 +4894,7 @@ function ac({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
4895
4894
|
}, "aria-label": "Video link" }),
|
|
4896
4895
|
/* @__PURE__ */ a("button", { type: "submit", className: "vsp-end__go", disabled: !p || o, children: o ? /* @__PURE__ */ a(ct, { size: 15, color: "#050507", track: "rgba(5,5,7,.2)" }) : "Transcribe" })
|
|
4897
4896
|
] }),
|
|
4898
|
-
o && /* @__PURE__ */ a("div", { className: "vsp-end__note", role: "status", children:
|
|
4897
|
+
o && /* @__PURE__ */ a("div", { className: "vsp-end__note", role: "status", children: ic[d ?? "checking"] }),
|
|
4899
4898
|
c && /* @__PURE__ */ a("div", { className: "vsp-end__err", role: "alert", children: c }),
|
|
4900
4899
|
/* @__PURE__ */ f("div", { className: "vsp-end__foot", children: [
|
|
4901
4900
|
/* @__PURE__ */ a("span", { children: "Uses your VocalStack account. You'll be asked to sign in if you're not." }),
|
|
@@ -4906,7 +4905,7 @@ function ac({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
4906
4905
|
] })
|
|
4907
4906
|
] }) });
|
|
4908
4907
|
}
|
|
4909
|
-
function
|
|
4908
|
+
function lc(t) {
|
|
4910
4909
|
const [e, n] = O(() => typeof window > "u" ? !0 : window.innerWidth >= 880);
|
|
4911
4910
|
return E(() => {
|
|
4912
4911
|
if (t != null) return;
|
|
@@ -4914,20 +4913,20 @@ function oc(t) {
|
|
|
4914
4913
|
return window.addEventListener("resize", r), () => window.removeEventListener("resize", r);
|
|
4915
4914
|
}, [t]), t ?? e;
|
|
4916
4915
|
}
|
|
4917
|
-
const
|
|
4916
|
+
const cc = {
|
|
4918
4917
|
"signing-in": "Sign in to VocalStack in the window that opened…",
|
|
4919
4918
|
consent: "Confirm in the VocalStack window…",
|
|
4920
4919
|
checking: "Looking for your transcription of this video…",
|
|
4921
4920
|
starting: "Starting the transcription…"
|
|
4922
4921
|
};
|
|
4923
|
-
function
|
|
4922
|
+
function uc(t) {
|
|
4924
4923
|
try {
|
|
4925
4924
|
return new URL(t).hostname.replace(/^www\./, "");
|
|
4926
4925
|
} catch {
|
|
4927
4926
|
return t;
|
|
4928
4927
|
}
|
|
4929
4928
|
}
|
|
4930
|
-
function
|
|
4929
|
+
function dc({ src: t, appUrl: e, title: n, onReady: r }) {
|
|
4931
4930
|
const [s, i] = O(!1), [o, l] = O(null), [c, u] = O(null), d = or(t), g = async () => {
|
|
4932
4931
|
if (!s) {
|
|
4933
4932
|
i(!0), u(null);
|
|
@@ -4946,18 +4945,18 @@ function uc({ src: t, appUrl: e, title: n, onReady: r }) {
|
|
|
4946
4945
|
/* @__PURE__ */ f("div", { className: "vsp-end__card vsp-gate__card", children: [
|
|
4947
4946
|
/* @__PURE__ */ a("div", { className: "vsp-end__brand", children: /* @__PURE__ */ a(Vt, { dark: !0, link: !1, height: 16 }) }),
|
|
4948
4947
|
/* @__PURE__ */ a("div", { className: "vsp-end__title", children: n ?? "Watch with subtitles and spoken translations" }),
|
|
4949
|
-
/* @__PURE__ */ a("div", { className: "vsp-end__note", children: `From ${
|
|
4948
|
+
/* @__PURE__ */ a("div", { className: "vsp-end__note", children: `From ${uc(t)}. If you have transcribed it with VocalStack it plays right away; if not, you can start it here.` }),
|
|
4950
4949
|
/* @__PURE__ */ a("button", { type: "button", className: "vsp-end__go vsp-gate__go", onClick: () => void g(), disabled: s, children: s ? /* @__PURE__ */ a(ct, { size: 15, color: "#050507", track: "rgba(5,5,7,.2)" }) : /* @__PURE__ */ f(Pe, { children: [
|
|
4951
4950
|
/* @__PURE__ */ a(ue, { d: K.cc, size: 16, sw: 1.7 }),
|
|
4952
4951
|
"Open with VocalStack"
|
|
4953
4952
|
] }) }),
|
|
4954
|
-
s && /* @__PURE__ */ a("div", { className: "vsp-end__note", role: "status", children:
|
|
4953
|
+
s && /* @__PURE__ */ a("div", { className: "vsp-end__note", role: "status", children: cc[o ?? "checking"] }),
|
|
4955
4954
|
c && /* @__PURE__ */ a("div", { className: "vsp-end__err", role: "alert", children: c }),
|
|
4956
4955
|
/* @__PURE__ */ a("div", { className: "vsp-end__foot", children: /* @__PURE__ */ a("span", { children: "Uses your VocalStack account. You'll be asked to sign in if you're not." }) })
|
|
4957
4956
|
] })
|
|
4958
4957
|
] });
|
|
4959
4958
|
}
|
|
4960
|
-
function
|
|
4959
|
+
function Mc(t, e, n) {
|
|
4961
4960
|
const [r, s] = O(t && e ? void 0 : null);
|
|
4962
4961
|
return E(() => {
|
|
4963
4962
|
if (!t) {
|
|
@@ -4970,7 +4969,7 @@ function dc(t, e, n) {
|
|
|
4970
4969
|
}
|
|
4971
4970
|
let i = !0;
|
|
4972
4971
|
s(void 0);
|
|
4973
|
-
const o = new
|
|
4972
|
+
const o = new Vs({ baseUrl: (n ?? li).replace(/\/$/, ""), token: async () => (typeof e == "function" ? await e() : e) || void 0 }), l = o.transcriptions.lookup;
|
|
4974
4973
|
if (!l) {
|
|
4975
4974
|
s(null);
|
|
4976
4975
|
return;
|
|
@@ -4984,13 +4983,13 @@ function dc(t, e, n) {
|
|
|
4984
4983
|
};
|
|
4985
4984
|
}, [t, e, n]), r;
|
|
4986
4985
|
}
|
|
4987
|
-
const
|
|
4988
|
-
function
|
|
4986
|
+
const $s = (t) => t == null ? null : t ? "on" : "off";
|
|
4987
|
+
function gc(t) {
|
|
4989
4988
|
const e = t.syncUrl && typeof window < "u" ? new URLSearchParams(window.location.search) : null, n = { ...t.initial ?? {}, ...t.settings ?? {} }, r = (i) => i === "on" || i === "off" ? i : null, s = Number(e == null ? void 0 : e.get("t"));
|
|
4990
4989
|
return {
|
|
4991
4990
|
lang: (e == null ? void 0 : e.get("lang")) || n.lang || null,
|
|
4992
|
-
labels: r(e == null ? void 0 : e.get("labels")) ??
|
|
4993
|
-
words: r(e == null ? void 0 : e.get("words")) ??
|
|
4991
|
+
labels: r(e == null ? void 0 : e.get("labels")) ?? $s(n.speakerLabels),
|
|
4992
|
+
words: r(e == null ? void 0 : e.get("words")) ?? $s(n.wordHighlight),
|
|
4994
4993
|
cc: e != null && e.get("cc") ? e.get("cc") !== "off" : n.subtitles ?? !0,
|
|
4995
4994
|
translateAudio: e != null && e.get("audio") ? e.get("audio") !== "original" : n.translateAudio ?? !0,
|
|
4996
4995
|
clonedVoices: e != null && e.get("voices") ? e.get("voices") !== "stock" : (n.voices ?? "cloned") === "cloned",
|
|
@@ -4998,16 +4997,16 @@ function Mc(t) {
|
|
|
4998
4997
|
startAt: Number.isFinite(s) && s > 0 ? s : t.startAt ?? null
|
|
4999
4998
|
};
|
|
5000
4999
|
}
|
|
5001
|
-
function
|
|
5000
|
+
function vc(t) {
|
|
5002
5001
|
const [e, n] = O({ id: t.id ?? "", token: t.token });
|
|
5003
5002
|
E(() => {
|
|
5004
5003
|
n({ id: t.id ?? "", token: t.token });
|
|
5005
5004
|
}, [t.id, t.token, t.src]);
|
|
5006
|
-
const r =
|
|
5005
|
+
const r = Mc(t.src ?? null, t.token ?? null, t.baseUrl ?? null);
|
|
5007
5006
|
E(() => {
|
|
5008
5007
|
r != null && r.id && n({ id: r.id, token: t.token });
|
|
5009
5008
|
}, [r == null ? void 0 : r.id]);
|
|
5010
|
-
const s = !e.id && !!t.src && r !== void 0, i = ci({ id: e.id, token: e.token, baseUrl: t.baseUrl, listen: e.listen }), { source: o, gone: l, error: c, reload: u } =
|
|
5009
|
+
const s = !e.id && !!t.src && r !== void 0, i = ci({ id: e.id, token: e.token, baseUrl: t.baseUrl, listen: e.listen }), { source: o, gone: l, error: c, reload: u } = po(i, e.id), d = mo(i, (o == null ? void 0 : o.recording.id) ?? null), g = ze(() => fo(i, d), [i, d]);
|
|
5011
5010
|
E(() => {
|
|
5012
5011
|
var T;
|
|
5013
5012
|
o && ((T = t.onSource) == null || T.call(t, o));
|
|
@@ -5015,23 +5014,23 @@ function kc(t) {
|
|
|
5015
5014
|
var T;
|
|
5016
5015
|
c && ((T = t.onError) == null || T.call(t, c));
|
|
5017
5016
|
}, [c]);
|
|
5018
|
-
const M =
|
|
5019
|
-
return E(() => (
|
|
5017
|
+
const M = lc(t.desk), p = (t.layout ?? "embed") === "embed", y = t.appUrl ?? (t.endCard ? t.endCard.appUrl : void 0), j = z(null);
|
|
5018
|
+
return E(() => (Ps(p ? j.current : null), () => Ps(null)), [p]), /* @__PURE__ */ a(uo, { value: g, children: /* @__PURE__ */ a("div", { ref: j, className: `vsp${p ? " vsp--embed" : ""}${t.className ? ` ${t.className}` : ""}`, "data-theme": t.mode === "video" || t.dark ? "dark" : "light", "data-mode": t.mode === "video" ? "video" : "transcript", children: s ? /* @__PURE__ */ a(dc, { src: t.src, appUrl: y, onReady: (T) => n({ id: T.transcriptionId, token: null, listen: { transcriptionId: T.transcriptionId, recordingId: T.recordingId, token: T.token } }) }) : e.id ? /* @__PURE__ */ a(hc, { ...t, id: e.id, api: g, shared: o, gone: l, loadError: c, reread: u, desk: M, dark: t.mode === "video" || !!t.dark, onStarted: (T) => n({ id: T.transcriptionId, token: null, listen: { transcriptionId: T.transcriptionId, recordingId: T.recordingId, token: T.token } }) }, e.id) : /* @__PURE__ */ a("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ a("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
|
|
5020
5019
|
}
|
|
5021
|
-
function
|
|
5022
|
-
var
|
|
5023
|
-
const { api: e, shared: n, gone: r, desk: s, dark: i } = t, o = t.id ?? "", l =
|
|
5020
|
+
function hc(t) {
|
|
5021
|
+
var Zr, qr, Kr, Jr, Xr, es, ts, ns, rs, ss, is, as, os, ls, cs, us, ds, Ms, gs, hs, fs, Ns, ps, ms;
|
|
5022
|
+
const { api: e, shared: n, gone: r, desk: s, dark: i } = t, o = t.id ?? "", l = ze(() => gc(t), []), c = t.mode === "video", u = ((qr = (Zr = n == null ? void 0 : n.job) == null ? void 0 : Zr.source) == null ? void 0 : qr.kind) === "url" ? or(n.job.source.url) : null, d = c && !(n && !u), [g, M] = O(t.loadError);
|
|
5024
5023
|
E(() => {
|
|
5025
5024
|
t.loadError && M(t.loadError);
|
|
5026
5025
|
}, [t.loadError]);
|
|
5027
|
-
const [p, y] = O("none"), [j, T] = O(!1), [N, h] = O(""), [C, D] =
|
|
5026
|
+
const [p, y] = O("none"), [j, T] = O(!1), [N, h] = O(""), [C, D] = wl(), [k, te] = O(null), [R, X] = O(d ? "listen" : "read"), [I, b] = O(!1), Q = z(null), L = z(/* @__PURE__ */ new Map()), [v, S] = O("main"), ne = (w) => {
|
|
5028
5027
|
const me = document.querySelector(".vs-sheet--settings"), Re = me == null ? void 0 : me.parentElement;
|
|
5029
5028
|
me && Re && v === "main" && w !== "main" && Re.style.setProperty("--vs-sheet-top", `${Math.round(me.getBoundingClientRect().top - Re.getBoundingClientRect().top)}px`), S(w);
|
|
5030
5029
|
};
|
|
5031
5030
|
E(() => {
|
|
5032
5031
|
I || ne("main");
|
|
5033
5032
|
}, [I]);
|
|
5034
|
-
const [$, U] = O(d), Me = (n == null ? void 0 : n.recording) ?? null, P = (Me == null ? void 0 : Me.id) ?? null, [
|
|
5033
|
+
const [$, U] = O(d), Me = (n == null ? void 0 : n.recording) ?? null, P = (Me == null ? void 0 : Me.id) ?? null, [V, ae] = O(l.lang), oe = typeof V == "string" ? V : null, [re, we] = O(l.labels), [pe, Ce] = O(l.words), [xe, Qe] = O(l.cc), [G, ce] = O(l.translateAudio), [ke, Ae] = O(l.clonedVoices), [se, le] = O(l.removeBackground), m = t.settings;
|
|
5035
5034
|
E(() => {
|
|
5036
5035
|
(m == null ? void 0 : m.lang) !== void 0 && ae(m.lang);
|
|
5037
5036
|
}, [m == null ? void 0 : m.lang]), E(() => {
|
|
@@ -5055,16 +5054,16 @@ function gc(t) {
|
|
|
5055
5054
|
}, [oe, re, pe, xe, G, ke, se]), E(() => {
|
|
5056
5055
|
n && !n.allowTranslate && oe && ae(null);
|
|
5057
5056
|
}, [n, oe]);
|
|
5058
|
-
const { model: Z, error: de, clearError: W, setLanguage: De, mergeTranslations:
|
|
5057
|
+
const { model: Z, error: de, clearError: W, setLanguage: De, mergeTranslations: F, translating: ve, translateFailed: fe, shownLang: ge } = ko(P, {
|
|
5059
5058
|
lang: null,
|
|
5060
5059
|
onFrame: (w) => {
|
|
5061
5060
|
w.type === "job.progress" && te({ state: w.state, processedS: w.processedS ?? 0, totalS: w.totalS ?? null, segmentsDone: w.segmentsDone ?? 0, segmentsTotal: w.segmentsTotal ?? null, pct: w.pct ?? 0, error: w.error ?? null });
|
|
5062
5061
|
}
|
|
5063
|
-
}), q =
|
|
5062
|
+
}), q = ze(() => Ja(Z).filter((w) => !w.suppressed), [Z]), je = vo((n == null ? void 0 : n.job) ?? null), $e = ["done", "failed", "stopped"].includes(qn((je == null ? void 0 : je.state) ?? ((Kr = n == null ? void 0 : n.job) == null ? void 0 : Kr.state))), ye = $e ? je : k ?? je, be = !!k && !["done", "failed", "stopped"].includes(qn(k.state)), He = z(0);
|
|
5064
5063
|
E(() => {
|
|
5065
5064
|
!$e || !be || Date.now() - He.current < 1e4 || (He.current = Date.now(), t.reread());
|
|
5066
5065
|
}, [$e, be, k == null ? void 0 : k.state, k == null ? void 0 : k.processedS, o]);
|
|
5067
|
-
const
|
|
5066
|
+
const Ie = qn((ye == null ? void 0 : ye.state) ?? ((Jr = n == null ? void 0 : n.job) == null ? void 0 : Jr.state)), Ye = !!P && (Ie === "transcribing" || Ie === "queued"), Y = d && !r && (!n || (Ye || Ie === "cropping") && q.length === 0), _ = Ye ? (ye == null ? void 0 : ye.pct) ?? 0 : 100, B = zo(n == null ? void 0 : n.job, ye) ?? (Me == null ? void 0 : Me.mediaDurationS) ?? null, ee = ((Xr = Z.segments.values().next().value) == null ? void 0 : Xr.language) ?? (Me == null ? void 0 : Me.spokenLanguage) ?? null, ie = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", Te = ((ns = (ts = (es = n == null ? void 0 : n.job) == null ? void 0 : es.source) == null ? void 0 : ts.name) == null ? void 0 : ns.trim()) || null, _e = n ? ((rs = n.name) == null ? void 0 : rs.trim()) || Te : null, Ee = !!((ss = n == null ? void 0 : n.job) != null && ss.hasAudio), Le = (is = n == null ? void 0 : n.job) == null ? void 0 : is.source, Ve = !Ee && !!Le && (Le.kind !== "url" || Le.bytes != null) && (Ie === "transcribing" || Ie === "queued" || Ie === "done"), qe = P && (n != null && n.allowDownload) && Ee ? da(e.origin, P, e.cred) : P && (n != null && n.allowDownload) && Ve ? Vn(e.origin, P, "source", e.cred) : null, it = q[q.length - 1], Tt = it ? ((as = it.words[it.words.length - 1]) == null ? void 0 : as.end) ?? it.start : 0, gt = d && Ye ? Math.max(Tt, (ye == null ? void 0 : ye.processedS) ?? 0) : null, We = Ol(qe, (Ee || Ve) && !!(n != null && n.allowDownload), q, B, Ve ? ((ls = (os = n == null ? void 0 : n.job) == null ? void 0 : os.crop) == null ? void 0 : ls.startS) ?? 0 : 0, gt), Ue = ((us = (cs = n == null ? void 0 : n.job) == null ? void 0 : cs.source) == null ? void 0 : us.kind) === "url" ? or(n.job.source.url) : null, nt = Il(q, B, ((Ms = (ds = n == null ? void 0 : n.job) == null ? void 0 : ds.crop) == null ? void 0 : Ms.startS) ?? 0, gt), Fe = !!Ue, Lt = Fe ? nt.player : We, ut = yo(), vt = z(null), J = Sl({ recordingId: P, model: Z, rows: q, lenS: B, ended: !!P && !Ye, cred: e.cred, langs: ut, srcLang: ee, canTranslate: !!(n != null && n.allowTranslate), pickedLang: V, setPickedLang: ae, side: s && !$ ? bl : void 0, hearOriginal: Ne, timed: !!Ue, stockVoices: d && !ke, stickyPicker: d, pickerBusy: vt.current }), Ut = z(null);
|
|
5068
5067
|
E(() => {
|
|
5069
5068
|
!P || Ut.current === oe || (Ut.current = oe, De(oe));
|
|
5070
5069
|
}, [oe, P]);
|
|
@@ -5076,39 +5075,39 @@ function gc(t) {
|
|
|
5076
5075
|
}
|
|
5077
5076
|
(J.on ? Lt : J.player).pause();
|
|
5078
5077
|
}, [J.on, Fe]);
|
|
5079
|
-
const Tn =
|
|
5078
|
+
const Tn = ze(() => q.filter((w) => w.sentenceId != null).map((w, me, Re) => {
|
|
5080
5079
|
var Ze;
|
|
5081
5080
|
return { sid: w.sentenceId, start: w.start, end: ((Ze = Re[me + 1]) == null ? void 0 : Ze.start) ?? Ot(w, w.start, w.start + 4) };
|
|
5082
|
-
}), [q]), rt =
|
|
5081
|
+
}), [q]), rt = Va({ on: Fe && J.on, lines: Tn, clips: J.clips, t: x.t, playing: x.playing, muted: x.muted }), xt = !!oe && (ve || J.relang || J.on && rt.missing != null);
|
|
5083
5082
|
vt.current = xt ? oe : null, E(() => {
|
|
5084
5083
|
Fe && J.on && rt.sid != null && J.setNear(rt.sid);
|
|
5085
|
-
}, [rt.sid, Fe, J.on]),
|
|
5084
|
+
}, [rt.sid, Fe, J.on]), zl([Lt, J.player], J.sampling);
|
|
5086
5085
|
const jt = z(null);
|
|
5087
5086
|
E(() => {
|
|
5088
5087
|
Ye && !x.playing && jt.current && (jt.current.scrollTop = jt.current.scrollHeight);
|
|
5089
5088
|
}, [Ye, q.length]);
|
|
5090
|
-
const Ft =
|
|
5089
|
+
const Ft = Yl(jt, q, j, N, T), Wt = /* @__PURE__ */ a(El, { open: j, q: N, onQ: h, onClose: () => T(!1), hits: Ft, desk: s, inline: s }), Ge = (n == null ? void 0 : n.name) || t.src || o, dt = !!(n != null && n.allowDownload), Dt = !!(n != null && n.allowExport), at = J.readLang, lt = at ? ((gs = ut == null ? void 0 : ut.languages.find((w) => w.code === at)) == null ? void 0 : gs.name) ?? at.toUpperCase() : null, Mt = async () => {
|
|
5091
5090
|
if (P)
|
|
5092
5091
|
try {
|
|
5093
|
-
if (
|
|
5094
|
-
D(`Preparing ${Ge} in ${
|
|
5092
|
+
if (at && J.canSpeak) {
|
|
5093
|
+
D(`Preparing ${Ge} in ${lt}${J.readVoiceName ? `, read by ${J.readVoiceName}` : ""} — the download starts when it is ready.`), await Co(e, { recordingId: P, lang: at, voiceKey: J.readVoiceKey, cred: e.cred, request: J.requestTrack }), D(`Downloading ${Ge} in ${lt}.`);
|
|
5095
5094
|
return;
|
|
5096
5095
|
}
|
|
5097
5096
|
if (Ee) {
|
|
5098
|
-
D(`Preparing ${Ge} as MP3 — the download starts when it is ready.`), await
|
|
5097
|
+
D(`Preparing ${Ge} as MP3 — the download starts when it is ready.`), await Io(Vn(e.origin, P, "delivery", e.cred)), D(`Downloading ${Ge}.`);
|
|
5099
5098
|
return;
|
|
5100
5099
|
}
|
|
5101
|
-
|
|
5100
|
+
mr(Vn(e.origin, P, "source", e.cred)), D(`Downloading ${Ge} — the full audio, since the transcript is still being written.`);
|
|
5102
5101
|
} catch (w) {
|
|
5103
5102
|
throw M(yt(w)), w;
|
|
5104
5103
|
}
|
|
5105
5104
|
}, bt = (w) => {
|
|
5106
5105
|
if (!P) return;
|
|
5107
|
-
const me = ar.find((Ze) => Ze.key === w).name, Re =
|
|
5108
|
-
return
|
|
5106
|
+
const me = ar.find((Ze) => Ze.key === w).name, Re = lt ? ` in ${lt}` : "";
|
|
5107
|
+
return Oo(e, P, w, { lang: at }).then(() => D(Ye ? `${me} exported${Re} for the first ${q.length} segments — the rest is still transcribing.` : `${me} exported${Re}.`)).catch((Ze) => {
|
|
5109
5108
|
throw M(yt(Ze)), Ze;
|
|
5110
5109
|
});
|
|
5111
|
-
},
|
|
5110
|
+
}, st = Ye ? "MORE TO COME…" : "END OF TRANSCRIPT", Gt = Ye ? "var(--brand)" : "var(--ink-28)", Rt = jo(ye, q.length), wt = x.has && (!J.relang || !!Ue), et = z(x);
|
|
5112
5111
|
et.current = x;
|
|
5113
5112
|
const ht = `${oe ?? ""}|${J.on ? "voice" : "source"}`, St = z({ key: ht, idx: 0, t: 0, playing: !1, until: 0 });
|
|
5114
5113
|
E(() => {
|
|
@@ -5122,17 +5121,17 @@ function gc(t) {
|
|
|
5122
5121
|
w.until = 0;
|
|
5123
5122
|
return;
|
|
5124
5123
|
}
|
|
5125
|
-
!x.has || J.relang || (w.until = 0, Math.abs(x.t - w.t) > 0.5 && (x.seekFrac && x.dur > 0 ? x.seekFrac(w.t / x.dur) : x.seekRow(w.idx)), w.playing && !x.playing && (
|
|
5124
|
+
!x.has || J.relang || (w.until = 0, Math.abs(x.t - w.t) > 0.5 && (x.seekFrac && x.dur > 0 ? x.seekFrac(w.t / x.dur) : x.seekRow(w.idx)), w.playing && !x.playing && (ot.current = !0, x.toggle()));
|
|
5126
5125
|
}
|
|
5127
5126
|
});
|
|
5128
|
-
const Zt = z(!1),
|
|
5129
|
-
d && (
|
|
5127
|
+
const Zt = z(!1), ot = z(!1);
|
|
5128
|
+
d && (Ks.video = !0);
|
|
5130
5129
|
const [qt, At] = O(!1), [Ln, wn] = O(!1);
|
|
5131
5130
|
E(() => {
|
|
5132
5131
|
if (!d || Zt.current || !wt || !$ || Y || t.autoplay === !1) return;
|
|
5133
5132
|
Zt.current = !0;
|
|
5134
5133
|
const w = (Ze) => {
|
|
5135
|
-
et.current.playing ||
|
|
5134
|
+
et.current.playing || ot.current || (et.current.toggle(), Ze > 0 && setTimeout(() => w(Ze - 1), 1500));
|
|
5136
5135
|
}, me = () => {
|
|
5137
5136
|
et.current.muted || et.current.toggleMute(), At(!0), w(3);
|
|
5138
5137
|
}, Re = et.current;
|
|
@@ -5141,7 +5140,7 @@ function gc(t) {
|
|
|
5141
5140
|
return;
|
|
5142
5141
|
}
|
|
5143
5142
|
Re.autoplay().then((Ze) => {
|
|
5144
|
-
Ze === !1 ? At(!0) : Ze == null && !
|
|
5143
|
+
Ze === !1 ? At(!0) : Ze == null && !ot.current && me();
|
|
5145
5144
|
});
|
|
5146
5145
|
}, [d, wt, $, Y]);
|
|
5147
5146
|
const ft = z(!1), Kt = () => {
|
|
@@ -5159,26 +5158,26 @@ function gc(t) {
|
|
|
5159
5158
|
ft.current = !1;
|
|
5160
5159
|
return;
|
|
5161
5160
|
}
|
|
5162
|
-
|
|
5163
|
-
},
|
|
5161
|
+
ot.current = !0, et.current.toggle();
|
|
5162
|
+
}, H = (w) => /* @__PURE__ */ a(Ll, { player: x, size: w }), Oe = !!P && !Ye, [Be, Nt] = O(!1);
|
|
5164
5163
|
E(() => {
|
|
5165
|
-
if (!
|
|
5164
|
+
if (!ve) {
|
|
5166
5165
|
Nt(!1);
|
|
5167
5166
|
return;
|
|
5168
5167
|
}
|
|
5169
5168
|
const w = setTimeout(() => Nt(!0), 180);
|
|
5170
5169
|
return () => clearTimeout(w);
|
|
5171
|
-
}, [
|
|
5172
|
-
const zt = Be ? ge : oe, ki =
|
|
5170
|
+
}, [ve]);
|
|
5171
|
+
const zt = Be ? ge : oe, ki = Qo(P, oe, q, F), kn = nl(rl(Me), P, J.readLang), vi = dt || Dt, ji = (((fs = (hs = n == null ? void 0 : n.job) == null ? void 0 : hs.crop) == null ? void 0 : fs.startS) ?? 0) + Jn(x, q), vn = R === "listen", It = vn && !!Ue, zi = (w) => {
|
|
5173
5172
|
Lt.pause(), J.player.pause(), X(w), w === "read" && $ && ($t(!1), U(!1));
|
|
5174
|
-
}, Se = J.barChip, Et = di(Se.label),
|
|
5175
|
-
w === "summary" &&
|
|
5176
|
-
w === "export" && /* @__PURE__ */ a(
|
|
5177
|
-
] }), Ii = (w) => /* @__PURE__ */ a(
|
|
5173
|
+
}, Se = J.barChip, Et = di(Se.label), Tr = /* @__PURE__ */ a(Ls, { value: R, onChange: zi, bordered: !1, options: ql(Et, !!Ue) }), Yt = [...Oe ? [{ key: "summary", label: "Summary" }] : [], ...vi ? [{ key: "export", label: "Export" }] : []], Lr = (w) => /* @__PURE__ */ f(Pe, { children: [
|
|
5174
|
+
w === "summary" && Oe && /* @__PURE__ */ a(sl, { s: kn }),
|
|
5175
|
+
w === "export" && /* @__PURE__ */ a(tl, { audio: dt ? { name: Ge, meta: at && J.canSpeak || Ee ? `MP3${B ? ` · ${mt(B)}` : ""}` : "ORIGINAL AUDIO", onClick: Mt } : null, formats: Dt, onExport: bt })
|
|
5176
|
+
] }), Ii = (w) => /* @__PURE__ */ a(_o, { index: x.idx, total: Math.max(1, q.length), frac: x.dur > 0 ? Math.min(1, x.t / x.dur) : 0, glideMs: x.wordSync ? 0 : 220, atLabel: mt(x.t), durLabel: mt(x.dur), stepLabel: w ? `${x.idx + 1} / ${q.length}` : "", onSeek: J.relang ? xl : x.seekRow, onSeekFrac: J.relang ? void 0 : x.seekFrac, onScrubStart: x.hold, onScrubEnd: x.release }), wr = {
|
|
5178
5177
|
live: !1,
|
|
5179
5178
|
atEdge: !1,
|
|
5180
5179
|
edgeFrac: null,
|
|
5181
|
-
readyFrac:
|
|
5180
|
+
readyFrac: gt != null && x.dur > 0 ? Math.min(1, gt / x.dur) : null,
|
|
5182
5181
|
pct: x.dur > 0 ? Math.min(100, Math.round(x.t / x.dur * 1e3) / 10) : 0,
|
|
5183
5182
|
atLabel: mt(x.t),
|
|
5184
5183
|
labelAt: (w) => mt(w * x.dur),
|
|
@@ -5187,55 +5186,55 @@ function gc(t) {
|
|
|
5187
5186
|
var me;
|
|
5188
5187
|
J.relang || (me = x.seekFrac) == null || me.call(x, w);
|
|
5189
5188
|
}
|
|
5190
|
-
}, [Oi, Ci] =
|
|
5189
|
+
}, [Oi, Ci] = Jl(J.on && !!x.preparing && x.playing, 1500), jn = J.on && ((Ns = x.error) == null ? void 0 : Ns.code) === "voice_not_started", zn = J.canSpeak && !J.error && !jn, en = oe ? ((ps = ut == null ? void 0 : ut.languages.find((w) => w.code === oe)) == null ? void 0 : ps.name) ?? Se.label : "", Je = $ ? Kl({ lang: oe, langName: en, translating: ve && !!oe, translateFailed: fe, voiceFailed: jn, relang: J.relang, starting: J.on ? x.starting : null, slowLine: Oi, lineSince: Ci }) : null, In = !!Ue && !!Je && (Je.kind === "translating" || Je.kind === "voice" && J.relang), kr = !In || !Je ? null : Je.kind === "translating" ? `Translating into ${en || "the new language"}…` : `Preparing the ${en || "translated"} voice…`, tn = !In && ((Je == null ? void 0 : Je.kind) === "voice" || (Je == null ? void 0 : Je.kind) === "starting"), vr = ri({ ...J.langList, keepOpen: !0, open: v === "lang", onClose: () => ne("main") }), jr = xa(se, J.on), xi = d && jr.bed && dt && P && (!Ye || qe) ? ws(e.origin, P, e.cred) : null, zr = Ra(xi, { t: Jn(x, q), playing: x.playing && !tn && !(x.timed && x.preparing), muted: x.muted }), Di = d && jr.speech && dt && P && (!Ye || qe) ? ws(e.origin, P, e.cred, "speech") : null, On = si(Di, { t: Jn(x, q), playing: !J.on && x.playing, muted: x.muted }), Cn = !J.on && On.on;
|
|
5191
5190
|
E(() => {
|
|
5192
5191
|
var w;
|
|
5193
5192
|
nt.setVideoSound(!(Fe && (J.on || Cn))), (w = We.silence) == null || w.call(We, !Fe && Cn);
|
|
5194
5193
|
}, [Fe, J.on, Cn, qe]);
|
|
5195
|
-
const xn = dt ? J.on ?
|
|
5194
|
+
const xn = dt ? J.on ? zr : On.state : "unavailable", Dn = G && zn && !!oe, bi = Dn ? [`Translated${J.hasClone ? ke ? ", cloned voices" : ", synthetic voices" : ""}`, !se && dt && zr !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : se && xn !== "unavailable" ? "Original speech, background removed" : "Original sound", Si = () => {
|
|
5196
5195
|
if ((Je == null ? void 0 : Je.kind) === "translateFailed") {
|
|
5197
5196
|
De(oe);
|
|
5198
5197
|
return;
|
|
5199
5198
|
}
|
|
5200
|
-
|
|
5199
|
+
ot.current = !0, x.toggle();
|
|
5201
5200
|
}, Ai = () => {
|
|
5202
5201
|
const w = x.idx;
|
|
5203
|
-
x.pause(), ae(null),
|
|
5204
|
-
},
|
|
5205
|
-
|
|
5202
|
+
x.pause(), ae(null), ot.current = !0, Lt.playRow(w);
|
|
5203
|
+
}, Ir = { prevOn: x.idx > 0, nextOn: x.idx < q.length - 1, onPrev: x.prev, onNext: x.next, playing: x.playing, playable: wt, playTitle: J.playTitle ?? (x.playing ? "Pause" : "Play"), onPlay: () => {
|
|
5204
|
+
ot.current = !0, x.toggle();
|
|
5206
5205
|
}, busy: J.relang && !Ue || tn };
|
|
5207
|
-
|
|
5208
|
-
|
|
5206
|
+
Ga(wt ? { playing: x.playing, toggle: () => {
|
|
5207
|
+
ot.current = !0, x.toggle();
|
|
5209
5208
|
}, next: x.next, prev: x.prev } : null, _e);
|
|
5210
5209
|
const bn = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, Sn = (w, me) => !Se.can || !A.language ? null : d ? /* @__PURE__ */ f("button", { type: "button", className: "gfull__btn", title: xt ? `${Se.label ?? Se.code}: still being prepared` : Se.label ?? Se.code, "aria-label": `Language: ${Se.label ?? Se.code}`, "aria-busy": xt || void 0, onClick: () => {
|
|
5211
5210
|
b(!1), Se.onClick();
|
|
5212
5211
|
}, style: { position: "relative" }, children: [
|
|
5213
5212
|
/* @__PURE__ */ a("span", { style: { fontSize: me === "sm" ? 17 : 21, lineHeight: 1 }, children: Se.flag }),
|
|
5214
5213
|
xt && /* @__PURE__ */ a("span", { style: { position: "absolute", right: 2, bottom: 2, display: "flex", borderRadius: 999, background: "rgba(5,6,21,.7)", padding: 1 }, children: /* @__PURE__ */ a(ct, { size: 11, color: "#eef0f8", track: "rgba(255,255,255,.25)" }) })
|
|
5215
|
-
] }) : /* @__PURE__ */ a(fn, { flag: Se.flag, code: Se.code, label: Se.label, bordered: !1, size: me, onClick: Se.onClick, style: w }),
|
|
5216
|
-
} },
|
|
5214
|
+
] }) : /* @__PURE__ */ a(fn, { flag: Se.flag, code: Se.code, label: Se.label, bordered: !1, size: me, onClick: Se.onClick, style: w }), Or = { on: !1, title: "Voices", onClick: () => {
|
|
5215
|
+
} }, Cr = Ue && /* @__PURE__ */ a(ml, { ytId: Ue, title: Ge, t: ji, playing: x.playing && !tn, waiting: J.on && !!x.timed && !!x.preparing, seekN: x.seekN, onTime: (w) => {
|
|
5217
5216
|
var me, Re, Ze;
|
|
5218
5217
|
return (Ze = x.videoAt) == null ? void 0 : Ze.call(x, w - (((Re = (me = n == null ? void 0 : n.job) == null ? void 0 : me.crop) == null ? void 0 : Re.startS) ?? 0));
|
|
5219
|
-
}, onToggle: x.has ? Xt : void 0, onAd: wn, lead: Fe ? nt.lead : void 0 }),
|
|
5218
|
+
}, onToggle: x.has ? Xt : void 0, onAd: wn, lead: Fe ? nt.lead : void 0 }), xr = It && Ue && !$ ? /* @__PURE__ */ a(il, { ytId: Ue, title: Ge, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: Cr, children: /* @__PURE__ */ a(Vl, { pos: wr, transport: Ir, chip: Sn({ ...bn, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: Or, onFull: () => {
|
|
5220
5219
|
$t(!0), U(!0);
|
|
5221
|
-
}, copied: null }) }) : null, Ke = x.wordSync ?
|
|
5220
|
+
}, copied: null }) }) : null, Ke = x.wordSync ? bo(q, x.idx, x.t) ? q[x.idx] : void 0 : q[x.idx];
|
|
5222
5221
|
for (const w of q) for (const [me, Re] of Object.entries(w.translations)) Re && L.current.set(`${w.sentenceId ?? w.start}|${me}`, Re);
|
|
5223
|
-
const
|
|
5222
|
+
const Dr = (w, me) => w.translations[me] || L.current.get(`${w.sentenceId ?? w.start}|${me}`) || null, An = (w, me) => !w || !me || w.language === me || !!Dr(w, me), pt = An(Ke, oe) ? oe : An(Ke, Q.current) ? Q.current : oe;
|
|
5224
5223
|
Ke && An(Ke, pt) && (Q.current = pt);
|
|
5225
|
-
const
|
|
5224
|
+
const br = Ke && pt && Ke.language !== pt ? Dr(Ke, pt) : null, Ei = Ke && br && pt && !Ke.translations[pt] ? Object.assign([...q], { [x.idx]: { ...Ke, translations: { ...Ke.translations, [pt]: br } } }) : q, nn = Ke ? mi(Ei, x.idx, pt) : [], rn = pe ? pe === "on" : !d || J.on || !zt || zt === ee, Sr = rn ? Us(x, x.idx, nn) : null, Ar = nn.map((w, me) => ({ t: w.text, sp: me < nn.length - 1 ? " " : "", dim: Sr != null && me > Sr })), sn = re ? re === "on" : d ? !1 : lo(Z, q, Me == null ? void 0 : Me.settings), Er = { lang: oe, subtitles: xe, speakerLabels: sn, wordHighlight: rn, translateAudio: G, voices: ke ? "cloned" : "synthetic", removeBackground: se }, Yi = JSON.stringify(Er), an = z(t.onSettingsChange);
|
|
5226
5225
|
an.current = t.onSettingsChange, E(() => {
|
|
5227
5226
|
var w;
|
|
5228
|
-
(w = an.current) == null || w.call(an,
|
|
5227
|
+
(w = an.current) == null || w.call(an, Er);
|
|
5229
5228
|
}, [Yi]);
|
|
5230
|
-
const on = Ke && Ke.speaker >= 0 && sn ?
|
|
5229
|
+
const on = Ke && Ke.speaker >= 0 && sn ? Nr(Z, Ke.speaker) : null, [_i, Yr] = O(!1), [En, _r] = O(null), [Ui, Ur] = O(null), Yn = z(void 0);
|
|
5231
5230
|
E(() => () => window.clearTimeout(Yn.current), []);
|
|
5232
5231
|
const _n = z(void 0);
|
|
5233
5232
|
E(() => () => window.clearTimeout(_n.current), []);
|
|
5234
|
-
const
|
|
5233
|
+
const Rr = (w) => {
|
|
5235
5234
|
if (t.shareUrl) return t.shareUrl(w);
|
|
5236
5235
|
const me = new URL(window.location.href);
|
|
5237
5236
|
return w != null && w > 0 ? me.searchParams.set("t", String(w)) : me.searchParams.delete("t"), me.href;
|
|
5238
|
-
}, Un = z(l.startAt),
|
|
5237
|
+
}, Un = z(l.startAt), Pr = (w) => {
|
|
5239
5238
|
if (x.seekFrac && x.dur > 0) {
|
|
5240
5239
|
x.seekFrac(Math.min(1, w / x.dur));
|
|
5241
5240
|
return;
|
|
@@ -5243,30 +5242,30 @@ function gc(t) {
|
|
|
5243
5242
|
let me = 0;
|
|
5244
5243
|
for (let Re = 0; Re < q.length; Re++) q[Re].start <= w && (me = Re);
|
|
5245
5244
|
x.seekRow(me);
|
|
5246
|
-
},
|
|
5245
|
+
}, Qr = z(!1);
|
|
5247
5246
|
E(() => {
|
|
5248
5247
|
const w = Un.current;
|
|
5249
|
-
w == null ||
|
|
5248
|
+
w == null || Qr.current || !x.has || q.length === 0 || (Qr.current = !0, Pr(w));
|
|
5250
5249
|
}, [x.has, q.length]), E(() => {
|
|
5251
5250
|
const w = Un.current;
|
|
5252
|
-
w == null || !x.playing || (Un.current = null, Math.abs(x.t - w) > 2 &&
|
|
5251
|
+
w == null || !x.playing || (Un.current = null, Math.abs(x.t - w) > 2 && Pr(w));
|
|
5253
5252
|
}, [x.playing]);
|
|
5254
|
-
const Ri = () => Ni(
|
|
5255
|
-
window.clearTimeout(_n.current),
|
|
5256
|
-
}),
|
|
5257
|
-
const Ze = ar.find((Wi) => Wi.key === w), Hn = En === w,
|
|
5253
|
+
const Ri = () => Ni(Rr(null), Ge, () => {
|
|
5254
|
+
window.clearTimeout(_n.current), Yr(!0), _n.current = window.setTimeout(() => Yr(!1), 2200);
|
|
5255
|
+
}), $r = (w, me, Re) => {
|
|
5256
|
+
const Ze = ar.find((Wi) => Wi.key === w), Hn = En === w, ys = Ui === w;
|
|
5258
5257
|
return /* @__PURE__ */ f("div", { className: "srow srow--tap", role: "button", "aria-busy": Hn || void 0, style: En && !Hn ? { opacity: 0.45, pointerEvents: "none" } : void 0, onClick: () => {
|
|
5259
|
-
En || (
|
|
5260
|
-
|
|
5258
|
+
En || (_r(w), Promise.resolve().then(() => bt(w)).then(() => {
|
|
5259
|
+
Ur(w), window.clearTimeout(Yn.current), Yn.current = window.setTimeout(() => Ur(null), 1600);
|
|
5261
5260
|
}).catch(() => {
|
|
5262
|
-
}).finally(() =>
|
|
5261
|
+
}).finally(() => _r(null)));
|
|
5263
5262
|
}, children: [
|
|
5264
5263
|
Hn ? /* @__PURE__ */ a(ct, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ a(ue, { d: Ze.icon, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
|
|
5265
5264
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5266
5265
|
/* @__PURE__ */ a("div", { className: "srow__t", children: me }),
|
|
5267
5266
|
/* @__PURE__ */ a("div", { className: "srow__s", children: Re })
|
|
5268
5267
|
] }),
|
|
5269
|
-
/* @__PURE__ */ a(ue, { d:
|
|
5268
|
+
/* @__PURE__ */ a(ue, { d: ys ? K.check : K.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: ys ? "var(--brand)" : "var(--ink-62)" } })
|
|
5270
5269
|
] });
|
|
5271
5270
|
}, Pi = /* @__PURE__ */ f("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
|
|
5272
5271
|
" ",
|
|
@@ -5275,8 +5274,8 @@ function gc(t) {
|
|
|
5275
5274
|
"Back"
|
|
5276
5275
|
] })
|
|
5277
5276
|
] }), ln = /* @__PURE__ */ a(ue, { d: K.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), Qi = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[v], cn = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, Rn = d ? /* @__PURE__ */ a(Nn, { open: I, onClose: () => b(!1), title: Qi, titleNode: v === "main" ? void 0 : Pi, doneLabel: Et.done, kind: v === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ a(la, { children: v === "lang" ? /* @__PURE__ */ f("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
5278
|
-
/* @__PURE__ */ a("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children:
|
|
5279
|
-
|
|
5277
|
+
/* @__PURE__ */ a("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: vr.search }),
|
|
5278
|
+
vr.list
|
|
5280
5279
|
] }) : v === "subs" ? /* @__PURE__ */ f("div", { style: cn, children: [
|
|
5281
5280
|
/* @__PURE__ */ f("div", { className: "srow", children: [
|
|
5282
5281
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -5312,18 +5311,18 @@ function gc(t) {
|
|
|
5312
5311
|
/* @__PURE__ */ a("div", { className: "srow__t", children: "Voices" }),
|
|
5313
5312
|
/* @__PURE__ */ a("div", { className: "srow__s", children: ke ? "Each speaker in their own cloned voice" : "Synthetic voices matched to each speaker" })
|
|
5314
5313
|
] }),
|
|
5315
|
-
/* @__PURE__ */ a(
|
|
5314
|
+
/* @__PURE__ */ a(Ls, { value: ke ? "clone" : "stock", onChange: (w) => Ae(w === "clone"), size: "sm", options: [{ value: "stock", label: "Synthetic" }, { value: "clone", label: "Cloned" }] })
|
|
5316
5315
|
] }),
|
|
5317
5316
|
/* @__PURE__ */ f("div", { className: "srow", children: [
|
|
5318
5317
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5319
|
-
/* @__PURE__ */ a("div", { className: "srow__t", children:
|
|
5318
|
+
/* @__PURE__ */ a("div", { className: "srow__t", children: js }),
|
|
5320
5319
|
/* @__PURE__ */ a("div", { className: "srow__s", children: Ca(se, xn, "video", J.on ? 0 : On.untilS) })
|
|
5321
5320
|
] }),
|
|
5322
|
-
/* @__PURE__ */ a(Pt, { checked: se && dt, onChange: le, label:
|
|
5321
|
+
/* @__PURE__ */ a(Pt, { checked: se && dt, onChange: le, label: js, disabled: !dt || xn === "unavailable" && !se })
|
|
5323
5322
|
] })
|
|
5324
5323
|
] }) : v === "export" ? /* @__PURE__ */ f("div", { style: cn, children: [
|
|
5325
|
-
|
|
5326
|
-
|
|
5324
|
+
$r("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
|
|
5325
|
+
$r("pdf", "PDF", "Formatted transcript in paragraphs, with timestamps and speaker labels")
|
|
5327
5326
|
] }) : /* @__PURE__ */ a("div", { style: cn, children: [
|
|
5328
5327
|
Se.can && A.language && /* @__PURE__ */ f("div", { className: "srow srow--tap", role: "button", onClick: () => ne("lang"), children: [
|
|
5329
5328
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -5351,7 +5350,7 @@ function gc(t) {
|
|
|
5351
5350
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5352
5351
|
/* @__PURE__ */ f("div", { className: "srow__t", children: [
|
|
5353
5352
|
"Export",
|
|
5354
|
-
|
|
5353
|
+
lt ? ` in ${lt}` : ""
|
|
5355
5354
|
] }),
|
|
5356
5355
|
/* @__PURE__ */ a("div", { className: "srow__s", children: "Subtitles (SRT / VTT) or a PDF of the transcript" })
|
|
5357
5356
|
] }),
|
|
@@ -5374,41 +5373,41 @@ function gc(t) {
|
|
|
5374
5373
|
] }),
|
|
5375
5374
|
t.settingsExtra
|
|
5376
5375
|
] }) }), kt = $ && It && Ue && /* @__PURE__ */ a(
|
|
5377
|
-
|
|
5376
|
+
Wl,
|
|
5378
5377
|
{
|
|
5379
5378
|
page: (t.layout ?? "embed") === "page",
|
|
5380
|
-
picture:
|
|
5379
|
+
picture: Cr,
|
|
5381
5380
|
title: Ge,
|
|
5382
5381
|
desk: s,
|
|
5383
|
-
pos:
|
|
5382
|
+
pos: wr,
|
|
5384
5383
|
mute: { muted: x.muted, onToggle: Jt },
|
|
5385
5384
|
cc: A.subtitles ? { on: xe, onToggle: () => Qe((w) => !w) } : void 0,
|
|
5386
5385
|
noFull: !A.fullscreen,
|
|
5387
5386
|
ad: Ln,
|
|
5388
|
-
wait: Je && !In ? /* @__PURE__ */ a(
|
|
5387
|
+
wait: Je && !In ? /* @__PURE__ */ a(ec, { state: Je, line: tn ? Ar.map((w) => w.t + w.sp).join("") : null, onRetry: Si, onOriginal: Ai }) : x.edgeWait ? `Transcribing ${Math.round(_)}% — it plays on as more is written` : null,
|
|
5389
5388
|
pct: Ye ? Math.round(_) : null,
|
|
5390
|
-
sub: xe && Ke ? { who: on ?
|
|
5389
|
+
sub: xe && Ke ? { who: on ? fr(Z, Ke.speaker) : null, color: on ? on.fg ?? `var(--lane-${on.lane})` : "#fff", words: Ar, cursor: Us(x, x.idx, nn) } : null,
|
|
5391
5390
|
chip: Sn(s ? bn : { ...bn, width: 64, padding: "0 6px" }, s ? void 0 : "sm"),
|
|
5392
|
-
transport:
|
|
5391
|
+
transport: Ir,
|
|
5393
5392
|
picker: J.sheets,
|
|
5394
5393
|
sheet: d ? Rn : null,
|
|
5395
5394
|
voices: null,
|
|
5396
|
-
voicesBtn: d ? null :
|
|
5395
|
+
voicesBtn: d ? null : Or,
|
|
5397
5396
|
sheetOpen: J.sheetsOpen || I,
|
|
5398
5397
|
onShare: d && A.share ? Ri : void 0,
|
|
5399
5398
|
onSettings: d && A.settings ? () => {
|
|
5400
5399
|
J.closePicker(), b((w) => !w);
|
|
5401
5400
|
} : void 0,
|
|
5402
|
-
paused: { title: Ge, summary: kn.state === "ready" ? kn.summary ?? null : null, share: { url:
|
|
5401
|
+
paused: { title: Ge, summary: kn.state === "ready" ? kn.summary ?? null : null, share: { url: Rr, at: x.t } },
|
|
5403
5402
|
copied: _i ? /* @__PURE__ */ f("div", { className: "gfull__toast", "aria-live": "polite", children: [
|
|
5404
5403
|
/* @__PURE__ */ a(ue, { d: K.check, size: 13, sw: 2 }),
|
|
5405
5404
|
"Link copied"
|
|
5406
5405
|
] }) : qt ? /* @__PURE__ */ f("div", { className: "gfull__toast gfull__soundtip", "aria-live": "polite", children: [
|
|
5407
5406
|
/* @__PURE__ */ a(ue, { d: K.volumeOff, size: 14, sw: 1.8 }),
|
|
5408
5407
|
"Tap for sound"
|
|
5409
|
-
] }) :
|
|
5408
|
+
] }) : kr ? /* @__PURE__ */ f("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
5410
5409
|
/* @__PURE__ */ a(ct, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
5411
|
-
|
|
5410
|
+
kr
|
|
5412
5411
|
] }) : J.on && (Fe ? rt.missing != null : x.silent) ? /* @__PURE__ */ f("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
5413
5412
|
/* @__PURE__ */ a(ct, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
5414
5413
|
`${en || "Translated"} voice is still being prepared · playing with subtitles`
|
|
@@ -5424,7 +5423,7 @@ function gc(t) {
|
|
|
5424
5423
|
E(() => {
|
|
5425
5424
|
!d && $ && !It && ($t(!1), U(!1));
|
|
5426
5425
|
}, [d, $, It]);
|
|
5427
|
-
const
|
|
5426
|
+
const Br = Ye && /* @__PURE__ */ f("div", { className: `pubprog${s ? " pubprog--desk" : ""}${j ? " pubprog--find" : ""}`, children: [
|
|
5428
5427
|
/* @__PURE__ */ f("div", { className: "pubprog__row", children: [
|
|
5429
5428
|
/* @__PURE__ */ a("span", { className: "l", children: `TRANSCRIBING ${_}%` }),
|
|
5430
5429
|
!s && /* @__PURE__ */ a("div", { style: { flex: 1 } }),
|
|
@@ -5432,42 +5431,42 @@ function gc(t) {
|
|
|
5432
5431
|
/* @__PURE__ */ a("span", { className: "s", children: Rt })
|
|
5433
5432
|
] }),
|
|
5434
5433
|
!s && /* @__PURE__ */ a("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ a("div", { style: { width: `${_}%` } }) })
|
|
5435
|
-
] }), Pn = r && /* @__PURE__ */ a("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." }),
|
|
5434
|
+
] }), Pn = r && /* @__PURE__ */ a("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." }), Hr = /* @__PURE__ */ a(Al, { model: Z, rows: q, player: x, tail: st, tailFg: Gt, running: Ye, desk: s, feedRef: jt, listener: !0, showLabels: sn, find: N, findOpen: !s && j, lang: zt, warm: Be, onVisible: ki, wordHl: rn }), Qn = /* @__PURE__ */ a(Yo, { error: g ?? de ?? (jn && $ ? null : x.error) ?? J.error, onClose: () => {
|
|
5436
5435
|
M(null), W(), x.clearError(), J.clearError();
|
|
5437
|
-
} }),
|
|
5436
|
+
} }), Vr = [B ? mt(B) : null, ee ? ee.toUpperCase() : null, ie || "Read-only copy"].filter(Boolean).join(" · "), Fr = (w) => /* @__PURE__ */ a("div", { className: "ctrans", children: J.noVoice ? J.noVoiceNote : /* @__PURE__ */ f(Pe, { children: [
|
|
5438
5437
|
/* @__PURE__ */ f("div", { className: "ctrans__row", children: [
|
|
5439
5438
|
/* @__PURE__ */ a("span", { className: "ctrans__sp", "aria-hidden": "true" }),
|
|
5440
5439
|
/* @__PURE__ */ f("div", { className: "ctrans__mid", children: [
|
|
5441
5440
|
/* @__PURE__ */ a("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: x.idx <= 0 ? 0.3 : 1 }, onClick: x.prev, children: /* @__PURE__ */ a(ue, { d: K.chevronLeft, size: 16, sw: 1.8 }) }),
|
|
5442
|
-
/* @__PURE__ */ a("button", { type: "button", className: "ctrans__play", "aria-label": J.relang ? "Preparing audio" : x.playing ? "Pause" : "Play", title: J.relang ? "Preparing audio…" : J.playTitle ?? (x.playing ? "Pause" : "Play"), disabled: !wt, onClick: x.toggle, children: J.relang ? /* @__PURE__ */ a("span", { className: "ctrans__spin" }) : /* @__PURE__ */ a("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: x.playing ? void 0 : { marginLeft: 2 }, children: x.playing ?
|
|
5441
|
+
/* @__PURE__ */ a("button", { type: "button", className: "ctrans__play", "aria-label": J.relang ? "Preparing audio" : x.playing ? "Pause" : "Play", title: J.relang ? "Preparing audio…" : J.playTitle ?? (x.playing ? "Pause" : "Play"), disabled: !wt, onClick: x.toggle, children: J.relang ? /* @__PURE__ */ a("span", { className: "ctrans__spin" }) : /* @__PURE__ */ a("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: x.playing ? void 0 : { marginLeft: 2 }, children: x.playing ? yl : Tl }) }),
|
|
5443
5442
|
/* @__PURE__ */ a("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: x.idx >= q.length - 1 ? 0.3 : 1 }, onClick: x.next, children: /* @__PURE__ */ a(ue, { d: K.chevronRight, size: 16, sw: 1.8 }) })
|
|
5444
5443
|
] }),
|
|
5445
|
-
/* @__PURE__ */ a("span", { className: "ctrans__mute", children:
|
|
5444
|
+
/* @__PURE__ */ a("span", { className: "ctrans__mute", children: H(36) })
|
|
5446
5445
|
] }),
|
|
5447
5446
|
/* @__PURE__ */ a("div", { className: "ctrans__scrub", children: Ii(w) })
|
|
5448
|
-
] }) }), $i =
|
|
5447
|
+
] }) }), $i = ll("ga", { tabs: Yt, cur: p, pref: (ms = Yt[0]) == null ? void 0 : ms.key, onPick: y }), Wr = Math.max(0, Math.min(100, Math.round(_))), Bi = Y && /* @__PURE__ */ f("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
|
|
5449
5448
|
Ue && /* @__PURE__ */ a("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Ue}/hqdefault.jpg)` } }),
|
|
5450
5449
|
/* @__PURE__ */ a("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ f(Pe, { children: [
|
|
5451
5450
|
Ge && /* @__PURE__ */ a("div", { className: "gfull__holdt", children: Ge }),
|
|
5452
|
-
/* @__PURE__ */ a("div", { className: "gfull__holdpct", children:
|
|
5453
|
-
/* @__PURE__ */ a("div", { className: "gfull__holdbar", children: /* @__PURE__ */ a("div", { style: { width: `${
|
|
5451
|
+
/* @__PURE__ */ a("div", { className: "gfull__holdpct", children: Ie === "transcribing" ? `${Wr}%` : /* @__PURE__ */ a("span", { className: "gfull__spin gfull__holdspin" }) }),
|
|
5452
|
+
/* @__PURE__ */ a("div", { className: "gfull__holdbar", children: /* @__PURE__ */ a("div", { style: { width: `${Ie === "transcribing" ? Wr : 0}%` } }) }),
|
|
5454
5453
|
/* @__PURE__ */ f("div", { className: "gfull__holds", children: [
|
|
5455
|
-
|
|
5456
|
-
|
|
5454
|
+
Ie === "transcribing" ? "Transcribing" : Ie === "cropping" ? "Preparing the video" : "Waiting to start",
|
|
5455
|
+
Ie === "transcribing" && (ye != null && ye.segmentsDone) ? ` · ${Rt.toLowerCase()}` : ""
|
|
5457
5456
|
] }),
|
|
5458
5457
|
/* @__PURE__ */ a("div", { className: "gfull__holdn", children: "The video starts as soon as the first lines are transcribed." })
|
|
5459
5458
|
] }) : /* @__PURE__ */ a("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) })
|
|
5460
|
-
] }),
|
|
5459
|
+
] }), Gr = d && n && (Ye || Ie === "cropping") ? Math.max(0, Math.min(100, Math.round(_))) : null, un = z(t.onProgress);
|
|
5461
5460
|
un.current = t.onProgress, E(() => {
|
|
5462
5461
|
var w;
|
|
5463
|
-
(w = un.current) == null || w.call(un,
|
|
5464
|
-
}, [
|
|
5462
|
+
(w = un.current) == null || w.call(un, Gr);
|
|
5463
|
+
}, [Gr]);
|
|
5465
5464
|
const [Hi, $n] = O(!1), Bn = !!kt && !Y && (Fe ? !!x.ended : !x.playing && x.dur > 0 && x.t >= x.dur - 0.5);
|
|
5466
5465
|
E(() => {
|
|
5467
5466
|
Bn || $n(!1);
|
|
5468
5467
|
}, [Bn]);
|
|
5469
|
-
const Vi = t.endCard !== !1 && Bn && !Hi && /* @__PURE__ */ a(
|
|
5470
|
-
$n(!0),
|
|
5468
|
+
const Vi = t.endCard !== !1 && Bn && !Hi && /* @__PURE__ */ a(oc, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => $n(!0), onReplay: () => {
|
|
5469
|
+
$n(!0), ot.current = !0, x.seekFrac ? x.seekFrac(0) : x.seekRow(0), x.playing || x.toggle();
|
|
5471
5470
|
} });
|
|
5472
5471
|
if (d) return /* @__PURE__ */ f(Pe, { children: [
|
|
5473
5472
|
r ? /* @__PURE__ */ a("div", { className: "gfull", "data-theme": "dark", children: Pn }) : Bi || kt || /* @__PURE__ */ a("div", { className: "gfull", "data-theme": "dark" }),
|
|
@@ -5475,14 +5474,14 @@ function gc(t) {
|
|
|
5475
5474
|
Qn
|
|
5476
5475
|
] });
|
|
5477
5476
|
if (s) {
|
|
5478
|
-
const w = vn && !It && !r && /* @__PURE__ */ a("div", { className: "pubdeskctl", children:
|
|
5477
|
+
const w = vn && !It && !r && /* @__PURE__ */ a("div", { className: "pubdeskctl", children: Fr(!0) }), me = !r && (Yt.length > 0 || It || !!J.sidePanel || !!w);
|
|
5479
5478
|
return /* @__PURE__ */ f(Pe, { children: [
|
|
5480
5479
|
/* @__PURE__ */ a("div", { className: "dhead dhead--listener dhead--cols", children: /* @__PURE__ */ f("div", { className: "gcolhead", children: [
|
|
5481
5480
|
/* @__PURE__ */ a("div", { className: "gcolhead__main", children: /* @__PURE__ */ f("div", { className: "gcolhead__col", children: [
|
|
5482
5481
|
/* @__PURE__ */ a("div", { style: { flex: "none" }, children: /* @__PURE__ */ a(Vt, { dark: i, height: 20.38 }) }),
|
|
5483
5482
|
!r && /* @__PURE__ */ f("div", { className: "dhead__session", children: [
|
|
5484
5483
|
/* @__PURE__ */ a("span", { className: "t", children: n ? Ge : "" }),
|
|
5485
|
-
/* @__PURE__ */ a("span", { className: "s", children: n ?
|
|
5484
|
+
/* @__PURE__ */ a("span", { className: "s", children: n ? Vr : "" })
|
|
5486
5485
|
] })
|
|
5487
5486
|
] }) }),
|
|
5488
5487
|
me && /* @__PURE__ */ a("div", { className: "gcolhead__side" })
|
|
@@ -5491,18 +5490,18 @@ function gc(t) {
|
|
|
5491
5490
|
/* @__PURE__ */ f("div", { className: "listenerlive__main", children: [
|
|
5492
5491
|
Pn,
|
|
5493
5492
|
!r && Wt,
|
|
5494
|
-
|
|
5493
|
+
Br,
|
|
5495
5494
|
C && /* @__PURE__ */ a("div", { className: "pubflash", children: C }),
|
|
5496
|
-
!r && /* @__PURE__ */ a("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children:
|
|
5495
|
+
!r && /* @__PURE__ */ a("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children: Hr }),
|
|
5497
5496
|
!r && /* @__PURE__ */ f("div", { className: "listenerlive__inner gdeskbar", "data-transport": "1", children: [
|
|
5498
5497
|
Se.can && /* @__PURE__ */ a("span", { className: "barchip", style: Se.active ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)", borderRadius: 12 } : void 0, children: /* @__PURE__ */ a(fn, { flag: Se.flag, code: Se.code, label: Se.label, bordered: !1, onClick: Se.onClick }) }),
|
|
5499
|
-
|
|
5498
|
+
Tr
|
|
5500
5499
|
] })
|
|
5501
5500
|
] }),
|
|
5502
|
-
me && /* @__PURE__ */ f(
|
|
5501
|
+
me && /* @__PURE__ */ f(dl, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
|
|
5503
5502
|
!J.sidePanel && w,
|
|
5504
|
-
!J.sidePanel &&
|
|
5505
|
-
!J.sidePanel && Yt.length > 0 && /* @__PURE__ */ a("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ a(
|
|
5503
|
+
!J.sidePanel && xr,
|
|
5504
|
+
!J.sidePanel && Yt.length > 0 && /* @__PURE__ */ a("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ a(cl, { col: $i, order: ["summary", "export"], onPick: y, grip: { summary: 40, export: 28 }, render: (Re) => /* @__PURE__ */ a(Ts, { panel: !0, children: Lr(Re) }) }) }),
|
|
5506
5505
|
J.sidePanel
|
|
5507
5506
|
] })
|
|
5508
5507
|
] }),
|
|
@@ -5512,26 +5511,26 @@ function gc(t) {
|
|
|
5512
5511
|
Qn
|
|
5513
5512
|
] });
|
|
5514
5513
|
}
|
|
5515
|
-
const Fi = Yt.length > 0 && !j && /* @__PURE__ */ a("div", { className: "txwidget", children: /* @__PURE__ */ f(
|
|
5514
|
+
const Fi = Yt.length > 0 && !j && /* @__PURE__ */ a("div", { className: "txwidget", children: /* @__PURE__ */ f(Ts, { panel: !0, children: [
|
|
5516
5515
|
/* @__PURE__ */ a(fi, { tabs: Yt, current: p, onPick: y, gap: p !== "none" }),
|
|
5517
|
-
p !== "none" &&
|
|
5516
|
+
p !== "none" && Lr(p)
|
|
5518
5517
|
] }) });
|
|
5519
5518
|
return /* @__PURE__ */ f(Pe, { children: [
|
|
5520
|
-
/* @__PURE__ */ a(
|
|
5519
|
+
/* @__PURE__ */ a(Gl, { dark: i, title: n ? Ge : "", subline: n ? Vr : "", onOptions: () => b(!0), optionsActive: I }),
|
|
5521
5520
|
Pn,
|
|
5522
|
-
|
|
5521
|
+
Br,
|
|
5523
5522
|
!r && Fi,
|
|
5524
|
-
!r &&
|
|
5523
|
+
!r && xr,
|
|
5525
5524
|
!r && /* @__PURE__ */ f("div", { style: { position: "relative", flex: 1, minHeight: 0, display: "flex", flexDirection: "column" }, children: [
|
|
5526
5525
|
Wt,
|
|
5527
|
-
|
|
5526
|
+
Hr,
|
|
5528
5527
|
C && /* @__PURE__ */ a("div", { className: "txflash", children: C })
|
|
5529
5528
|
] }),
|
|
5530
5529
|
!r && /* @__PURE__ */ f("div", { className: "gbottom", "data-transport": "1", children: [
|
|
5531
|
-
vn && !It && /* @__PURE__ */ a("div", { className: "pubctl", children:
|
|
5530
|
+
vn && !It && /* @__PURE__ */ a("div", { className: "pubctl", children: Fr(!1) }),
|
|
5532
5531
|
/* @__PURE__ */ f("div", { className: "gbottom__bar", children: [
|
|
5533
5532
|
Se.can && /* @__PURE__ */ a("div", { style: { flex: "none" }, children: Sn({ width: 87 }, void 0) }),
|
|
5534
|
-
/* @__PURE__ */ a("div", { style: { flex: 1, minWidth: 0 }, children:
|
|
5533
|
+
/* @__PURE__ */ a("div", { style: { flex: 1, minWidth: 0 }, children: Tr })
|
|
5535
5534
|
] })
|
|
5536
5535
|
] }),
|
|
5537
5536
|
!kt && J.sheets,
|
|
@@ -5541,27 +5540,27 @@ function gc(t) {
|
|
|
5541
5540
|
] });
|
|
5542
5541
|
}
|
|
5543
5542
|
export {
|
|
5544
|
-
|
|
5545
|
-
|
|
5546
|
-
|
|
5547
|
-
|
|
5548
|
-
|
|
5549
|
-
|
|
5550
|
-
|
|
5551
|
-
|
|
5552
|
-
|
|
5553
|
-
|
|
5554
|
-
|
|
5543
|
+
tl as ExportPanel,
|
|
5544
|
+
Wl as FullVideo,
|
|
5545
|
+
Vl as MiniPlayer,
|
|
5546
|
+
Ll as MuteButton,
|
|
5547
|
+
xl as NO_SEEK,
|
|
5548
|
+
yl as PAUSE_D,
|
|
5549
|
+
Tl as PLAY_D,
|
|
5550
|
+
bl as PUB_SIDE,
|
|
5551
|
+
kc as PanelSeek,
|
|
5552
|
+
uo as PlayerApiProvider,
|
|
5553
|
+
js as REMOVE_BG_LABEL,
|
|
5555
5554
|
Ia as REMOVE_BG_NOTE,
|
|
5556
|
-
|
|
5557
|
-
|
|
5558
|
-
|
|
5559
|
-
|
|
5560
|
-
|
|
5561
|
-
|
|
5562
|
-
|
|
5563
|
-
|
|
5564
|
-
|
|
5555
|
+
_o as ReplayScrub,
|
|
5556
|
+
Vo as SpeakerCast,
|
|
5557
|
+
sl as SummaryPanel,
|
|
5558
|
+
wc as Transport,
|
|
5559
|
+
El as TxFind,
|
|
5560
|
+
Al as TxLines,
|
|
5561
|
+
vc as VocalStackPlayer,
|
|
5562
|
+
Fo as VoiceSheetBody,
|
|
5563
|
+
ml as YtFollow,
|
|
5565
5564
|
Ca as bedNote,
|
|
5566
5565
|
$t as browserFull,
|
|
5567
5566
|
Ot as lineEnd,
|
|
@@ -5569,25 +5568,25 @@ export {
|
|
|
5569
5568
|
Jn as pictureT,
|
|
5570
5569
|
gn as placePosition,
|
|
5571
5570
|
hn as realFull,
|
|
5572
|
-
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
|
|
5571
|
+
Lc as setErrorReporter,
|
|
5572
|
+
Ps as setFullTarget,
|
|
5573
|
+
pl as snapPosition,
|
|
5574
|
+
Us as spokenWordOf,
|
|
5576
5575
|
xa as trackPlan,
|
|
5577
5576
|
ci as useApi,
|
|
5578
|
-
|
|
5577
|
+
Ko as useArchiveVoice,
|
|
5579
5578
|
Ra as useBackgroundBed,
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5579
|
+
zl as useDuck,
|
|
5580
|
+
Yl as useFindPull,
|
|
5581
|
+
wl as useFlash,
|
|
5583
5582
|
Ct as usePlayerApi,
|
|
5584
|
-
|
|
5585
|
-
|
|
5586
|
-
|
|
5587
|
-
|
|
5588
|
-
|
|
5589
|
-
|
|
5590
|
-
|
|
5591
|
-
|
|
5583
|
+
si as useSeparatedTrack,
|
|
5584
|
+
nl as useSummaryIn,
|
|
5585
|
+
ko as useTranscript,
|
|
5586
|
+
Ol as useTxPlayer,
|
|
5587
|
+
Sl as useTxVoice,
|
|
5588
|
+
Qo as useViewportTranslation,
|
|
5589
|
+
Zo as useVoiceCatalogue,
|
|
5590
|
+
Il as useYtLead
|
|
5592
5591
|
};
|
|
5593
5592
|
//# sourceMappingURL=index.js.map
|