@vocalstack/player 0.1.0-alpha.3 → 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 +433 -427
- 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,7 +961,7 @@ 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));
|
|
@@ -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,15 +1196,22 @@ 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
|
|
1214
|
+
function Va(t) {
|
|
1208
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]);
|
|
@@ -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,34 +1716,34 @@ 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
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 = ze(() => c ?? new
|
|
1746
|
+
}, []), c = t.client ?? null, u = ze(() => c ?? new Vs({ baseUrl: s, token: o && !e ? l : void 0 }), [c, s, o, l, e]);
|
|
1741
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 } };
|
|
@@ -1745,10 +1751,10 @@ function ci(t) {
|
|
|
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(() => {
|
|
@@ -1875,7 +1881,7 @@ function wo(t, e) {
|
|
|
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);
|
|
@@ -1910,7 +1916,7 @@ function wo(t, e) {
|
|
|
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,7 +2243,7 @@ function Ro({ onOpen: t, alone: e }) {
|
|
|
2237
2243
|
n && "FIX"
|
|
2238
2244
|
] });
|
|
2239
2245
|
}
|
|
2240
|
-
function
|
|
2246
|
+
function Qo(t, e, n, r) {
|
|
2241
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();
|
|
@@ -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,7 +2324,7 @@ 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
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);
|
|
@@ -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 = ze(() =>
|
|
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,10 +2483,10 @@ 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(() => []);
|
|
@@ -2488,14 +2494,14 @@ function qo({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
2488
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 = ze(() =>
|
|
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
2503
|
V ? oe.voiceBySpeaker = V : $ && (oe.voice = $);
|
|
2498
|
-
const re = await
|
|
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;
|
|
@@ -2513,8 +2519,8 @@ function qo({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
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 V =
|
|
2517
|
-
V && V.size ? ae.voiceBySpeaker = Object.fromEntries([...V].map(([oe, re]) => [String(oe), re])) : g && (ae.voice = g),
|
|
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;
|
|
@@ -2536,7 +2542,7 @@ function qo({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
2536
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) {
|
|
@@ -3168,7 +3174,7 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
|
|
|
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;
|
|
@@ -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;
|
|
@@ -3540,7 +3546,7 @@ 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);
|
|
@@ -3561,7 +3567,7 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
|
|
|
3561
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
3573
|
const ee = V.current, ie = ee.find((Le) => Le.sentenceId === _), Te = ee.find((Le) => Le.sentenceId === B);
|
|
@@ -3654,7 +3660,7 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
|
|
|
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
3665
|
const Ie = {
|
|
3660
3666
|
playing: d || ce,
|
|
@@ -3789,22 +3795,22 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
|
|
|
3789
3795
|
(B = Ie.seekFrac) == null || B.call(Ie, _.t / F), _.playing && ge(fe.current);
|
|
3790
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, 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 =
|
|
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
3804
|
le.current !== ke && (le.current = ke, se((H) => H + 1));
|
|
3799
3805
|
}, [ke]);
|
|
3800
|
-
const m =
|
|
3801
|
-
const H =
|
|
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);
|
|
3802
3808
|
for (const [Oe, Be] of Object.entries(fe[G ?? ""] ?? {})) H.set(Number(Oe), Be);
|
|
3803
3809
|
return H;
|
|
3804
|
-
}, [q, A, fe, G, ke]), be = je && Object.keys(fe[G ?? ""] ?? {}).length > 0, He = ze(() => y && !be ?
|
|
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(
|
|
3805
3811
|
() => n.filter((H) => !H.suppressed && !H.unclear).map((H) => H.sentenceId).filter((H) => H != null),
|
|
3806
3812
|
[n]
|
|
3807
|
-
), ie =
|
|
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) => {
|
|
3808
3814
|
var Oe;
|
|
3809
3815
|
return H.id === ((Oe = ie.track) == null ? void 0 : Oe.voice);
|
|
3810
3816
|
}) ?? A.find((H) => H.default) ?? A[0] ?? null, _e = (Te == null ? void 0 : Te.id) ?? null;
|
|
@@ -3813,7 +3819,7 @@ function bl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, lan
|
|
|
3813
3819
|
const H = setInterval(ie.reload, 4e3);
|
|
3814
3820
|
return () => clearInterval(H);
|
|
3815
3821
|
}, [ie.rendering, ie.reload]);
|
|
3816
|
-
const Ee = `${t ?? ""}|${pe ?? ""}|${Ie ?? ne ?? ((Kt = ie.track) == null ? void 0 : Kt.voiceKey) ?? "default"}`, Le =
|
|
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
3824
|
var Oe;
|
|
3819
3825
|
const H = (Oe = n[Le.idx]) == null ? void 0 : Oe.sentenceId;
|
|
@@ -3864,7 +3870,7 @@ function bl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, lan
|
|
|
3864
3870
|
return;
|
|
3865
3871
|
}
|
|
3866
3872
|
$(H);
|
|
3867
|
-
}, rt = Ce ? { ...
|
|
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(() => {
|
|
3868
3874
|
const H = A.filter((Be) => !Be.cloned);
|
|
3869
3875
|
if (!je) return [...H, ...s && Mt.length === 1 ? at.filter((Be) => Be.id === `clone:${Mt[0].voiceId}`) : []];
|
|
3870
3876
|
const Oe = [];
|
|
@@ -3881,11 +3887,11 @@ function bl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, lan
|
|
|
3881
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 } }),
|
|
3882
3888
|
!!St && /* @__PURE__ */ a("span", { className: "txvoice__n", title: `${St} speaker${St === 1 ? "" : "s"} can get a cloned voice`, children: St })
|
|
3883
3889
|
] }), ot = /* @__PURE__ */ a(Nn, { open: P, onClose: ut, title: de.vcSheet, titleNode: b, doneLabel: de.done, children: /* @__PURE__ */ a(
|
|
3884
|
-
|
|
3890
|
+
Fo,
|
|
3885
3891
|
{
|
|
3886
3892
|
t: de,
|
|
3887
3893
|
cast: je && /* @__PURE__ */ a(
|
|
3888
|
-
|
|
3894
|
+
Vo,
|
|
3889
3895
|
{
|
|
3890
3896
|
t: de,
|
|
3891
3897
|
roster: q,
|
|
@@ -3976,11 +3982,11 @@ function bl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, lan
|
|
|
3976
3982
|
langList: { value: Ce ? null : pe, onSelect: Fe, languages: W, searchPlaceholder: de.search, none: "Original", pinned: (Ce ? l : pe) ? [Ce ? l : pe] : [], recent: v }
|
|
3977
3983
|
};
|
|
3978
3984
|
}
|
|
3979
|
-
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 }) {
|
|
3980
3986
|
const { playing: I, engaged: b, t: Q, idx: L, seekN: v, wordSync: S, clipPos: ne } = n;
|
|
3981
|
-
|
|
3987
|
+
al(!0, T);
|
|
3982
3988
|
const $ = z(null);
|
|
3983
|
-
|
|
3989
|
+
Ao(T, $);
|
|
3984
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) => {
|
|
3985
3991
|
var le;
|
|
3986
3992
|
return ((le = T.current) == null ? void 0 : le.querySelector(`[data-tx-row="${se}"]`)) ?? null;
|
|
@@ -4058,13 +4064,13 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
|
|
|
4058
4064
|
"Now playing"
|
|
4059
4065
|
] }) });
|
|
4060
4066
|
return /* @__PURE__ */ f("div", { ref: T, "data-tx-feed": "1", className: `txfeed${j ? " txfeed--desk" : ""}${D && !y ? " is-find" : ""}`, children: [
|
|
4061
|
-
/* @__PURE__ */ a(
|
|
4067
|
+
/* @__PURE__ */ a(Eo, { thumbRef: $ }),
|
|
4062
4068
|
I && V === -1 && Ae("up"),
|
|
4063
4069
|
e.map((se, le) => {
|
|
4064
4070
|
var ye;
|
|
4065
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 ? () => {
|
|
4066
4072
|
I && !m && n.seekRow(le), l(se);
|
|
4067
|
-
} : 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;
|
|
4068
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: [
|
|
4069
4075
|
/* @__PURE__ */ f("div", { className: "txline__meta", children: [
|
|
4070
4076
|
/* @__PURE__ */ a("span", { className: "txline__at", children: mt(se.start) }),
|
|
@@ -4074,11 +4080,11 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
|
|
|
4074
4080
|
fe.hasVoice && /* @__PURE__ */ a(hi, { color: fe.fg ?? `var(--lane-${ge})` })
|
|
4075
4081
|
] }),
|
|
4076
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)" }) }),
|
|
4077
|
-
W && g && /* @__PURE__ */ a(
|
|
4078
|
-
F && /* @__PURE__ */ a(
|
|
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) })
|
|
4079
4085
|
] }),
|
|
4080
4086
|
/* @__PURE__ */ a("div", { className: "txline__text", children: je.map((be, He) => {
|
|
4081
|
-
const Ie = `${be.seq}:${be.idx}`, Ye =
|
|
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)";
|
|
4082
4088
|
return /* @__PURE__ */ f("span", { children: [
|
|
4083
4089
|
/* @__PURE__ */ a(
|
|
4084
4090
|
"span",
|
|
@@ -4114,7 +4120,7 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
|
|
|
4114
4120
|
I && V === 1 && Ae("down")
|
|
4115
4121
|
] });
|
|
4116
4122
|
}
|
|
4117
|
-
function
|
|
4123
|
+
function El({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: i, inline: o, flash: l }) {
|
|
4118
4124
|
return /* @__PURE__ */ a("div", { className: o ? "searchbar searchbar--inline" : `searchbar searchbar--float${i ? " searchbar--desk" : ""}${t ? "" : " is-hidden"}`, children: /* @__PURE__ */ f("div", { children: [
|
|
4119
4125
|
/* @__PURE__ */ a(ue, { d: K.search, size: 16, sw: 1.7, style: { color: "var(--ink-45)", flex: "none" } }),
|
|
4120
4126
|
/* @__PURE__ */ a("input", { value: e, onChange: (c) => n(c.target.value), onKeyDown: (c) => {
|
|
@@ -4128,7 +4134,7 @@ function Al({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: i, inline: o, fl
|
|
|
4128
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 }) })
|
|
4129
4135
|
] }) });
|
|
4130
4136
|
}
|
|
4131
|
-
function
|
|
4137
|
+
function Yl(t, e, n, r, s) {
|
|
4132
4138
|
const i = z(n);
|
|
4133
4139
|
i.current = n;
|
|
4134
4140
|
const o = z(r);
|
|
@@ -4166,14 +4172,14 @@ function yi(t) {
|
|
|
4166
4172
|
}
|
|
4167
4173
|
return e;
|
|
4168
4174
|
}
|
|
4169
|
-
const
|
|
4175
|
+
const Rs = (t) => Math.floor(yi(t) / 8) - Ht.perBlock[t] * Ht.blocks[t];
|
|
4170
4176
|
function cr(t, e) {
|
|
4171
4177
|
let n = 0;
|
|
4172
4178
|
for (let r = 7; r >= 0; r--)
|
|
4173
4179
|
n = n << 1 ^ (n >>> 7) * 285, n ^= (e >>> r & 1) * t;
|
|
4174
4180
|
return n;
|
|
4175
4181
|
}
|
|
4176
|
-
function
|
|
4182
|
+
function _l(t) {
|
|
4177
4183
|
const e = new Array(t).fill(0);
|
|
4178
4184
|
e[t - 1] = 1;
|
|
4179
4185
|
let n = 1;
|
|
@@ -4183,7 +4189,7 @@ function Yl(t) {
|
|
|
4183
4189
|
}
|
|
4184
4190
|
return e;
|
|
4185
4191
|
}
|
|
4186
|
-
function
|
|
4192
|
+
function Ul(t, e) {
|
|
4187
4193
|
const n = new Array(e.length).fill(0);
|
|
4188
4194
|
for (const r of t) {
|
|
4189
4195
|
const s = r ^ n.shift();
|
|
@@ -4193,19 +4199,19 @@ function _l(t, e) {
|
|
|
4193
4199
|
}
|
|
4194
4200
|
return n;
|
|
4195
4201
|
}
|
|
4196
|
-
function
|
|
4202
|
+
function Rl(t) {
|
|
4197
4203
|
if (t === 1) return [];
|
|
4198
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];
|
|
4199
4205
|
for (let i = n - 7; s.length < e; i -= r) s.splice(1, 0, i);
|
|
4200
4206
|
return s;
|
|
4201
4207
|
}
|
|
4202
|
-
function
|
|
4208
|
+
function Pl(t) {
|
|
4203
4209
|
const e = Array.from(new TextEncoder().encode(t));
|
|
4204
4210
|
let n = 1;
|
|
4205
|
-
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++)
|
|
4206
4212
|
;
|
|
4207
4213
|
if (n > 40) throw new Error("Text too long for a QR code");
|
|
4208
|
-
const r = n * 4 + 17, s =
|
|
4214
|
+
const r = n * 4 + 17, s = Rs(n) * 8, i = [], o = (L, v) => {
|
|
4209
4215
|
for (let S = v - 1; S >= 0; S--) i.push(L >>> S & 1);
|
|
4210
4216
|
};
|
|
4211
4217
|
o(4, 4), o(e.length, n <= 9 ? 8 : 16);
|
|
@@ -4214,11 +4220,11 @@ function Rl(t) {
|
|
|
4214
4220
|
for (let L = 236; i.length < s; L ^= 253) o(L, 8);
|
|
4215
4221
|
const l = [];
|
|
4216
4222
|
for (let L = 0; L < i.length; L += 8) l.push(i.slice(L, L + 8).reduce((v, S) => v << 1 | S, 0));
|
|
4217
|
-
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);
|
|
4218
4224
|
for (let L = 0, v = 0; L < c; L++) {
|
|
4219
4225
|
const S = l.slice(v, v + M - u + (L < g ? 0 : 1));
|
|
4220
4226
|
v += S.length;
|
|
4221
|
-
const ne =
|
|
4227
|
+
const ne = Ul(S, y);
|
|
4222
4228
|
L < g && S.push(0), p.push(S.concat(ne));
|
|
4223
4229
|
}
|
|
4224
4230
|
const j = [];
|
|
@@ -4237,7 +4243,7 @@ function Rl(t) {
|
|
|
4237
4243
|
}
|
|
4238
4244
|
};
|
|
4239
4245
|
C(3, 3), C(r - 4, 3), C(3, r - 4);
|
|
4240
|
-
const D =
|
|
4246
|
+
const D = Rl(n);
|
|
4241
4247
|
for (let L = 0; L < D.length; L++) for (let v = 0; v < D.length; v++)
|
|
4242
4248
|
if (!(L === 0 && v === 0 || L === 0 && v === D.length - 1 || L === D.length - 1 && v === 0))
|
|
4243
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);
|
|
@@ -4324,30 +4330,30 @@ function Rl(t) {
|
|
|
4324
4330
|
}
|
|
4325
4331
|
return X(b), k(b), T;
|
|
4326
4332
|
}
|
|
4327
|
-
function
|
|
4328
|
-
const e =
|
|
4333
|
+
function Ql(t) {
|
|
4334
|
+
const e = Pl(t), n = e.length, r = 2;
|
|
4329
4335
|
let s = "";
|
|
4330
4336
|
for (let o = 0; o < n; o++) for (let l = 0; l < n; l++) e[o][l] && (s += `M${l} ${o}h1v1h-1z`);
|
|
4331
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>`;
|
|
4332
4338
|
return `data:image/svg+xml,${encodeURIComponent(i)}`;
|
|
4333
4339
|
}
|
|
4334
|
-
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";
|
|
4335
4341
|
function Xn() {
|
|
4336
4342
|
const t = document;
|
|
4337
4343
|
return t.fullscreenElement ?? t.webkitFullscreenElement ?? null;
|
|
4338
4344
|
}
|
|
4339
|
-
let
|
|
4340
|
-
function
|
|
4341
|
-
|
|
4345
|
+
let yr = null;
|
|
4346
|
+
function Ps(t) {
|
|
4347
|
+
yr = t;
|
|
4342
4348
|
}
|
|
4343
|
-
function
|
|
4349
|
+
function Qs() {
|
|
4344
4350
|
const t = document;
|
|
4345
4351
|
return !!(t.fullscreenEnabled || t.webkitFullscreenEnabled);
|
|
4346
4352
|
}
|
|
4347
|
-
function
|
|
4353
|
+
function Bl() {
|
|
4348
4354
|
var e;
|
|
4349
4355
|
if (typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches)) return !1;
|
|
4350
|
-
const t =
|
|
4356
|
+
const t = yr ?? document.documentElement;
|
|
4351
4357
|
return !t.requestFullscreen && !t.webkitRequestFullscreen;
|
|
4352
4358
|
}
|
|
4353
4359
|
function $t(t) {
|
|
@@ -4357,7 +4363,7 @@ function $t(t) {
|
|
|
4357
4363
|
function hn(t) {
|
|
4358
4364
|
var s, i, o, l;
|
|
4359
4365
|
if (typeof document > "u") return;
|
|
4360
|
-
const e = document, n =
|
|
4366
|
+
const e = document, n = yr ?? document.documentElement, r = e.fullscreenElement ?? e.webkitFullscreenElement;
|
|
4361
4367
|
try {
|
|
4362
4368
|
t && !r && ((i = (s = n.requestFullscreen ?? n.webkitRequestFullscreen) == null ? void 0 : s.call(n, { navigationUI: "hide" })) == null || i.catch(() => {
|
|
4363
4369
|
})), !t && r && ((l = (o = e.exitFullscreen ?? e.webkitExitFullscreen) == null ? void 0 : o.call(e)) == null || l.catch(() => {
|
|
@@ -4365,7 +4371,7 @@ function hn(t) {
|
|
|
4365
4371
|
} catch {
|
|
4366
4372
|
}
|
|
4367
4373
|
}
|
|
4368
|
-
function
|
|
4374
|
+
function Hl(t) {
|
|
4369
4375
|
const [e, n] = O(() => {
|
|
4370
4376
|
var r;
|
|
4371
4377
|
return typeof window < "u" && !!((r = window.matchMedia) != null && r.call(window, t).matches);
|
|
@@ -4417,7 +4423,7 @@ function ur({ pos: t, interactive: e, axis: n = "x" }) {
|
|
|
4417
4423
|
/* @__PURE__ */ a("span", { className: "gfull__t gfull__end", style: { color: t.live ? "#ec634d" : "rgba(234,236,250,.6)" }, children: t.endLabel })
|
|
4418
4424
|
] });
|
|
4419
4425
|
}
|
|
4420
|
-
function
|
|
4426
|
+
function kc({ pos: t }) {
|
|
4421
4427
|
const [e, n] = O(null), r = (l) => {
|
|
4422
4428
|
const c = l.currentTarget.getBoundingClientRect();
|
|
4423
4429
|
return Math.min(1, Math.max(0, (l.clientX - c.left) / Math.max(1, c.width)));
|
|
@@ -4471,7 +4477,7 @@ function dr({ t, mini: e }) {
|
|
|
4471
4477
|
disabled: !t.playable,
|
|
4472
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" },
|
|
4473
4479
|
onClick: t.onPlay,
|
|
4474
|
-
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 })
|
|
4475
4481
|
}
|
|
4476
4482
|
),
|
|
4477
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 }) })
|
|
@@ -4479,7 +4485,7 @@ function dr({ t, mini: e }) {
|
|
|
4479
4485
|
}
|
|
4480
4486
|
function Mr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
4481
4487
|
return /* @__PURE__ */ f("div", { className: `gfull__brand${s ? " gfull__brand--mark" : ""}`, children: [
|
|
4482
|
-
/* @__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 }) }),
|
|
4483
4489
|
t && /* @__PURE__ */ f("span", { className: "gfull__live", children: [
|
|
4484
4490
|
/* @__PURE__ */ a("i", {}),
|
|
4485
4491
|
"LIVE"
|
|
@@ -4490,7 +4496,7 @@ function Mr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
|
4490
4496
|
function Li({ v: t, size: e }) {
|
|
4491
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 }) });
|
|
4492
4498
|
}
|
|
4493
|
-
function
|
|
4499
|
+
function Vl({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: i, copied: o }) {
|
|
4494
4500
|
return /* @__PURE__ */ f("div", { className: "gmini", "data-theme": "dark", children: [
|
|
4495
4501
|
/* @__PURE__ */ a("div", { className: "gmini__shade", "aria-hidden": "true" }),
|
|
4496
4502
|
/* @__PURE__ */ a("div", { className: "gmini__top", children: /* @__PURE__ */ a(Mr, { live: t.live, mini: !0 }) }),
|
|
@@ -4510,8 +4516,8 @@ function Hl({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: i, c
|
|
|
4510
4516
|
o
|
|
4511
4517
|
] });
|
|
4512
4518
|
}
|
|
4513
|
-
const
|
|
4514
|
-
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 }) {
|
|
4515
4521
|
const [I, b] = O(() => !!Xn());
|
|
4516
4522
|
E(() => {
|
|
4517
4523
|
const F = () => b(!!Xn());
|
|
@@ -4537,7 +4543,7 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4537
4543
|
}), fe && ge && (fe.content = ge);
|
|
4538
4544
|
};
|
|
4539
4545
|
}, []);
|
|
4540
|
-
const Me = ze(() => e &&
|
|
4546
|
+
const Me = ze(() => e && Bl(), [e]), [P, V] = O(Me);
|
|
4541
4547
|
E(() => {
|
|
4542
4548
|
if (!e) return;
|
|
4543
4549
|
const F = [document.documentElement, document.body], ve = F.map((q) => [q.style.overflow, q.style.overscrollBehavior]);
|
|
@@ -4560,7 +4566,7 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4560
4566
|
ae.current = h, E(() => {
|
|
4561
4567
|
const F = (ge) => ge instanceof HTMLElement && (ge.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(ge.tagName)), ve = (ge) => {
|
|
4562
4568
|
var q;
|
|
4563
|
-
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) &&
|
|
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()));
|
|
4564
4570
|
}, fe = (ge) => {
|
|
4565
4571
|
ge.key === " " && !ae.current && !F(ge.target) && ge.preventDefault();
|
|
4566
4572
|
};
|
|
@@ -4568,7 +4574,7 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4568
4574
|
window.removeEventListener("keydown", ve, !0), window.removeEventListener("keyup", fe, !0);
|
|
4569
4575
|
};
|
|
4570
4576
|
}, []);
|
|
4571
|
-
const oe =
|
|
4577
|
+
const oe = Hl("(orientation: landscape) and (max-height: 540px)"), re = s && !oe;
|
|
4572
4578
|
E(() => {
|
|
4573
4579
|
if (S(!1), !p.playing || h) return;
|
|
4574
4580
|
const F = setTimeout(() => S(!0), 3e3);
|
|
@@ -4594,7 +4600,7 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4594
4600
|
}, [G, xe]);
|
|
4595
4601
|
const [ce, ke] = O(!0), [Ae, se] = O(!1), le = z(void 0);
|
|
4596
4602
|
E(() => () => window.clearTimeout(le.current), []);
|
|
4597
|
-
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 ?
|
|
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 = () => {
|
|
4598
4604
|
var F;
|
|
4599
4605
|
(F = navigator.clipboard) == null || F.writeText(m).then(() => {
|
|
4600
4606
|
se(!0), window.clearTimeout(le.current), le.current = window.setTimeout(() => se(!1), 1800);
|
|
@@ -4624,7 +4630,7 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4624
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: [
|
|
4625
4631
|
N && /* @__PURE__ */ a(Li, { v: N, size: re ? 20 : 18 }),
|
|
4626
4632
|
C && de("Share", K.share, 1.6, C),
|
|
4627
|
-
|
|
4633
|
+
Qs() && !t && de(I ? "Exit full screen" : "Full screen", I ? $l : Ti, 1.7, () => hn(!I)),
|
|
4628
4634
|
X && de("Close player", K.close, 1.7, X)
|
|
4629
4635
|
] }), De = (u || d || D) && /* @__PURE__ */ f("div", { className: "gfull__top", children: [
|
|
4630
4636
|
u && de(u.muted ? "Unmute" : "Mute", u.muted ? K.volumeOff : K.volume, 1.6, u.onToggle),
|
|
@@ -4685,7 +4691,7 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4685
4691
|
] }),
|
|
4686
4692
|
" "
|
|
4687
4693
|
] }),
|
|
4688
|
-
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 ?
|
|
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: [
|
|
4689
4695
|
F.t,
|
|
4690
4696
|
F.sp
|
|
4691
4697
|
] }, ve))
|
|
@@ -4717,10 +4723,10 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
|
|
|
4717
4723
|
}
|
|
4718
4724
|
);
|
|
4719
4725
|
}
|
|
4720
|
-
function
|
|
4726
|
+
function Gl({ dark: t, back: e, home: n, live: r, title: s, badge: i, subline: o, onOptions: l, optionsActive: c }) {
|
|
4721
4727
|
return /* @__PURE__ */ f("div", { className: "ghead", children: [
|
|
4722
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 }) }),
|
|
4723
|
-
r && /* @__PURE__ */ a("span", { className: "mark", children: /* @__PURE__ */ a(
|
|
4729
|
+
r && /* @__PURE__ */ a("span", { className: "mark", children: /* @__PURE__ */ a(Gs, { dark: t, size: 30 }) }),
|
|
4724
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: [
|
|
4725
4731
|
/* @__PURE__ */ f("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
4726
4732
|
/* @__PURE__ */ a("span", { className: "ghead__name", children: s }),
|
|
@@ -4735,13 +4741,13 @@ function Wl({ dark: t, back: e, home: n, live: r, title: s, badge: i, subline: o
|
|
|
4735
4741
|
] }) })
|
|
4736
4742
|
] });
|
|
4737
4743
|
}
|
|
4738
|
-
const
|
|
4739
|
-
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) {
|
|
4740
4746
|
if (!t.lang) return null;
|
|
4741
4747
|
const e = t.langName;
|
|
4742
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;
|
|
4743
4749
|
}
|
|
4744
|
-
function
|
|
4750
|
+
function Jl(t, e) {
|
|
4745
4751
|
const [n, r] = O(null), [s, i] = O(!1);
|
|
4746
4752
|
return E(() => {
|
|
4747
4753
|
if (!t) {
|
|
@@ -4754,8 +4760,8 @@ function Kl(t, e) {
|
|
|
4754
4760
|
return () => clearTimeout(l);
|
|
4755
4761
|
}, [t, e]), [s, n];
|
|
4756
4762
|
}
|
|
4757
|
-
const
|
|
4758
|
-
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 }) {
|
|
4759
4765
|
const [s, i] = O(() => Date.now());
|
|
4760
4766
|
E(() => {
|
|
4761
4767
|
if (t.since == null) return;
|
|
@@ -4788,7 +4794,7 @@ function Xl({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
|
4788
4794
|
/* @__PURE__ */ f("div", { className: "pwait__head", children: [
|
|
4789
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" }),
|
|
4790
4796
|
/* @__PURE__ */ a("div", { className: "pwait__t", children: c }),
|
|
4791
|
-
!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) })
|
|
4792
4798
|
] }),
|
|
4793
4799
|
/* @__PURE__ */ a("div", { className: "pwait__note", children: u }),
|
|
4794
4800
|
!l && /* @__PURE__ */ a("div", { className: "pwait__bar", "aria-hidden": "true", children: /* @__PURE__ */ a("div", {}) }),
|
|
@@ -4801,13 +4807,13 @@ function Xl({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
|
4801
4807
|
}
|
|
4802
4808
|
);
|
|
4803
4809
|
}
|
|
4804
|
-
const
|
|
4805
|
-
function
|
|
4810
|
+
const tc = "https://app.vocalstack.com", nc = "/connect/transcribe";
|
|
4811
|
+
function rc() {
|
|
4806
4812
|
const t = new Uint8Array(24);
|
|
4807
4813
|
return crypto.getRandomValues(t), btoa(String.fromCharCode(...t)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
4808
4814
|
}
|
|
4809
4815
|
function wi(t, e, n) {
|
|
4810
|
-
const r = new URL(t ??
|
|
4816
|
+
const r = new URL(t ?? tc), s = rc(), i = new URL(nc, r);
|
|
4811
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);
|
|
4812
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)}`);
|
|
4813
4819
|
return d ? new Promise((g, M) => {
|
|
@@ -4843,16 +4849,16 @@ function wi(t, e, n) {
|
|
|
4843
4849
|
}, 500);
|
|
4844
4850
|
}) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
|
|
4845
4851
|
}
|
|
4846
|
-
function
|
|
4852
|
+
function sc(t, e, n) {
|
|
4847
4853
|
return wi(t, { url: e }, n);
|
|
4848
4854
|
}
|
|
4849
|
-
const
|
|
4855
|
+
const ic = {
|
|
4850
4856
|
"signing-in": "Sign in to VocalStack in the window that opened…",
|
|
4851
4857
|
consent: "Confirm in the VocalStack window…",
|
|
4852
4858
|
checking: "Checking the link…",
|
|
4853
4859
|
starting: "Starting the transcription…"
|
|
4854
|
-
},
|
|
4855
|
-
function
|
|
4860
|
+
}, ac = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
4861
|
+
function oc({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
4856
4862
|
const [s, i] = O(""), [o, l] = O(!1), [c, u] = O(null), [d, g] = O(null);
|
|
4857
4863
|
E(() => {
|
|
4858
4864
|
const j = (T) => {
|
|
@@ -4860,11 +4866,11 @@ function ac({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
4860
4866
|
};
|
|
4861
4867
|
return window.addEventListener("keydown", j), () => window.removeEventListener("keydown", j);
|
|
4862
4868
|
}, [r]);
|
|
4863
|
-
const M = s.trim(), p =
|
|
4869
|
+
const M = s.trim(), p = ac.test(M), y = async () => {
|
|
4864
4870
|
if (!(!p || o)) {
|
|
4865
4871
|
l(!0), u(null);
|
|
4866
4872
|
try {
|
|
4867
|
-
const j = await
|
|
4873
|
+
const j = await sc(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`, g);
|
|
4868
4874
|
j && e(j);
|
|
4869
4875
|
} catch (j) {
|
|
4870
4876
|
u(j instanceof Error ? j.message : "Something went wrong. Please try again.");
|
|
@@ -4888,7 +4894,7 @@ function ac({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
4888
4894
|
}, "aria-label": "Video link" }),
|
|
4889
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" })
|
|
4890
4896
|
] }),
|
|
4891
|
-
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"] }),
|
|
4892
4898
|
c && /* @__PURE__ */ a("div", { className: "vsp-end__err", role: "alert", children: c }),
|
|
4893
4899
|
/* @__PURE__ */ f("div", { className: "vsp-end__foot", children: [
|
|
4894
4900
|
/* @__PURE__ */ a("span", { children: "Uses your VocalStack account. You'll be asked to sign in if you're not." }),
|
|
@@ -4899,7 +4905,7 @@ function ac({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
4899
4905
|
] })
|
|
4900
4906
|
] }) });
|
|
4901
4907
|
}
|
|
4902
|
-
function
|
|
4908
|
+
function lc(t) {
|
|
4903
4909
|
const [e, n] = O(() => typeof window > "u" ? !0 : window.innerWidth >= 880);
|
|
4904
4910
|
return E(() => {
|
|
4905
4911
|
if (t != null) return;
|
|
@@ -4907,20 +4913,20 @@ function oc(t) {
|
|
|
4907
4913
|
return window.addEventListener("resize", r), () => window.removeEventListener("resize", r);
|
|
4908
4914
|
}, [t]), t ?? e;
|
|
4909
4915
|
}
|
|
4910
|
-
const
|
|
4916
|
+
const cc = {
|
|
4911
4917
|
"signing-in": "Sign in to VocalStack in the window that opened…",
|
|
4912
4918
|
consent: "Confirm in the VocalStack window…",
|
|
4913
4919
|
checking: "Looking for your transcription of this video…",
|
|
4914
4920
|
starting: "Starting the transcription…"
|
|
4915
4921
|
};
|
|
4916
|
-
function
|
|
4922
|
+
function uc(t) {
|
|
4917
4923
|
try {
|
|
4918
4924
|
return new URL(t).hostname.replace(/^www\./, "");
|
|
4919
4925
|
} catch {
|
|
4920
4926
|
return t;
|
|
4921
4927
|
}
|
|
4922
4928
|
}
|
|
4923
|
-
function
|
|
4929
|
+
function dc({ src: t, appUrl: e, title: n, onReady: r }) {
|
|
4924
4930
|
const [s, i] = O(!1), [o, l] = O(null), [c, u] = O(null), d = or(t), g = async () => {
|
|
4925
4931
|
if (!s) {
|
|
4926
4932
|
i(!0), u(null);
|
|
@@ -4939,18 +4945,18 @@ function uc({ src: t, appUrl: e, title: n, onReady: r }) {
|
|
|
4939
4945
|
/* @__PURE__ */ f("div", { className: "vsp-end__card vsp-gate__card", children: [
|
|
4940
4946
|
/* @__PURE__ */ a("div", { className: "vsp-end__brand", children: /* @__PURE__ */ a(Vt, { dark: !0, link: !1, height: 16 }) }),
|
|
4941
4947
|
/* @__PURE__ */ a("div", { className: "vsp-end__title", children: n ?? "Watch with subtitles and spoken translations" }),
|
|
4942
|
-
/* @__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.` }),
|
|
4943
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: [
|
|
4944
4950
|
/* @__PURE__ */ a(ue, { d: K.cc, size: 16, sw: 1.7 }),
|
|
4945
4951
|
"Open with VocalStack"
|
|
4946
4952
|
] }) }),
|
|
4947
|
-
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"] }),
|
|
4948
4954
|
c && /* @__PURE__ */ a("div", { className: "vsp-end__err", role: "alert", children: c }),
|
|
4949
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." }) })
|
|
4950
4956
|
] })
|
|
4951
4957
|
] });
|
|
4952
4958
|
}
|
|
4953
|
-
function
|
|
4959
|
+
function Mc(t, e, n) {
|
|
4954
4960
|
const [r, s] = O(t && e ? void 0 : null);
|
|
4955
4961
|
return E(() => {
|
|
4956
4962
|
if (!t) {
|
|
@@ -4963,7 +4969,7 @@ function dc(t, e, n) {
|
|
|
4963
4969
|
}
|
|
4964
4970
|
let i = !0;
|
|
4965
4971
|
s(void 0);
|
|
4966
|
-
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;
|
|
4967
4973
|
if (!l) {
|
|
4968
4974
|
s(null);
|
|
4969
4975
|
return;
|
|
@@ -4977,13 +4983,13 @@ function dc(t, e, n) {
|
|
|
4977
4983
|
};
|
|
4978
4984
|
}, [t, e, n]), r;
|
|
4979
4985
|
}
|
|
4980
|
-
const
|
|
4981
|
-
function
|
|
4986
|
+
const $s = (t) => t == null ? null : t ? "on" : "off";
|
|
4987
|
+
function gc(t) {
|
|
4982
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"));
|
|
4983
4989
|
return {
|
|
4984
4990
|
lang: (e == null ? void 0 : e.get("lang")) || n.lang || null,
|
|
4985
|
-
labels: r(e == null ? void 0 : e.get("labels")) ??
|
|
4986
|
-
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),
|
|
4987
4993
|
cc: e != null && e.get("cc") ? e.get("cc") !== "off" : n.subtitles ?? !0,
|
|
4988
4994
|
translateAudio: e != null && e.get("audio") ? e.get("audio") !== "original" : n.translateAudio ?? !0,
|
|
4989
4995
|
clonedVoices: e != null && e.get("voices") ? e.get("voices") !== "stock" : (n.voices ?? "cloned") === "cloned",
|
|
@@ -4991,16 +4997,16 @@ function Mc(t) {
|
|
|
4991
4997
|
startAt: Number.isFinite(s) && s > 0 ? s : t.startAt ?? null
|
|
4992
4998
|
};
|
|
4993
4999
|
}
|
|
4994
|
-
function
|
|
5000
|
+
function vc(t) {
|
|
4995
5001
|
const [e, n] = O({ id: t.id ?? "", token: t.token });
|
|
4996
5002
|
E(() => {
|
|
4997
5003
|
n({ id: t.id ?? "", token: t.token });
|
|
4998
5004
|
}, [t.id, t.token, t.src]);
|
|
4999
|
-
const r =
|
|
5005
|
+
const r = Mc(t.src ?? null, t.token ?? null, t.baseUrl ?? null);
|
|
5000
5006
|
E(() => {
|
|
5001
5007
|
r != null && r.id && n({ id: r.id, token: t.token });
|
|
5002
5008
|
}, [r == null ? void 0 : r.id]);
|
|
5003
|
-
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]);
|
|
5004
5010
|
E(() => {
|
|
5005
5011
|
var T;
|
|
5006
5012
|
o && ((T = t.onSource) == null || T.call(t, o));
|
|
@@ -5008,16 +5014,16 @@ function kc(t) {
|
|
|
5008
5014
|
var T;
|
|
5009
5015
|
c && ((T = t.onError) == null || T.call(t, c));
|
|
5010
5016
|
}, [c]);
|
|
5011
|
-
const M =
|
|
5012
|
-
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" }) }) }) });
|
|
5013
5019
|
}
|
|
5014
|
-
function
|
|
5015
|
-
var
|
|
5016
|
-
const { api: e, shared: n, gone: r, desk: s, dark: i } = t, o = t.id ?? "", l = ze(() =>
|
|
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);
|
|
5017
5023
|
E(() => {
|
|
5018
5024
|
t.loadError && M(t.loadError);
|
|
5019
5025
|
}, [t.loadError]);
|
|
5020
|
-
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) => {
|
|
5021
5027
|
const me = document.querySelector(".vs-sheet--settings"), Re = me == null ? void 0 : me.parentElement;
|
|
5022
5028
|
me && Re && v === "main" && w !== "main" && Re.style.setProperty("--vs-sheet-top", `${Math.round(me.getBoundingClientRect().top - Re.getBoundingClientRect().top)}px`), S(w);
|
|
5023
5029
|
};
|
|
@@ -5048,16 +5054,16 @@ function gc(t) {
|
|
|
5048
5054
|
}, [oe, re, pe, xe, G, ke, se]), E(() => {
|
|
5049
5055
|
n && !n.allowTranslate && oe && ae(null);
|
|
5050
5056
|
}, [n, oe]);
|
|
5051
|
-
const { model: Z, error: de, clearError: W, setLanguage: De, mergeTranslations: F, translating: ve, translateFailed: fe, shownLang: ge } =
|
|
5057
|
+
const { model: Z, error: de, clearError: W, setLanguage: De, mergeTranslations: F, translating: ve, translateFailed: fe, shownLang: ge } = ko(P, {
|
|
5052
5058
|
lang: null,
|
|
5053
5059
|
onFrame: (w) => {
|
|
5054
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 });
|
|
5055
5061
|
}
|
|
5056
|
-
}), q = ze(() =>
|
|
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);
|
|
5057
5063
|
E(() => {
|
|
5058
5064
|
!$e || !be || Date.now() - He.current < 1e4 || (He.current = Date.now(), t.reread());
|
|
5059
5065
|
}, [$e, be, k == null ? void 0 : k.state, k == null ? void 0 : k.processedS, o]);
|
|
5060
|
-
const Ie = qn((ye == null ? void 0 : ye.state) ?? ((
|
|
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);
|
|
5061
5067
|
E(() => {
|
|
5062
5068
|
!P || Ut.current === oe || (Ut.current = oe, De(oe));
|
|
5063
5069
|
}, [oe, P]);
|
|
@@ -5072,36 +5078,36 @@ function gc(t) {
|
|
|
5072
5078
|
const Tn = ze(() => q.filter((w) => w.sentenceId != null).map((w, me, Re) => {
|
|
5073
5079
|
var Ze;
|
|
5074
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) };
|
|
5075
|
-
}), [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);
|
|
5076
5082
|
vt.current = xt ? oe : null, E(() => {
|
|
5077
5083
|
Fe && J.on && rt.sid != null && J.setNear(rt.sid);
|
|
5078
|
-
}, [rt.sid, Fe, J.on]),
|
|
5084
|
+
}, [rt.sid, Fe, J.on]), zl([Lt, J.player], J.sampling);
|
|
5079
5085
|
const jt = z(null);
|
|
5080
5086
|
E(() => {
|
|
5081
5087
|
Ye && !x.playing && jt.current && (jt.current.scrollTop = jt.current.scrollHeight);
|
|
5082
5088
|
}, [Ye, q.length]);
|
|
5083
|
-
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 () => {
|
|
5084
5090
|
if (P)
|
|
5085
5091
|
try {
|
|
5086
5092
|
if (at && J.canSpeak) {
|
|
5087
|
-
D(`Preparing ${Ge} in ${lt}${J.readVoiceName ? `, read by ${J.readVoiceName}` : ""} — the download starts when it is ready.`), await
|
|
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}.`);
|
|
5088
5094
|
return;
|
|
5089
5095
|
}
|
|
5090
5096
|
if (Ee) {
|
|
5091
|
-
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}.`);
|
|
5092
5098
|
return;
|
|
5093
5099
|
}
|
|
5094
|
-
|
|
5100
|
+
mr(Vn(e.origin, P, "source", e.cred)), D(`Downloading ${Ge} — the full audio, since the transcript is still being written.`);
|
|
5095
5101
|
} catch (w) {
|
|
5096
5102
|
throw M(yt(w)), w;
|
|
5097
5103
|
}
|
|
5098
5104
|
}, bt = (w) => {
|
|
5099
5105
|
if (!P) return;
|
|
5100
5106
|
const me = ar.find((Ze) => Ze.key === w).name, Re = lt ? ` in ${lt}` : "";
|
|
5101
|
-
return
|
|
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) => {
|
|
5102
5108
|
throw M(yt(Ze)), Ze;
|
|
5103
5109
|
});
|
|
5104
|
-
}, st = Ye ? "MORE TO COME…" : "END OF TRANSCRIPT", Gt = Ye ? "var(--brand)" : "var(--ink-28)", Rt =
|
|
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);
|
|
5105
5111
|
et.current = x;
|
|
5106
5112
|
const ht = `${oe ?? ""}|${J.on ? "voice" : "source"}`, St = z({ key: ht, idx: 0, t: 0, playing: !1, until: 0 });
|
|
5107
5113
|
E(() => {
|
|
@@ -5119,7 +5125,7 @@ function gc(t) {
|
|
|
5119
5125
|
}
|
|
5120
5126
|
});
|
|
5121
5127
|
const Zt = z(!1), ot = z(!1);
|
|
5122
|
-
d && (
|
|
5128
|
+
d && (Ks.video = !0);
|
|
5123
5129
|
const [qt, At] = O(!1), [Ln, wn] = O(!1);
|
|
5124
5130
|
E(() => {
|
|
5125
5131
|
if (!d || Zt.current || !wt || !$ || Y || t.autoplay === !1) return;
|
|
@@ -5153,7 +5159,7 @@ function gc(t) {
|
|
|
5153
5159
|
return;
|
|
5154
5160
|
}
|
|
5155
5161
|
ot.current = !0, et.current.toggle();
|
|
5156
|
-
}, H = (w) => /* @__PURE__ */ a(
|
|
5162
|
+
}, H = (w) => /* @__PURE__ */ a(Ll, { player: x, size: w }), Oe = !!P && !Ye, [Be, Nt] = O(!1);
|
|
5157
5163
|
E(() => {
|
|
5158
5164
|
if (!ve) {
|
|
5159
5165
|
Nt(!1);
|
|
@@ -5162,12 +5168,12 @@ function gc(t) {
|
|
|
5162
5168
|
const w = setTimeout(() => Nt(!0), 180);
|
|
5163
5169
|
return () => clearTimeout(w);
|
|
5164
5170
|
}, [ve]);
|
|
5165
|
-
const zt = Be ? ge : oe, ki =
|
|
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) => {
|
|
5166
5172
|
Lt.pause(), J.player.pause(), X(w), w === "read" && $ && ($t(!1), U(!1));
|
|
5167
|
-
}, Se = J.barChip, Et = di(Se.label),
|
|
5168
|
-
w === "summary" && Oe && /* @__PURE__ */ a(
|
|
5169
|
-
w === "export" && /* @__PURE__ */ a(
|
|
5170
|
-
] }), 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 = {
|
|
5171
5177
|
live: !1,
|
|
5172
5178
|
atEdge: !1,
|
|
5173
5179
|
edgeFrac: null,
|
|
@@ -5180,12 +5186,12 @@ function gc(t) {
|
|
|
5180
5186
|
var me;
|
|
5181
5187
|
J.relang || (me = x.seekFrac) == null || me.call(x, w);
|
|
5182
5188
|
}
|
|
5183
|
-
}, [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;
|
|
5184
5190
|
E(() => {
|
|
5185
5191
|
var w;
|
|
5186
5192
|
nt.setVideoSound(!(Fe && (J.on || Cn))), (w = We.silence) == null || w.call(We, !Fe && Cn);
|
|
5187
5193
|
}, [Fe, J.on, Cn, qe]);
|
|
5188
|
-
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 = () => {
|
|
5189
5195
|
if ((Je == null ? void 0 : Je.kind) === "translateFailed") {
|
|
5190
5196
|
De(oe);
|
|
5191
5197
|
return;
|
|
@@ -5194,10 +5200,10 @@ function gc(t) {
|
|
|
5194
5200
|
}, Ai = () => {
|
|
5195
5201
|
const w = x.idx;
|
|
5196
5202
|
x.pause(), ae(null), ot.current = !0, Lt.playRow(w);
|
|
5197
|
-
},
|
|
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: () => {
|
|
5198
5204
|
ot.current = !0, x.toggle();
|
|
5199
5205
|
}, busy: J.relang && !Ue || tn };
|
|
5200
|
-
|
|
5206
|
+
Ga(wt ? { playing: x.playing, toggle: () => {
|
|
5201
5207
|
ot.current = !0, x.toggle();
|
|
5202
5208
|
}, next: x.next, prev: x.prev } : null, _e);
|
|
5203
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: () => {
|
|
@@ -5205,30 +5211,30 @@ function gc(t) {
|
|
|
5205
5211
|
}, style: { position: "relative" }, children: [
|
|
5206
5212
|
/* @__PURE__ */ a("span", { style: { fontSize: me === "sm" ? 17 : 21, lineHeight: 1 }, children: Se.flag }),
|
|
5207
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)" }) })
|
|
5208
|
-
] }) : /* @__PURE__ */ a(fn, { flag: Se.flag, code: Se.code, label: Se.label, bordered: !1, size: me, onClick: Se.onClick, style: w }),
|
|
5209
|
-
} },
|
|
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) => {
|
|
5210
5216
|
var me, Re, Ze;
|
|
5211
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));
|
|
5212
|
-
}, 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: () => {
|
|
5213
5219
|
$t(!0), U(!0);
|
|
5214
|
-
}, 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];
|
|
5215
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);
|
|
5216
|
-
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;
|
|
5217
5223
|
Ke && An(Ke, pt) && (Q.current = pt);
|
|
5218
|
-
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);
|
|
5219
5225
|
an.current = t.onSettingsChange, E(() => {
|
|
5220
5226
|
var w;
|
|
5221
|
-
(w = an.current) == null || w.call(an,
|
|
5227
|
+
(w = an.current) == null || w.call(an, Er);
|
|
5222
5228
|
}, [Yi]);
|
|
5223
|
-
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);
|
|
5224
5230
|
E(() => () => window.clearTimeout(Yn.current), []);
|
|
5225
5231
|
const _n = z(void 0);
|
|
5226
5232
|
E(() => () => window.clearTimeout(_n.current), []);
|
|
5227
|
-
const
|
|
5233
|
+
const Rr = (w) => {
|
|
5228
5234
|
if (t.shareUrl) return t.shareUrl(w);
|
|
5229
5235
|
const me = new URL(window.location.href);
|
|
5230
5236
|
return w != null && w > 0 ? me.searchParams.set("t", String(w)) : me.searchParams.delete("t"), me.href;
|
|
5231
|
-
}, Un = z(l.startAt),
|
|
5237
|
+
}, Un = z(l.startAt), Pr = (w) => {
|
|
5232
5238
|
if (x.seekFrac && x.dur > 0) {
|
|
5233
5239
|
x.seekFrac(Math.min(1, w / x.dur));
|
|
5234
5240
|
return;
|
|
@@ -5236,30 +5242,30 @@ function gc(t) {
|
|
|
5236
5242
|
let me = 0;
|
|
5237
5243
|
for (let Re = 0; Re < q.length; Re++) q[Re].start <= w && (me = Re);
|
|
5238
5244
|
x.seekRow(me);
|
|
5239
|
-
},
|
|
5245
|
+
}, Qr = z(!1);
|
|
5240
5246
|
E(() => {
|
|
5241
5247
|
const w = Un.current;
|
|
5242
|
-
w == null ||
|
|
5248
|
+
w == null || Qr.current || !x.has || q.length === 0 || (Qr.current = !0, Pr(w));
|
|
5243
5249
|
}, [x.has, q.length]), E(() => {
|
|
5244
5250
|
const w = Un.current;
|
|
5245
|
-
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));
|
|
5246
5252
|
}, [x.playing]);
|
|
5247
|
-
const Ri = () => Ni(
|
|
5248
|
-
window.clearTimeout(_n.current),
|
|
5249
|
-
}),
|
|
5250
|
-
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;
|
|
5251
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: () => {
|
|
5252
|
-
En || (
|
|
5253
|
-
|
|
5258
|
+
En || (_r(w), Promise.resolve().then(() => bt(w)).then(() => {
|
|
5259
|
+
Ur(w), window.clearTimeout(Yn.current), Yn.current = window.setTimeout(() => Ur(null), 1600);
|
|
5254
5260
|
}).catch(() => {
|
|
5255
|
-
}).finally(() =>
|
|
5261
|
+
}).finally(() => _r(null)));
|
|
5256
5262
|
}, children: [
|
|
5257
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)" } }),
|
|
5258
5264
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5259
5265
|
/* @__PURE__ */ a("div", { className: "srow__t", children: me }),
|
|
5260
5266
|
/* @__PURE__ */ a("div", { className: "srow__s", children: Re })
|
|
5261
5267
|
] }),
|
|
5262
|
-
/* @__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)" } })
|
|
5263
5269
|
] });
|
|
5264
5270
|
}, Pi = /* @__PURE__ */ f("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
|
|
5265
5271
|
" ",
|
|
@@ -5268,8 +5274,8 @@ function gc(t) {
|
|
|
5268
5274
|
"Back"
|
|
5269
5275
|
] })
|
|
5270
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: [
|
|
5271
|
-
/* @__PURE__ */ a("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children:
|
|
5272
|
-
|
|
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
|
|
5273
5279
|
] }) : v === "subs" ? /* @__PURE__ */ f("div", { style: cn, children: [
|
|
5274
5280
|
/* @__PURE__ */ f("div", { className: "srow", children: [
|
|
5275
5281
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -5305,18 +5311,18 @@ function gc(t) {
|
|
|
5305
5311
|
/* @__PURE__ */ a("div", { className: "srow__t", children: "Voices" }),
|
|
5306
5312
|
/* @__PURE__ */ a("div", { className: "srow__s", children: ke ? "Each speaker in their own cloned voice" : "Synthetic voices matched to each speaker" })
|
|
5307
5313
|
] }),
|
|
5308
|
-
/* @__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" }] })
|
|
5309
5315
|
] }),
|
|
5310
5316
|
/* @__PURE__ */ f("div", { className: "srow", children: [
|
|
5311
5317
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5312
|
-
/* @__PURE__ */ a("div", { className: "srow__t", children:
|
|
5318
|
+
/* @__PURE__ */ a("div", { className: "srow__t", children: js }),
|
|
5313
5319
|
/* @__PURE__ */ a("div", { className: "srow__s", children: Ca(se, xn, "video", J.on ? 0 : On.untilS) })
|
|
5314
5320
|
] }),
|
|
5315
|
-
/* @__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 })
|
|
5316
5322
|
] })
|
|
5317
5323
|
] }) : v === "export" ? /* @__PURE__ */ f("div", { style: cn, children: [
|
|
5318
|
-
|
|
5319
|
-
|
|
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")
|
|
5320
5326
|
] }) : /* @__PURE__ */ a("div", { style: cn, children: [
|
|
5321
5327
|
Se.can && A.language && /* @__PURE__ */ f("div", { className: "srow srow--tap", role: "button", onClick: () => ne("lang"), children: [
|
|
5322
5328
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -5367,41 +5373,41 @@ function gc(t) {
|
|
|
5367
5373
|
] }),
|
|
5368
5374
|
t.settingsExtra
|
|
5369
5375
|
] }) }), kt = $ && It && Ue && /* @__PURE__ */ a(
|
|
5370
|
-
|
|
5376
|
+
Wl,
|
|
5371
5377
|
{
|
|
5372
5378
|
page: (t.layout ?? "embed") === "page",
|
|
5373
|
-
picture:
|
|
5379
|
+
picture: Cr,
|
|
5374
5380
|
title: Ge,
|
|
5375
5381
|
desk: s,
|
|
5376
|
-
pos:
|
|
5382
|
+
pos: wr,
|
|
5377
5383
|
mute: { muted: x.muted, onToggle: Jt },
|
|
5378
5384
|
cc: A.subtitles ? { on: xe, onToggle: () => Qe((w) => !w) } : void 0,
|
|
5379
5385
|
noFull: !A.fullscreen,
|
|
5380
5386
|
ad: Ln,
|
|
5381
|
-
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,
|
|
5382
5388
|
pct: Ye ? Math.round(_) : null,
|
|
5383
|
-
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,
|
|
5384
5390
|
chip: Sn(s ? bn : { ...bn, width: 64, padding: "0 6px" }, s ? void 0 : "sm"),
|
|
5385
|
-
transport:
|
|
5391
|
+
transport: Ir,
|
|
5386
5392
|
picker: J.sheets,
|
|
5387
5393
|
sheet: d ? Rn : null,
|
|
5388
5394
|
voices: null,
|
|
5389
|
-
voicesBtn: d ? null :
|
|
5395
|
+
voicesBtn: d ? null : Or,
|
|
5390
5396
|
sheetOpen: J.sheetsOpen || I,
|
|
5391
5397
|
onShare: d && A.share ? Ri : void 0,
|
|
5392
5398
|
onSettings: d && A.settings ? () => {
|
|
5393
5399
|
J.closePicker(), b((w) => !w);
|
|
5394
5400
|
} : void 0,
|
|
5395
|
-
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 } },
|
|
5396
5402
|
copied: _i ? /* @__PURE__ */ f("div", { className: "gfull__toast", "aria-live": "polite", children: [
|
|
5397
5403
|
/* @__PURE__ */ a(ue, { d: K.check, size: 13, sw: 2 }),
|
|
5398
5404
|
"Link copied"
|
|
5399
5405
|
] }) : qt ? /* @__PURE__ */ f("div", { className: "gfull__toast gfull__soundtip", "aria-live": "polite", children: [
|
|
5400
5406
|
/* @__PURE__ */ a(ue, { d: K.volumeOff, size: 14, sw: 1.8 }),
|
|
5401
5407
|
"Tap for sound"
|
|
5402
|
-
] }) :
|
|
5408
|
+
] }) : kr ? /* @__PURE__ */ f("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
5403
5409
|
/* @__PURE__ */ a(ct, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
5404
|
-
|
|
5410
|
+
kr
|
|
5405
5411
|
] }) : J.on && (Fe ? rt.missing != null : x.silent) ? /* @__PURE__ */ f("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
5406
5412
|
/* @__PURE__ */ a(ct, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
5407
5413
|
`${en || "Translated"} voice is still being prepared · playing with subtitles`
|
|
@@ -5417,7 +5423,7 @@ function gc(t) {
|
|
|
5417
5423
|
E(() => {
|
|
5418
5424
|
!d && $ && !It && ($t(!1), U(!1));
|
|
5419
5425
|
}, [d, $, It]);
|
|
5420
|
-
const
|
|
5426
|
+
const Br = Ye && /* @__PURE__ */ f("div", { className: `pubprog${s ? " pubprog--desk" : ""}${j ? " pubprog--find" : ""}`, children: [
|
|
5421
5427
|
/* @__PURE__ */ f("div", { className: "pubprog__row", children: [
|
|
5422
5428
|
/* @__PURE__ */ a("span", { className: "l", children: `TRANSCRIBING ${_}%` }),
|
|
5423
5429
|
!s && /* @__PURE__ */ a("div", { style: { flex: 1 } }),
|
|
@@ -5425,41 +5431,41 @@ function gc(t) {
|
|
|
5425
5431
|
/* @__PURE__ */ a("span", { className: "s", children: Rt })
|
|
5426
5432
|
] }),
|
|
5427
5433
|
!s && /* @__PURE__ */ a("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ a("div", { style: { width: `${_}%` } }) })
|
|
5428
|
-
] }), 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: () => {
|
|
5429
5435
|
M(null), W(), x.clearError(), J.clearError();
|
|
5430
|
-
} }),
|
|
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: [
|
|
5431
5437
|
/* @__PURE__ */ f("div", { className: "ctrans__row", children: [
|
|
5432
5438
|
/* @__PURE__ */ a("span", { className: "ctrans__sp", "aria-hidden": "true" }),
|
|
5433
5439
|
/* @__PURE__ */ f("div", { className: "ctrans__mid", children: [
|
|
5434
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 }) }),
|
|
5435
|
-
/* @__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 }) }),
|
|
5436
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 }) })
|
|
5437
5443
|
] }),
|
|
5438
5444
|
/* @__PURE__ */ a("span", { className: "ctrans__mute", children: H(36) })
|
|
5439
5445
|
] }),
|
|
5440
5446
|
/* @__PURE__ */ a("div", { className: "ctrans__scrub", children: Ii(w) })
|
|
5441
|
-
] }) }), $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: [
|
|
5442
5448
|
Ue && /* @__PURE__ */ a("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Ue}/hqdefault.jpg)` } }),
|
|
5443
5449
|
/* @__PURE__ */ a("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ f(Pe, { children: [
|
|
5444
5450
|
Ge && /* @__PURE__ */ a("div", { className: "gfull__holdt", children: Ge }),
|
|
5445
|
-
/* @__PURE__ */ a("div", { className: "gfull__holdpct", children: Ie === "transcribing" ? `${
|
|
5446
|
-
/* @__PURE__ */ a("div", { className: "gfull__holdbar", children: /* @__PURE__ */ a("div", { style: { width: `${Ie === "transcribing" ?
|
|
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}%` } }) }),
|
|
5447
5453
|
/* @__PURE__ */ f("div", { className: "gfull__holds", children: [
|
|
5448
5454
|
Ie === "transcribing" ? "Transcribing" : Ie === "cropping" ? "Preparing the video" : "Waiting to start",
|
|
5449
5455
|
Ie === "transcribing" && (ye != null && ye.segmentsDone) ? ` · ${Rt.toLowerCase()}` : ""
|
|
5450
5456
|
] }),
|
|
5451
5457
|
/* @__PURE__ */ a("div", { className: "gfull__holdn", children: "The video starts as soon as the first lines are transcribed." })
|
|
5452
5458
|
] }) : /* @__PURE__ */ a("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) })
|
|
5453
|
-
] }),
|
|
5459
|
+
] }), Gr = d && n && (Ye || Ie === "cropping") ? Math.max(0, Math.min(100, Math.round(_))) : null, un = z(t.onProgress);
|
|
5454
5460
|
un.current = t.onProgress, E(() => {
|
|
5455
5461
|
var w;
|
|
5456
|
-
(w = un.current) == null || w.call(un,
|
|
5457
|
-
}, [
|
|
5462
|
+
(w = un.current) == null || w.call(un, Gr);
|
|
5463
|
+
}, [Gr]);
|
|
5458
5464
|
const [Hi, $n] = O(!1), Bn = !!kt && !Y && (Fe ? !!x.ended : !x.playing && x.dur > 0 && x.t >= x.dur - 0.5);
|
|
5459
5465
|
E(() => {
|
|
5460
5466
|
Bn || $n(!1);
|
|
5461
5467
|
}, [Bn]);
|
|
5462
|
-
const Vi = t.endCard !== !1 && Bn && !Hi && /* @__PURE__ */ a(
|
|
5468
|
+
const Vi = t.endCard !== !1 && Bn && !Hi && /* @__PURE__ */ a(oc, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => $n(!0), onReplay: () => {
|
|
5463
5469
|
$n(!0), ot.current = !0, x.seekFrac ? x.seekFrac(0) : x.seekRow(0), x.playing || x.toggle();
|
|
5464
5470
|
} });
|
|
5465
5471
|
if (d) return /* @__PURE__ */ f(Pe, { children: [
|
|
@@ -5468,14 +5474,14 @@ function gc(t) {
|
|
|
5468
5474
|
Qn
|
|
5469
5475
|
] });
|
|
5470
5476
|
if (s) {
|
|
5471
|
-
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);
|
|
5472
5478
|
return /* @__PURE__ */ f(Pe, { children: [
|
|
5473
5479
|
/* @__PURE__ */ a("div", { className: "dhead dhead--listener dhead--cols", children: /* @__PURE__ */ f("div", { className: "gcolhead", children: [
|
|
5474
5480
|
/* @__PURE__ */ a("div", { className: "gcolhead__main", children: /* @__PURE__ */ f("div", { className: "gcolhead__col", children: [
|
|
5475
5481
|
/* @__PURE__ */ a("div", { style: { flex: "none" }, children: /* @__PURE__ */ a(Vt, { dark: i, height: 20.38 }) }),
|
|
5476
5482
|
!r && /* @__PURE__ */ f("div", { className: "dhead__session", children: [
|
|
5477
5483
|
/* @__PURE__ */ a("span", { className: "t", children: n ? Ge : "" }),
|
|
5478
|
-
/* @__PURE__ */ a("span", { className: "s", children: n ?
|
|
5484
|
+
/* @__PURE__ */ a("span", { className: "s", children: n ? Vr : "" })
|
|
5479
5485
|
] })
|
|
5480
5486
|
] }) }),
|
|
5481
5487
|
me && /* @__PURE__ */ a("div", { className: "gcolhead__side" })
|
|
@@ -5484,18 +5490,18 @@ function gc(t) {
|
|
|
5484
5490
|
/* @__PURE__ */ f("div", { className: "listenerlive__main", children: [
|
|
5485
5491
|
Pn,
|
|
5486
5492
|
!r && Wt,
|
|
5487
|
-
|
|
5493
|
+
Br,
|
|
5488
5494
|
C && /* @__PURE__ */ a("div", { className: "pubflash", children: C }),
|
|
5489
|
-
!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 }),
|
|
5490
5496
|
!r && /* @__PURE__ */ f("div", { className: "listenerlive__inner gdeskbar", "data-transport": "1", children: [
|
|
5491
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 }) }),
|
|
5492
|
-
|
|
5498
|
+
Tr
|
|
5493
5499
|
] })
|
|
5494
5500
|
] }),
|
|
5495
|
-
me && /* @__PURE__ */ f(
|
|
5501
|
+
me && /* @__PURE__ */ f(dl, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
|
|
5496
5502
|
!J.sidePanel && w,
|
|
5497
|
-
!J.sidePanel &&
|
|
5498
|
-
!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) }) }) }),
|
|
5499
5505
|
J.sidePanel
|
|
5500
5506
|
] })
|
|
5501
5507
|
] }),
|
|
@@ -5505,26 +5511,26 @@ function gc(t) {
|
|
|
5505
5511
|
Qn
|
|
5506
5512
|
] });
|
|
5507
5513
|
}
|
|
5508
|
-
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: [
|
|
5509
5515
|
/* @__PURE__ */ a(fi, { tabs: Yt, current: p, onPick: y, gap: p !== "none" }),
|
|
5510
|
-
p !== "none" &&
|
|
5516
|
+
p !== "none" && Lr(p)
|
|
5511
5517
|
] }) });
|
|
5512
5518
|
return /* @__PURE__ */ f(Pe, { children: [
|
|
5513
|
-
/* @__PURE__ */ a(
|
|
5519
|
+
/* @__PURE__ */ a(Gl, { dark: i, title: n ? Ge : "", subline: n ? Vr : "", onOptions: () => b(!0), optionsActive: I }),
|
|
5514
5520
|
Pn,
|
|
5515
|
-
|
|
5521
|
+
Br,
|
|
5516
5522
|
!r && Fi,
|
|
5517
|
-
!r &&
|
|
5523
|
+
!r && xr,
|
|
5518
5524
|
!r && /* @__PURE__ */ f("div", { style: { position: "relative", flex: 1, minHeight: 0, display: "flex", flexDirection: "column" }, children: [
|
|
5519
5525
|
Wt,
|
|
5520
|
-
|
|
5526
|
+
Hr,
|
|
5521
5527
|
C && /* @__PURE__ */ a("div", { className: "txflash", children: C })
|
|
5522
5528
|
] }),
|
|
5523
5529
|
!r && /* @__PURE__ */ f("div", { className: "gbottom", "data-transport": "1", children: [
|
|
5524
|
-
vn && !It && /* @__PURE__ */ a("div", { className: "pubctl", children:
|
|
5530
|
+
vn && !It && /* @__PURE__ */ a("div", { className: "pubctl", children: Fr(!1) }),
|
|
5525
5531
|
/* @__PURE__ */ f("div", { className: "gbottom__bar", children: [
|
|
5526
5532
|
Se.can && /* @__PURE__ */ a("div", { style: { flex: "none" }, children: Sn({ width: 87 }, void 0) }),
|
|
5527
|
-
/* @__PURE__ */ a("div", { style: { flex: 1, minWidth: 0 }, children:
|
|
5533
|
+
/* @__PURE__ */ a("div", { style: { flex: 1, minWidth: 0 }, children: Tr })
|
|
5528
5534
|
] })
|
|
5529
5535
|
] }),
|
|
5530
5536
|
!kt && J.sheets,
|
|
@@ -5534,27 +5540,27 @@ function gc(t) {
|
|
|
5534
5540
|
] });
|
|
5535
5541
|
}
|
|
5536
5542
|
export {
|
|
5537
|
-
|
|
5538
|
-
|
|
5539
|
-
|
|
5540
|
-
|
|
5541
|
-
|
|
5542
|
-
|
|
5543
|
-
|
|
5544
|
-
|
|
5545
|
-
|
|
5546
|
-
|
|
5547
|
-
|
|
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,
|
|
5548
5554
|
Ia as REMOVE_BG_NOTE,
|
|
5549
|
-
|
|
5550
|
-
|
|
5551
|
-
|
|
5552
|
-
|
|
5553
|
-
|
|
5554
|
-
|
|
5555
|
-
|
|
5556
|
-
|
|
5557
|
-
|
|
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,
|
|
5558
5564
|
Ca as bedNote,
|
|
5559
5565
|
$t as browserFull,
|
|
5560
5566
|
Ot as lineEnd,
|
|
@@ -5562,25 +5568,25 @@ export {
|
|
|
5562
5568
|
Jn as pictureT,
|
|
5563
5569
|
gn as placePosition,
|
|
5564
5570
|
hn as realFull,
|
|
5565
|
-
|
|
5566
|
-
|
|
5567
|
-
|
|
5568
|
-
|
|
5571
|
+
Lc as setErrorReporter,
|
|
5572
|
+
Ps as setFullTarget,
|
|
5573
|
+
pl as snapPosition,
|
|
5574
|
+
Us as spokenWordOf,
|
|
5569
5575
|
xa as trackPlan,
|
|
5570
5576
|
ci as useApi,
|
|
5571
|
-
|
|
5577
|
+
Ko as useArchiveVoice,
|
|
5572
5578
|
Ra as useBackgroundBed,
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
|
|
5579
|
+
zl as useDuck,
|
|
5580
|
+
Yl as useFindPull,
|
|
5581
|
+
wl as useFlash,
|
|
5576
5582
|
Ct as usePlayerApi,
|
|
5577
|
-
|
|
5578
|
-
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
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
|
|
5585
5591
|
};
|
|
5586
5592
|
//# sourceMappingURL=index.js.map
|